:root { --ink:#f7f5ed; --muted:#aaa9a4; --bg:#111313; --panel:#1a1d1c; --panel-deep:#121414; --line:#303433; --acid:#eaff52; --orange:#ff6b36; --blue:#8fd9ff; --mono:'DM Mono',monospace; --sans:'Manrope',sans-serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); min-height:100vh; }
button, textarea { font:inherit; } button { border:0; cursor:pointer; } button:disabled { opacity:.48; cursor:wait; }
.shell { max-width:1120px; margin:auto; padding:22px 28px 80px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); padding-bottom:20px; }
.brand { color:var(--ink); font-family:var(--mono); font-size:15px; letter-spacing:-1px; text-decoration:none; font-weight:500; white-space:nowrap; }.brand>span { color:var(--acid); }.brand>span:last-child { margin-left:-1px; }
.system-status { display:flex; align-items:center; gap:9px; color:var(--muted); font:10px var(--mono); letter-spacing:.06em; }.system-status i { width:3px; height:3px; border-radius:50%; background:var(--muted); }.live-dot { width:7px; height:7px; border-radius:50%; background:var(--acid); box-shadow:0 0 12px var(--acid); }
.ghost-button { background:transparent; color:var(--ink); padding:8px 0; font-size:13px; font-weight:700; }.ghost-button span { color:var(--acid); font-size:17px; }.ghost-button.small { font:11px var(--mono); color:var(--muted); letter-spacing:.05em; }.ghost-button.danger { color:#ff9d7d; }
.game-screen { text-align:center; min-height:580px; padding:55px 20px 35px; position:relative; overflow:hidden; }.ambient { position:absolute; filter:blur(2px); opacity:.42; pointer-events:none; }.ambient-one { width:310px; height:310px; border-radius:50%; border:1px solid #7b852d; top:125px; left:calc(50% - 160px); box-shadow:0 0 110px 42px #3f471c; }.ambient-two { height:310px; width:1px; background:var(--acid); left:50%; top:130px; box-shadow:0 0 90px 27px #dce838; }
.focus-stage { min-height:650px; padding:112px 20px 90px; text-align:center; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; isolation:isolate; }.focus-stage-ambient { position:absolute; inset:12% 25%; z-index:-1; background:radial-gradient(circle,rgba(218,239,78,.17),rgba(17,19,19,0) 66%); filter:blur(8px); }.focus-stage .eyebrow { color:var(--acid); margin:0 0 22px; }.focus-stage h1 { font-size:clamp(68px,14vw,146px); max-width:100%; overflow-wrap:anywhere; }.focus-timer-wrap { width:260px; height:260px; margin:42px auto 20px; position:relative; }.focus-timer-ring { width:260px; height:260px; transform:rotate(-90deg); }.focus-ring-track,.focus-ring-progress { fill:none; stroke-width:3; }.focus-ring-track { stroke:#2c322e; }.focus-ring-progress { stroke:var(--acid); stroke-linecap:round; stroke-dasharray:728.85; stroke-dashoffset:0; filter:drop-shadow(0 0 10px #d9f052); transition:stroke-dashoffset .07s linear; }.focus-timer-content { position:absolute; inset:0; display:grid; place-content:center; }.focus-timer-content span { font:500 58px var(--mono); letter-spacing:-.1em; }.focus-timer-content small { margin-top:7px; color:var(--acid); font:10px var(--mono); letter-spacing:.15em; }.focus-stage-note { margin:6px 0 0; color:#aeb4a9; font-size:13px; }.focus-recording { margin-top:18px; color:var(--orange); font:10px var(--mono); letter-spacing:.12em; }.focus-recording b { display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:var(--orange); box-shadow:0 0 11px var(--orange); animation:pulse .9s infinite; }
.game-meta,.eyebrow { font:10px var(--mono); letter-spacing:.12em; color:var(--muted); }.game-meta { display:flex; align-items:center; justify-content:center; gap:11px; }.meta-divider { width:3px; height:3px; background:var(--acid); border-radius:50%; }.eyebrow { margin:0 0 9px; }.game-screen .eyebrow { margin-top:38px; color:var(--acid); } h1 { font-size:clamp(62px,11vw,118px); letter-spacing:-.09em; line-height:.94; margin:0; position:relative; } h2 { font-size:25px; letter-spacing:-.05em; margin:0; } h3 { font-size:17px; margin:0; }
.rule { color:var(--muted); max-width:650px; margin:18px auto 8px; font-size:14px; line-height:1.7; }.focus-line { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; color:#c9cec4; font-size:11px; margin:0 auto 18px; }.focus-line b { color:var(--acid); font:10px var(--mono); letter-spacing:.08em; }
.timer-wrap { height:220px; width:220px; margin:auto; position:relative; }.timer-ring { transform:rotate(-90deg); width:220px; height:220px; }.ring-track,.ring-progress { fill:none; stroke-width:4; }.ring-track { stroke:#2d302e; }.ring-progress { stroke:var(--acid); stroke-linecap:round; stroke-dasharray:615.75; stroke-dashoffset:0; transition:stroke-dashoffset .25s linear; filter:drop-shadow(0 0 5px #d9f052); }.timer-content { position:absolute; inset:0; display:grid; place-content:center; }.timer-content span { font:500 42px var(--mono); letter-spacing:-.08em; }.timer-content small { font:10px var(--mono); letter-spacing:.16em; color:var(--acid); margin-top:4px; }
.controls,.result-actions,.transfer-actions { display:flex; justify-content:center; align-items:center; gap:10px; margin-top:18px; }.primary-button,.secondary-button { padding:14px 20px; border-radius:3px; letter-spacing:.01em; font-size:13px; font-weight:700; }.primary-button { background:var(--acid); color:#172000; }.primary-button:hover { background:#f3ff94; }.secondary-button { background:#292d2b; color:var(--ink); }.icon-button { height:46px; width:46px; border:1px solid var(--line); border-radius:3px; background:transparent; color:var(--ink); font-size:21px; }.microcopy { font-size:12px; color:#777b77; margin:13px 0; }.hidden { display:none!important; }
.mode-dock,.round-panel,.results,.progress,.preparation,.transfer-panel { border:1px solid var(--line); background:var(--panel); padding:24px; margin-top:15px; border-radius:5px; }.mode-dock { display:flex; align-items:center; justify-content:space-between; gap:20px; }.mode-help,.panel-intro { margin:0; font-size:12px; line-height:1.65; color:var(--muted); max-width:600px; }.mode-options { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }.mode-options button { border:1px solid #3c423d; border-radius:20px; background:transparent; padding:7px 10px; color:var(--muted); font:10px var(--mono); letter-spacing:.04em; }.mode-options button.active { border-color:var(--acid); color:#1f2600; background:var(--acid); }
.panel-heading,.result-head,.review-head,.section-title { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; }.prep-clock { text-align:right; }.prep-clock strong { display:block; font:22px var(--mono); color:var(--acid); letter-spacing:-.08em; }.prep-clock span,.section-title>span { color:var(--muted); font:9px var(--mono); letter-spacing:.08em; }.anchor-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:20px 0; }.anchor-card { border:1px solid var(--line); border-radius:4px; padding:13px; }.anchor-card label { display:block; margin-bottom:8px; color:var(--acid); font:10px var(--mono); letter-spacing:.08em; }.anchor-card input { width:100%; margin:5px 0 0; border:0; border-bottom:1px solid #3a403b; background:transparent; color:var(--ink); padding:7px 0; font-size:12px; outline:0; }.anchor-card input:focus { border-color:var(--acid); }
.recording-pill { font:10px var(--mono); letter-spacing:.1em; color:var(--orange); padding:8px 10px; background:#2b201d; border-radius:20px; }.recording-pill b { display:inline-block; width:6px; height:6px; background:var(--orange); border-radius:50%; margin-right:5px; animation:pulse .9s infinite; }.pivot-banner { margin-top:18px; padding:13px; border:1px solid #82922f; background:#202617; display:flex; align-items:center; gap:11px; flex-wrap:wrap; }.pivot-banner span { color:var(--acid); font:10px var(--mono); letter-spacing:.1em; }.pivot-banner strong { font-size:16px; }.pivot-banner small { color:#b9bfae; font-size:11px; }.transcript-box { min-height:90px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:20px; padding:20px 0; color:#ddd; line-height:1.8; font-size:15px; }.placeholder,.transcript-note,.review-help { color:#777c76; }.transcript-note,.review-help { font-size:12px; line-height:1.6; margin:13px 0 0; }
.result-screen { min-height:calc(100vh - 90px); margin-top:28px; padding:38px; }.result-seed { color:var(--acid); font:500 13px var(--mono); letter-spacing:-.04em; }.result-overview { display:grid; grid-template-columns:220px minmax(170px,.8fr) minmax(360px,1.8fr); gap:34px; align-items:center; padding:28px 0; margin:22px 0 28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.score-orbit { --score:0; width:174px; height:174px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--acid) calc(var(--score) * 1%),#2d342f 0); position:relative; filter:drop-shadow(0 0 15px rgba(218,239,78,.12)); }.score-orbit:before { content:''; position:absolute; inset:7px; border-radius:50%; background:var(--panel); }.score-orbit>div { z-index:1; text-align:center; }.score-orbit p,.score-orbit small { display:block; margin:0; color:var(--muted); font:9px var(--mono); letter-spacing:.08em; }.score-orbit strong { display:inline-block; margin-top:6px; color:var(--acid); font:500 58px var(--mono); line-height:.9; letter-spacing:-.12em; }.score-reading { margin:0; color:#d0d5c9; font-size:13px; line-height:1.65; }.round-signal { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }.round-signal article { min-height:74px; padding:5px 15px; border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }.round-signal article:first-child { border-left:0; }.round-signal span { color:var(--muted); font:9px var(--mono); letter-spacing:.08em; }.round-signal strong { margin-top:8px; color:#eef1e8; font:500 19px var(--mono); line-height:1.1; letter-spacing:-.07em; overflow-wrap:anywhere; }.review-block { border-top:1px solid var(--line); padding-top:22px; }.review-head span { font-size:11px; color:var(--muted); } textarea { display:block; width:100%; min-height:118px; margin-top:17px; background:var(--panel-deep); border:1px solid var(--line); border-radius:4px; color:var(--ink); padding:14px; font:14px/1.7 var(--sans); resize:vertical; outline:0; } textarea:focus { border-color:#71812a; }
.round-audio { display:block; width:100%; height:38px; margin-top:14px; filter:sepia(.4) hue-rotate(20deg) saturate(1.6); }.effort-block { margin-top:20px; padding:15px; background:#161918; border:1px solid #2d332f; border-radius:4px; }.effort-row { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }.effort-row button { width:30px; height:30px; border-radius:50%; border:1px solid #4a504b; background:transparent; color:var(--muted); font:11px var(--mono); }.effort-row button.active { background:var(--acid); border-color:var(--acid); color:#1d2500; }.effort-row span { margin-left:4px; color:#bbc0b4; font-size:12px; }
.coach-card { margin-top:30px; padding:25px 0 0; background:transparent; border:0; border-top:1px solid #52602c; border-radius:0; }.coach-heading { display:flex; gap:11px; align-items:center; }.coach-spark { color:var(--acid); font-size:27px; }.coach-heading .eyebrow { margin:0 0 3px; }.coach-status { margin-left:auto; font:10px var(--mono); letter-spacing:.08em; color:var(--acid); }.coach-waiting { font-size:13px; color:#aeb2a7; margin-top:18px; }.coach-waiting span { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--acid); margin-right:3px; animation:coachPulse 1.1s infinite; }.coach-waiting span:nth-child(2){animation-delay:.15s}.coach-waiting span:nth-child(3){animation-delay:.3s}.coach-verdict { margin:26px 0 12px; color:var(--acid); font:10px var(--mono); letter-spacing:.1em; }.coach-narrative { white-space:pre-line; margin:13px 0 22px; font-size:15px; line-height:1.85; color:#eef0e7; max-width:850px; }.coach-metrics { display:flex; gap:13px 19px; flex-wrap:wrap; padding:14px 0; border-top:1px solid #303632; border-bottom:1px solid #303632; }.coach-metrics span { color:#bfc6b8; font:10px var(--mono); letter-spacing:.025em; }.coach-metrics b { color:var(--acid); font-weight:500; }.score-formula { margin:12px 0 0; font:9px var(--mono); letter-spacing:.06em; color:#8b9188; }.coach-comparison { display:flex; gap:22px; flex-wrap:wrap; margin-top:16px; }.coach-comparison p { flex:1 1 280px; margin:0; padding-left:12px; border-left:2px solid #65701d; color:#c2c7bf; font-size:11px; line-height:1.55; }.coach-notes { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:24px; }.coach-notes article { border-top:1px solid #303632; padding-top:11px; }.coach-notes .next-action { grid-column:1/-1; border-color:var(--acid); }.coach-notes span,details summary { font:9px var(--mono); letter-spacing:.09em; color:#898e85; }.coach-notes p { font-size:12px; line-height:1.7; margin:7px 0 0; }.universe-suggestions { margin-top:24px; padding:0; border:0; background:transparent; }.suggestion-label { margin:0 0 11px; color:var(--acid); font:10px var(--mono); letter-spacing:.1em; }.universe-card { padding:14px 0; border-top:1px solid #3c4730; }.universe-card:first-child { border-top:1px solid #3c4730; }.universe-card strong { font-size:13px; }.universe-card p { margin:5px 0 8px; color:#c4c8bd; font-size:12px; line-height:1.55; }.universe-card div { display:flex; flex-wrap:wrap; gap:6px; }.universe-card span { padding:4px 7px; border:1px solid #45502e; border-radius:20px; color:#e4ebc4; font:10px var(--mono); }.round-progress { margin-top:22px; padding:13px 0 13px 14px; border-left:3px solid var(--blue); font-size:12px; color:#cfdbdf; line-height:1.65; } details { margin-top:15px; } summary { cursor:pointer; }.association { padding:10px 0; border-bottom:1px solid #29302b; display:grid; grid-template-columns:110px 92px 1fr; gap:9px; font-size:12px; }.association b { font-weight:600; }.association em { font-style:normal; color:var(--acid); font:9px var(--mono); letter-spacing:.04em; }.association p { margin:0; color:#aaa; }
.transfer-panel { border-color:#4d5926; }.transfer-panel .panel-heading>span { color:var(--acid); font:11px var(--mono); letter-spacing:.08em; }.transfer-result { margin-top:15px; padding:14px; background:#161a14; border-left:3px solid var(--acid); font-size:13px; line-height:1.65; }.transfer-result strong { color:var(--acid); font:22px var(--mono); }
.profile-banner { display:flex; justify-content:space-between; gap:20px; padding:22px; margin:24px 0 14px; border:1px solid #566225; background:linear-gradient(110deg,#1a2114,#191c1a); }.profile-banner>div:first-child>span { color:var(--acid); font:10px var(--mono); letter-spacing:.1em; }.profile-banner h3 { font-size:28px; letter-spacing:-.06em; margin:5px 0; }.profile-banner p { margin:0; font-size:12px; color:#c0c5bb; }.xp-display { min-width:120px; text-align:right; }.xp-display span,.xp-display small { display:block; color:var(--muted); font:9px var(--mono); letter-spacing:.1em; }.xp-display strong { display:block; color:var(--acid); font:40px var(--mono); letter-spacing:-.1em; }.progress-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:14px 0 25px; }.progress-summary strong { font-size:25px; }.skill-section,.mastery-section,.pattern-section,.history-section { border-top:1px solid var(--line); padding-top:20px; margin-top:22px; }.section-title { align-items:center; }.section-title .eyebrow { margin:0; }.skill-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:9px; margin-top:14px; }.skill-card { padding:12px 10px; border:1px solid var(--line); background:#151817; }.skill-card span { color:var(--muted); font:9px var(--mono); }.skill-card strong { display:block; margin-top:7px; color:var(--acid); font:20px var(--mono); letter-spacing:-.08em; }.skill-card i { display:block; height:3px; margin-top:9px; background:#303833; }.skill-card i b { display:block; height:100%; background:var(--acid); }.mastery-list { display:grid; gap:8px; margin-top:14px; }.mastery-row { display:flex; justify-content:space-between; gap:16px; padding:10px; border:1px solid var(--line); font-size:12px; }.mastery-row span:first-child:before { content:'○'; color:var(--muted); margin-right:8px; }.mastery-row.done span:first-child:before { content:'●'; color:var(--acid); }.mastery-row small { color:var(--muted); text-align:right; }.pattern-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }.pattern-grid article { padding:13px; background:#151817; border:1px solid var(--line); }.pattern-grid span { color:var(--muted); font:9px var(--mono); letter-spacing:.07em; }.pattern-grid p { margin:8px 0 0; font-size:12px; line-height:1.55; }.history { border-top:1px solid var(--line); margin-top:13px; }.history-row { padding:14px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:18px; }.history-row p { margin:0; font-size:13px; }.history-row small { color:var(--muted); font:9px var(--mono); }.history-row strong { font:16px var(--mono); color:var(--acid); }.history-row em { display:block; margin-top:4px; color:#94a795; font:9px var(--mono); font-style:normal; letter-spacing:.05em; }.empty-state { color:var(--muted); font-size:13px; padding:20px 0; }.data-actions { display:flex; justify-content:flex-end; gap:18px; border-top:1px solid var(--line); padding-top:18px; margin-top:24px; }
.toast { position:fixed; bottom:24px; left:50%; transform:translate(-50%,20px); opacity:0; background:var(--acid); color:#172000; border-radius:3px; padding:12px 16px; font-size:13px; font-weight:700; transition:.2s; pointer-events:none; z-index:4; }.toast.show { transform:translate(-50%,0); opacity:1; } @keyframes pulse { 50% { opacity:.25; } } @keyframes coachPulse { 50% { opacity:.2; transform:translateY(-2px); } }
@media(max-width:800px) { .mode-dock,.profile-banner { align-items:flex-start; flex-direction:column; }.mode-options { justify-content:flex-start; }.result-overview { grid-template-columns:180px 1fr; gap:22px; }.round-signal { grid-column:1/-1; }.progress-summary,.pattern-grid { grid-template-columns:repeat(2,1fr); }.skill-grid { grid-template-columns:repeat(4,1fr); }.xp-display { text-align:left; } }
@media(max-width:640px) { .shell { padding:17px 16px 55px; }.system-status { display:none; }.game-screen { padding:45px 0 28px; min-height:540px; }.focus-stage { min-height:600px; padding:80px 0; }.focus-timer-wrap,.focus-timer-ring { width:228px; height:228px; }.focus-timer-content span { font-size:52px; }.round-panel,.results,.progress,.preparation,.transfer-panel,.mode-dock { padding:18px; }.result-screen { margin-top:16px; padding:26px 0 18px; border-left:0; border-right:0; }.result-overview { grid-template-columns:1fr; gap:18px; }.score-orbit { margin:auto; }.score-reading { text-align:center; }.round-signal { grid-template-columns:repeat(2,1fr); width:100%; }.round-signal article:nth-child(3) { border-left:0; margin-top:15px; }.round-signal article:nth-child(4) { margin-top:15px; }.result-actions,.transfer-actions { justify-content:stretch; }.result-actions button,.transfer-actions button { flex:1; }.game-meta { font-size:9px; }.topbar { padding-bottom:15px; }.coach-comparison,.coach-notes { grid-template-columns:1fr; }.coach-notes .next-action { grid-column:auto; }.association { grid-template-columns:1fr; gap:4px; }.progress-summary,.pattern-grid { grid-template-columns:1fr; }.skill-grid { grid-template-columns:repeat(3,1fr); }.mode-options { gap:6px; }.mode-options button { padding:7px 8px; }.data-actions { justify-content:space-between; gap:8px; }.profile-banner { padding:17px; } }
.mode-dock { flex-wrap:wrap; }.mode-dock h3 { margin:0 0 5px; font-size:15px; }.mode-guide { width:100%; border-top:1px solid var(--line); padding-top:12px; }.mode-guide p { margin:0; color:#bfc4ba; font-size:11px; line-height:1.7; }.mode-guide b { color:var(--acid); font:10px var(--mono); letter-spacing:.04em; }.effort-block>p:last-child { margin:10px 0 0; color:#afb5aa; font-size:11px; line-height:1.6; }.metric-legend { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }.metric-legend span { color:#bcc5b1; font-size:10px; line-height:1.45; }.metric-legend b { color:var(--acid); font:10px var(--mono); letter-spacing:.04em; }

/* Navegación, dashboard y adaptación multidispositivo */
body { background:radial-gradient(circle at 50% -15%,#20251b 0,#111313 34%); padding-bottom:90px; }
.shell { max-width:1220px; padding-bottom:70px; }
.topbar { position:sticky; top:0; z-index:20; min-height:62px; padding:14px 0; background:rgba(17,19,19,.86); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.brand { appearance:none; border:0; background:transparent; padding:0; cursor:pointer; }
.header-context { display:flex; align-items:center; gap:10px; color:var(--muted); font:10px var(--mono); letter-spacing:.07em; text-align:right; }.header-context span:last-child { color:#d7dbd2; }.header-context i { width:3px; height:3px; border-radius:50%; background:var(--acid); }
.level-library { margin:24px 0 10px; padding:18px 20px 16px; border:1px solid var(--line); border-radius:14px; background:rgba(23,26,24,.84); }.level-library-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:14px; }.level-library-head h2 { font-size:20px; }.level-library-head>p { max-width:430px; margin:0; color:var(--muted); font-size:11px; line-height:1.55; text-align:right; }.level-rail { display:flex; gap:9px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; padding:1px 1px 4px; }.level-rail::-webkit-scrollbar { display:none; }.level-choice { flex:0 0 150px; min-height:88px; padding:12px; border:1px solid #333936; border-radius:10px; background:#151817; color:var(--ink); text-align:left; transition:transform .18s,border-color .18s,background .18s; }.level-choice:hover:not(:disabled) { transform:translateY(-2px); border-color:#778130; }.level-choice>span { display:block; color:var(--acid); font:10px var(--mono); }.level-choice strong { display:block; min-height:32px; margin-top:7px; font-size:11px; line-height:1.35; }.level-choice small { display:block; margin-top:5px; color:#777d77; font:9px var(--mono); letter-spacing:.05em; }.level-choice.active { border-color:var(--acid); background:linear-gradient(145deg,#22291b,#171a18); box-shadow:0 0 0 1px rgba(234,255,82,.12),0 10px 28px rgba(0,0,0,.24); }.level-choice.mastered>span:after { content:'  ✓'; }.level-choice:disabled { opacity:.34; cursor:not-allowed; filter:saturate(.4); }
.game-screen { border:1px solid rgba(60,67,54,.58); border-radius:20px; background:linear-gradient(180deg,rgba(26,30,25,.72),rgba(17,19,19,.35)); }.game-screen h1,.focus-stage h1 { text-wrap:balance; }
.mode-dock,.round-panel,.results,.preparation,.transfer-panel { border-radius:14px; }
.primary-button,.secondary-button,.icon-button { min-height:48px; border-radius:10px; transition:transform .16s,background .16s; }.primary-button:active,.secondary-button:active,.icon-button:active { transform:scale(.98); }
.bottom-nav { position:fixed; left:50%; bottom:18px; z-index:50; width:min(360px,calc(100% - 28px)); display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:7px; border:1px solid rgba(89,98,78,.75); border-radius:18px; background:rgba(22,25,23,.9); box-shadow:0 20px 70px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.025) inset; backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); transform:translateX(-50%); transition:opacity .2s,transform .2s; }.bottom-nav button { min-height:54px; display:flex; align-items:center; justify-content:center; gap:9px; border-radius:12px; background:transparent; color:#858b84; font-size:12px; font-weight:700; }.bottom-nav button.active { background:#eaff52; color:#192000; box-shadow:0 6px 20px rgba(234,255,82,.13); }.nav-icon { font-size:19px; line-height:1; }.chart-icon { font:24px var(--mono); transform:rotate(-14deg); }.round-active .bottom-nav { opacity:0; pointer-events:none; transform:translate(-50%,calc(100% + 40px)); }
.dashboard-screen { min-height:calc(100vh - 130px); padding:34px 0 40px; }.dashboard-title { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:18px 4px 26px; }.dashboard-title h1 { margin:0; font-size:clamp(46px,7vw,78px); letter-spacing:-.075em; }.dashboard-title>div>p:last-child { margin:10px 0 0; color:var(--muted); font-size:13px; }.dashboard-title>span { color:#858b84; font:9px var(--mono); letter-spacing:.08em; }
.dashboard-screen .profile-banner { margin:0 0 14px; padding:26px 28px; border-radius:16px; background:radial-gradient(circle at 85% 10%,rgba(234,255,82,.12),transparent 34%),linear-gradient(115deg,#1b2215,#171a18); }.dashboard-screen .profile-banner h3 { font-size:34px; }.progress-summary { gap:10px; }.progress-summary article { border-radius:12px; background:rgba(22,25,23,.72); }.dashboard-main-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr); gap:14px; margin:14px 0 28px; }.dashboard-card { min-height:330px; padding:22px; border:1px solid var(--line); border-radius:16px; background:#171a18; }.section-title>div h2 { font-size:22px; }.trend-legend { display:flex; gap:18px; margin:22px 0 4px; color:#9ea49a; font:9px var(--mono); letter-spacing:.05em; }.trend-legend span { display:flex; align-items:center; gap:6px; }.trend-legend i { width:7px; height:7px; border-radius:50%; }.score-dot { background:var(--acid); }.precision-dot { background:var(--blue); }.chart-wrap { min-height:225px; display:grid; place-items:center; overflow:hidden; }.chart-wrap svg { width:100%; height:auto; overflow:visible; }.chart-grid line { stroke:#2c322e; stroke-width:1; }.chart-grid text,.chart-label { fill:#737a72; font:8px var(--mono); }.score-line,.precision-line { fill:none; stroke-width:2.5; vector-effect:non-scaling-stroke; }.score-line { stroke:var(--acid); }.precision-line { stroke:var(--blue); }.chart-wrap circle.score-line { fill:var(--acid); stroke:#171a18; stroke-width:2; }.chart-wrap circle.precision-line { fill:var(--blue); stroke:#171a18; stroke-width:2; }
.progress-summary article { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }.progress-summary span,.progress-summary strong { display:block; }.progress-summary strong { margin-top:9px; }
.active-coach { background:linear-gradient(155deg,#1b2118,#151817 68%); border-color:#46522c; }.active-coach-lead { margin:30px 0 18px; color:#f2f4ec; font-size:19px; font-weight:650; line-height:1.5; letter-spacing:-.025em; }.coach-evidence { display:grid; gap:11px; }.coach-evidence p { margin:0; padding-left:13px; border-left:2px solid #65701d; color:#bbc1b7; font-size:12px; line-height:1.65; }.coach-focus { margin-top:24px; padding-top:17px; border-top:1px solid #3a422f; }.coach-focus span { color:var(--acid); font:9px var(--mono); letter-spacing:.09em; }.coach-focus p { margin:8px 0 0; font-size:12px; line-height:1.65; }
.dashboard-screen .skill-section,.seed-progress-section,.level-journey-section { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }.dashboard-screen .skill-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.dashboard-screen .skill-card { min-height:166px; padding:16px; border-radius:12px; background:#151817; }.skill-card>div { display:flex; justify-content:space-between; gap:8px; }.skill-card>div span { color:#b7bdb3; }.skill-card>div small { color:#7c837b; font:8px var(--mono); text-align:right; }.dashboard-screen .skill-card strong { margin-top:18px; font-size:30px; }.dashboard-screen .skill-card p { margin:11px 0 0; color:#858b83; font-size:10px; line-height:1.45; }.skill-card.dormant { opacity:.42; }.section-copy { max-width:720px; margin:10px 0 18px; color:var(--muted); font-size:12px; line-height:1.65; }
.seed-comparison-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.seed-comparison { padding:19px; border:1px solid var(--line); border-radius:14px; background:#151817; }.seed-comparison-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.seed-comparison-head span { color:#7d847c; font:8px var(--mono); letter-spacing:.05em; }.seed-comparison-head h3 { margin-top:5px; font-size:22px; }.seed-comparison-head>strong { color:var(--acid); font:34px var(--mono); letter-spacing:-.1em; }.seed-deltas { display:flex; gap:15px; flex-wrap:wrap; margin:17px 0 12px; }.seed-deltas span { color:#8f968c; font:9px var(--mono); }.seed-deltas b { color:#e8ebe2; font-weight:500; }.seed-comparison p { margin:6px 0 0; color:#b5bbb1; font-size:11px; line-height:1.55; }.seed-comparison .new-perspective { color:#dce7ad; }
.level-journey { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:16px; }.journey-step { min-height:76px; display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:12px; background:#151817; }.journey-step>span { flex:0 0 30px; height:30px; display:grid; place-items:center; border:1px solid #4a514b; border-radius:50%; color:#aeb4aa; font:10px var(--mono); }.journey-step strong,.journey-step small { display:block; }.journey-step strong { font-size:10px; line-height:1.35; }.journey-step small { margin-top:4px; color:#777e76; font:8px var(--mono); }.journey-step.active { border-color:var(--acid); }.journey-step.active>span,.journey-step.mastered>span { background:var(--acid); border-color:var(--acid); color:#192000; }.journey-step.locked { opacity:.33; }
.dashboard-screen .mastery-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.dashboard-screen .mastery-row { border-radius:10px; background:#151817; }.dashboard-screen .pattern-grid article { border-radius:12px; }.data-actions { padding-bottom:10px; }.toast { bottom:100px; max-width:calc(100% - 32px); text-align:center; }

@media(max-width:900px) {
  .dashboard-main-grid { grid-template-columns:1fr; }.dashboard-card { min-height:auto; }.dashboard-screen .skill-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.level-journey { grid-template-columns:repeat(2,minmax(0,1fr)); }.seed-comparison-list { grid-template-columns:1fr; }
}
@media(max-width:640px) {
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }.shell { padding:0 14px 36px; }.topbar { min-height:58px; padding:10px 0; }.brand { font-size:13px; }.header-context { max-width:54%; gap:6px; font-size:8px; }.header-context span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.header-context i { flex:0 0 3px; }
  .level-library { margin:12px -2px 8px; padding:14px 12px 12px; border-radius:14px; }.level-library-head { align-items:flex-start; margin-bottom:12px; }.level-library-head h2 { font-size:17px; }.level-library-head>p { display:none; }.level-choice { flex-basis:132px; min-height:80px; padding:10px; }.level-choice strong { font-size:10px; }
  .game-screen { min-height:auto; padding:30px 10px 24px; border-radius:18px; }.game-screen .eyebrow { margin-top:24px; }.game-screen h1 { max-width:100%; font-size:clamp(48px,14vw,70px); letter-spacing:-.075em; overflow-wrap:anywhere; }.rule { margin-top:15px; font-size:12px; line-height:1.55; }.focus-line { margin-bottom:14px; font-size:10px; }.timer-wrap,.timer-ring { width:188px; height:188px; }.timer-content span { font-size:37px; }.controls { width:100%; }.controls .primary-button { flex:1; }.microcopy { max-width:280px; margin:12px auto 0; line-height:1.55; }
  .mode-dock { margin-top:10px; padding:15px; }.mode-options { width:100%; flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; padding-bottom:4px; }.mode-options::-webkit-scrollbar { display:none; }.mode-options button { flex:0 0 auto; min-height:38px; padding:8px 12px; }.mode-guide { padding-top:10px; }.mode-guide p { font-size:10px; }
  .focus-stage { min-height:calc(100svh - 128px); padding:42px 0 74px; }.focus-stage h1 { font-size:clamp(54px,16vw,84px); letter-spacing:-.075em; }.focus-timer-wrap { margin-top:30px; }.focus-stage-note { max-width:280px; font-size:11px; line-height:1.5; }
  .bottom-nav { bottom:max(10px,env(safe-area-inset-bottom)); width:calc(100% - 24px); border-radius:17px; }.bottom-nav button { min-height:52px; }
  .result-screen { min-height:auto; }.result-head { align-items:center; }.review-head { flex-direction:column; }.review-block textarea { min-height:145px; font-size:16px; }.effort-block { padding:14px 12px; }.effort-row { gap:8px; }.effort-row button { width:36px; height:36px; }.coach-heading { align-items:flex-start; }.coach-status { font-size:8px; }.coach-narrative { font-size:14px; line-height:1.75; }.coach-metrics { gap:10px 14px; }.result-actions { position:sticky; bottom:82px; z-index:8; padding:9px; border:1px solid var(--line); border-radius:14px; background:rgba(22,25,23,.93); backdrop-filter:blur(14px); }
  .dashboard-screen { padding:18px 0 24px; }.dashboard-title { align-items:flex-start; padding:12px 2px 20px; }.dashboard-title h1 { font-size:46px; }.dashboard-title>div>p:last-child { max-width:250px; font-size:11px; }.dashboard-title>span { display:none; }.dashboard-screen .profile-banner { padding:20px; }.dashboard-screen .profile-banner h3 { font-size:29px; }.progress-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.progress-summary article { min-height:90px; }.progress-summary strong { font-size:22px; }
  .dashboard-main-grid { margin-top:10px; }.dashboard-card { padding:18px 15px; border-radius:14px; }.section-title>div h2 { font-size:19px; }.chart-wrap { min-height:190px; }.active-coach-lead { margin-top:23px; font-size:17px; }.dashboard-screen .skill-grid { grid-template-columns:1fr; }.dashboard-screen .skill-card { min-height:auto; }.seed-comparison { padding:16px; }.level-journey { grid-template-columns:1fr 1fr; }.journey-step { min-height:70px; padding:10px; }.dashboard-screen .mastery-list { grid-template-columns:1fr; }.mastery-row { align-items:flex-start; flex-direction:column; }.mastery-row small { padding-left:22px; text-align:left; }.pattern-grid { grid-template-columns:1fr 1fr; }.history-row { align-items:flex-start; }.history-row p { font-size:12px; }.data-actions { flex-wrap:wrap; justify-content:flex-start; }.toast { bottom:94px; }
}
@media(max-width:380px) {
  .shell { padding-inline:10px; }.header-context { max-width:50%; }.level-choice { flex-basis:122px; }.game-screen h1 { font-size:44px; }.pattern-grid,.level-journey { grid-template-columns:1fr; }.round-signal strong { font-size:16px; }.bottom-nav { width:calc(100% - 18px); }
}

/* Perfil compacto, dominio global y privacidad del modo invitado */
.guest-mode .bottom-nav { grid-template-columns:1fr; }
.guest-mode .bottom-nav button[data-view="dashboard"] { display:none; }
.profile-banner { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(230px,.85fr) auto; align-items:center; gap:24px; }
.profile-copy { min-width:0; }
.mastery-display>span,.mastery-display>p { color:var(--muted); font:9px var(--mono); letter-spacing:.08em; }
.mastery-display>div { display:flex; align-items:baseline; gap:6px; margin:4px 0 7px; }
.mastery-display strong { color:var(--acid); font:42px var(--mono); line-height:1; letter-spacing:-.1em; }
.mastery-display small { color:#b8beb3; font:12px var(--mono); }
.mastery-display i { display:block; width:100%; height:5px; overflow:hidden; border-radius:99px; background:#303832; }
.mastery-display i b { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--acid),#9de8a8); transition:width .5s ease; }
.mastery-display>p { margin:7px 0 0; line-height:1.45; letter-spacing:.01em; }
.dashboard-screen .skill-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.dashboard-screen .skill-card { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(48px,.9fr) auto; align-items:center; gap:6px 9px; padding:10px 11px; }
.skill-card .skill-label { min-width:0; display:flex; align-items:baseline; justify-content:flex-start; gap:6px; }
.skill-card .skill-label span { flex:0 0 auto; color:var(--acid); }
.skill-card .skill-label strong { min-width:0; overflow:hidden; color:#d9ddd4; font-size:10px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-screen .skill-card>i { height:5px; margin:0; border-radius:99px; overflow:hidden; }
.dashboard-screen .skill-card>output { color:var(--acid); font:15px var(--mono); text-align:right; }
.dashboard-screen .skill-card>small { grid-column:1/-1; color:#727a72; font:7px var(--mono); letter-spacing:.05em; text-transform:uppercase; }
.dashboard-screen .skill-card p { display:none; }

@media(max-width:640px) {
  .dashboard-screen { padding-top:8px; }
  .dashboard-title { padding:7px 2px 12px; }
  .dashboard-title h1 { font-size:36px; }
  .dashboard-title>div>p:last-child { display:none; }
  .dashboard-screen .profile-banner { grid-template-columns:minmax(0,1fr) auto; gap:10px 14px; padding:14px; }
  .profile-copy h3,.dashboard-screen .profile-banner h3 { margin:3px 0; font-size:21px; }
  .profile-copy p { overflow:hidden; font-size:10px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
  .mastery-display { grid-column:1/-1; grid-row:2; }
  .mastery-display>div { margin:2px 0 5px; }
  .mastery-display strong { font-size:34px; }
  .mastery-display>p { margin-top:5px; font-size:8px; }
  .xp-display { min-width:58px; text-align:right; }
  .xp-display strong { font-size:25px; }
  .progress-summary { gap:6px; margin:7px 0 10px; }
  .progress-summary article { min-height:60px; padding:9px 10px; }
  .progress-summary span { font-size:7px; line-height:1.3; }
  .progress-summary strong { margin-top:4px; font-size:18px; }
  .dashboard-main-grid { gap:8px; margin:8px 0 13px; }
  .dashboard-card { padding:13px 12px; }
  .trend-legend { margin:10px 0 0; }
  .chart-wrap { min-height:145px; }
  .active-coach-lead { margin:12px 0 10px; font-size:14px; line-height:1.45; }
  .coach-evidence { gap:7px; }
  .coach-evidence p { padding-left:9px; font-size:10px; line-height:1.45; }
  .coach-focus { margin-top:12px; padding-top:10px; }
  .coach-focus p { margin-top:5px; font-size:10px; line-height:1.5; }
  .dashboard-screen .skill-section,.seed-progress-section,.level-journey-section,.skill-section,.mastery-section,.pattern-section,.history-section { margin-top:14px; padding-top:13px; }
  .section-title>div h2 { font-size:16px; }
  .section-title>span { max-width:46%; font-size:7px; text-align:right; }
  .dashboard-screen .skill-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-top:9px; }
  .dashboard-screen .skill-card { padding:8px; gap:4px 6px; }
  .skill-card .skill-label strong { font-size:9px; }
  .dashboard-screen .skill-card>output { font-size:13px; }
  .section-copy { margin:6px 0 10px; font-size:10px; line-height:1.45; }
  .seed-comparison-list { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
  .seed-comparison-list::-webkit-scrollbar { display:none; }
  .seed-comparison { flex:0 0 86%; padding:12px; scroll-snap-align:start; }
  .seed-comparison-head h3 { font-size:17px; }
  .seed-comparison-head>strong { font-size:25px; }
  .seed-deltas { gap:8px; margin:10px 0 7px; }
  .level-journey { display:flex; gap:7px; overflow-x:auto; margin-top:9px; scrollbar-width:none; scroll-snap-type:x proximity; }
  .level-journey::-webkit-scrollbar { display:none; }
  .journey-step { flex:0 0 142px; min-height:62px; scroll-snap-align:start; }
  .dashboard-screen .mastery-list { display:flex; gap:7px; overflow-x:auto; margin-top:9px; scrollbar-width:none; scroll-snap-type:x proximity; }
  .dashboard-screen .mastery-list::-webkit-scrollbar { display:none; }
  .dashboard-screen .mastery-row { flex:0 0 218px; min-height:72px; justify-content:flex-start; gap:5px; padding:9px; scroll-snap-align:start; }
  .dashboard-screen .mastery-row span { font-size:10px; line-height:1.35; }
  .dashboard-screen .mastery-row small { padding-left:22px; font-size:8px; line-height:1.35; }
  .pattern-grid { gap:6px; }
  .pattern-grid article { padding:9px; }
  .pattern-grid p { margin-top:5px; font-size:10px; line-height:1.4; }
  .history { margin-top:8px; }
  .history-row { padding:9px 0; }
  .history-row p { font-size:10px; }
  .history-row strong { font-size:14px; }
  .data-actions { gap:7px 13px; margin-top:12px; padding-top:10px; }
}

@media(max-width:380px) {
  .pattern-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .level-journey { grid-template-columns:none; }
}

/* Dashboard narrativo y heptágono de habilidades */
.app-view:not(.hidden) { animation:viewIn .38s cubic-bezier(.2,.75,.25,1) both; }
.dashboard-card,.skill-insight,.mastery-row,.seed-comparison { transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.dashboard-card:hover,.skill-insight:hover { border-color:#4d5738; box-shadow:0 18px 45px rgba(0,0,0,.18); }
.xp-display { min-width:220px; text-align:left; }
.xp-display>span,.xp-display>small { display:block; color:var(--muted); font:8px var(--mono); letter-spacing:.09em; }
.xp-display>div { display:flex; align-items:baseline; gap:6px; margin:5px 0 7px; }
.xp-display>div strong { display:block; color:var(--acid); font:34px var(--mono); line-height:1; letter-spacing:-.1em; }
.xp-display>div small { color:#c5cabe; font:10px var(--mono); }
.xp-display>i { display:block; height:5px; overflow:hidden; border-radius:99px; background:#303832; }
.xp-display>i b { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,#8fd9ff,var(--acid)); transition:width .55s ease; }
.xp-display>p { margin:6px 0; color:#90978e; font-size:8px; line-height:1.4; }
.progress-summary article { min-height:94px; padding:15px; border:1px solid rgba(54,60,56,.65); }
.progress-summary article>small { margin-top:5px; color:#747b74; font-size:9px; line-height:1.35; }
#prioritySummary { max-width:240px; font-size:17px; letter-spacing:-.035em; line-height:1.1; }
.dashboard-main-grid { grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr); }
.progress-story { background:radial-gradient(circle at 82% 8%,rgba(143,217,255,.08),transparent 35%),#171a18; }
.progress-story-lead { max-width:680px; margin:25px 0 20px; color:#eef1e8; font-size:18px; font-weight:620; line-height:1.55; letter-spacing:-.025em; }
.level-band { padding:15px; border:1px solid #343b35; border-radius:12px; background:#131615; }
.level-band-head { display:flex; align-items:baseline; justify-content:space-between; color:#7e857d; font:9px var(--mono); }
.level-band-head strong { color:var(--acid); font-size:17px; }
.level-band>i { display:block; height:8px; overflow:hidden; margin:9px 0 7px; border-radius:99px; background:#2e3530; }
.level-band>i b { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--acid),#8fd9ff); box-shadow:0 0 14px rgba(234,255,82,.28); transition:width .7s cubic-bezier(.2,.8,.2,1); }
.level-band>small { color:#7e857e; font-size:9px; }
.progress-insights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:13px; }
.progress-insights article { min-height:94px; padding:12px; border:1px solid #303632; border-radius:10px; background:#141716; }
.progress-insights .progress-next { grid-column:1/-1; min-height:72px; border-color:#56632d; background:linear-gradient(130deg,rgba(234,255,82,.07),#151817); }
.progress-insights span { color:#7f877e; font:8px var(--mono); letter-spacing:.08em; }
.progress-insights .progress-next span { color:var(--acid); }
.progress-insights p { margin:7px 0 0; color:#c6cbc1; font-size:10px; line-height:1.5; }

.skill-section { position:relative; }
.skill-profile-layout { display:grid; grid-template-columns:minmax(460px,1.25fr) minmax(300px,.75fr); align-items:center; gap:28px; margin-top:12px; padding:14px; border:1px solid var(--line); border-radius:18px; background:radial-gradient(circle at 29% 46%,rgba(234,255,82,.065),transparent 38%),linear-gradient(145deg,#171b18,#141716); }
.radar-stage { min-width:0; }
.skill-radar { display:block; width:min(100%,540px); margin:auto; overflow:visible; }
.radar-ring { fill:none; stroke:#333a35; stroke-width:1; vector-effect:non-scaling-stroke; }
.radar-ring-10 { stroke:#5a652f; stroke-dasharray:4 5; }
.radar-ring-100 { stroke:#596157; stroke-width:1.4; }
.radar-axis { stroke:#353c36; stroke-width:1; vector-effect:non-scaling-stroke; }
.radar-scale { fill:#626a63; font:7px var(--mono); pointer-events:none; }
.radar-profile { fill:url(#radarFill); fill-opacity:.16; stroke:#eaff52; stroke-width:2.5; stroke-linejoin:round; vector-effect:non-scaling-stroke; filter:url(#radarGlow); transform-origin:240px 240px; animation:radarReveal .8s cubic-bezier(.16,.82,.3,1) both; }
.radar-node { fill:#eaff52; stroke:#192000; stroke-width:2; vector-effect:non-scaling-stroke; pointer-events:none; }
.radar-origin { fill:#717a70; font:6px var(--mono); letter-spacing:.06em; pointer-events:none; }
.radar-hit { fill:transparent; stroke:transparent; cursor:pointer; transition:fill .18s,stroke .18s; }
.radar-label { fill:#aeb5ac; font:9px var(--sans); font-weight:650; pointer-events:none; transition:fill .18s; }
.radar-value { fill:#eaff52; font:10px var(--mono); }
.radar-skill:hover .radar-hit,.radar-skill.active .radar-hit,.radar-skill:focus-visible .radar-hit { fill:rgba(234,255,82,.075); stroke:#68732e; }
.radar-skill:hover .radar-label,.radar-skill.active .radar-label,.radar-skill:focus-visible .radar-label { fill:#f4f6ef; }
.radar-skill:focus { outline:none; }
.radar-caption { margin:-16px 0 5px; color:#747c74; font-size:9px; text-align:center; }
.skill-insight { min-height:390px; padding:24px; border:1px solid #46532e; border-radius:15px; background:linear-gradient(160deg,#1c2318,#151817 72%); }
.skill-insight>div:first-child { display:flex; align-items:center; gap:10px; }
.skill-insight>div:first-child>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--acid); color:#192000; font:13px var(--mono); }
.skill-insight>div:first-child p { margin:0; color:#7f877d; font:8px var(--mono); letter-spacing:.09em; }
.skill-insight h3 { margin:22px 0 3px; font-size:32px; letter-spacing:-.065em; }
.skill-insight>strong { color:var(--acid); font:18px var(--mono); }
.skill-insight dl { display:grid; gap:14px; margin:24px 0 0; }
.skill-insight dl>div { padding-top:13px; border-top:1px solid #35402f; }
.skill-insight dt { color:#9baa66; font:8px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.skill-insight dd { margin:6px 0 0; color:#c4cac0; font-size:11px; line-height:1.55; }
.mastery-explanation { max-width:900px; }
.dashboard-screen .mastery-list { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.dashboard-screen .mastery-row { min-height:150px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:15px; padding:14px; border-radius:12px; }
.mastery-row>div { display:flex; align-items:center; gap:8px; }
.mastery-row>div b { flex:0 0 27px; width:27px; height:27px; display:grid; place-items:center; border:1px solid #4a514b; border-radius:50%; color:#9da49b; font:9px var(--mono); }
.mastery-row>div span { font-size:11px; font-weight:700; line-height:1.35; }
.mastery-row>div span:before { display:none!important; }
.mastery-row.done { border-color:#64712b; background:linear-gradient(145deg,rgba(234,255,82,.075),#151817); }
.mastery-row.done>div b { border-color:var(--acid); background:var(--acid); color:#192000; }
.dashboard-screen .mastery-row small { color:#7f877e; font-size:9px; line-height:1.5; text-align:left; }
.history-row>strong { display:flex; flex-direction:column; align-items:flex-end; }
.history-row>strong b { color:var(--acid); font:16px var(--mono); font-weight:500; }
.history-row>strong small { color:#757c75; font:7px var(--mono); letter-spacing:.07em; text-transform:uppercase; }

.round-reaction { position:fixed; inset:0; z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; background:rgba(8,10,9,.68); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); text-align:center; cursor:pointer; animation:reactionIn .38s cubic-bezier(.17,.85,.25,1) both; }
.round-reaction .reaction-halo { position:absolute; width:280px; height:280px; border:1px solid rgba(234,255,82,.4); border-radius:50%; box-shadow:0 0 80px rgba(234,255,82,.16),inset 0 0 70px rgba(234,255,82,.08); animation:haloPulse 1.4s ease-in-out infinite; }
.round-reaction>span { position:relative; width:68px; height:68px; display:grid; place-items:center; border-radius:50%; background:var(--acid); color:#192000; font-size:28px; box-shadow:0 0 34px rgba(234,255,82,.3); }
.round-reaction>strong { position:relative; margin-top:24px; font-size:clamp(30px,6vw,64px); letter-spacing:-.065em; }
.round-reaction>p { position:relative; max-width:490px; margin:10px 0 0; color:#cbd0c7; font-size:13px; line-height:1.6; }
.round-reaction.retry>span { background:#ff8a62; color:#2a120b; }
.round-reaction.steady>span { background:#8fd9ff; color:#0d2330; }
.round-reaction.leaving { animation:reactionOut .5s ease both; }

@keyframes viewIn { from { opacity:0; transform:translateY(8px); } }
@keyframes radarReveal { from { opacity:0; transform:scale(.05) rotate(-8deg); } }
@keyframes reactionIn { from { opacity:0; } }
@keyframes reactionOut { to { opacity:0; transform:scale(1.02); } }
@keyframes haloPulse { 50% { transform:scale(1.08); opacity:.55; } }

@media(max-width:1050px) {
  .skill-profile-layout { grid-template-columns:minmax(400px,1fr) minmax(280px,.8fr); gap:14px; }
  .dashboard-screen .mastery-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media(max-width:800px) {
  .dashboard-main-grid,.skill-profile-layout { grid-template-columns:1fr; }
  .skill-radar { max-width:520px; }
  .skill-insight { min-height:0; }
  .dashboard-screen .mastery-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:640px) {
  .dashboard-screen .profile-banner { grid-template-rows:auto auto auto; }
  .xp-display { grid-column:1/-1; grid-row:3; min-width:0; text-align:left; }
  .xp-display>div { margin:2px 0 5px; }
  .xp-display>div strong { font-size:27px; }
  .xp-display>p { display:block; margin:5px 0; }
  .progress-summary article { min-height:72px; padding:9px; }
  .progress-summary article>small { font-size:7px; }
  #prioritySummary { font-size:13px; }
  .progress-story-lead { margin:14px 0 12px; font-size:14px; line-height:1.5; }
  .level-band { padding:11px; }
  .progress-insights { gap:6px; }
  .progress-insights article { min-height:82px; padding:9px; }
  .progress-insights p { font-size:9px; }
  .skill-profile-layout { margin-top:8px; padding:6px; border-radius:14px; }
  .skill-radar { width:100%; }
  .radar-label { font-size:8px; }
  .radar-value { font-size:9px; }
  .radar-caption { margin-top:-10px; padding:0 10px; font-size:8px; }
  .skill-insight { padding:15px; }
  .skill-insight h3 { margin-top:14px; font-size:25px; }
  .skill-insight dl { gap:9px; margin-top:14px; }
  .skill-insight dl>div { padding-top:9px; }
  .skill-insight dd { font-size:10px; line-height:1.45; }
  .dashboard-screen .mastery-list { display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
  .dashboard-screen .mastery-row { flex:0 0 220px; min-height:126px; padding:11px; scroll-snap-align:start; }
  .dashboard-screen .mastery-row small { padding-left:0; }
  .round-reaction .reaction-halo { width:220px; height:220px; }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Secuencia de lectura: mantiene la atención mientras llegan voz y análisis. */
html { min-height:100%; background:#111313; overscroll-behavior-y:none; }
body { min-height:100dvh; padding-bottom:0; overflow-x:clip; }
.shell { padding-bottom:26px; }
.has-bottom-nav .shell { padding-bottom:108px; }
.analysis-stage { min-height:min(680px,calc(100dvh - 86px)); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:58px 24px; position:relative; overflow:hidden; text-align:center; isolation:isolate; animation:analysisEnter .42s cubic-bezier(.18,.85,.28,1) both; }
.analysis-glow { position:absolute; width:min(88vw,620px); aspect-ratio:1; z-index:-1; border-radius:50%; background:radial-gradient(circle,rgba(234,255,82,.16),rgba(143,217,255,.06) 35%,transparent 68%); filter:blur(7px); animation:analysisGlow 2.8s ease-in-out infinite; }
.analysis-stage .eyebrow { margin:0 0 25px; color:var(--acid); }
.analysis-orbit { width:190px; height:190px; position:relative; display:grid; place-items:center; margin:0 auto 28px; }
.analysis-orbit:before,.analysis-orbit:after,.analysis-orbit i { position:absolute; inset:0; border:1px solid rgba(234,255,82,.42); border-radius:50%; content:""; }
.analysis-orbit:after { inset:19px; border-color:rgba(143,217,255,.33); animation:analysisSpin 4.4s linear infinite reverse; }
.analysis-orbit i { inset:42px; border-color:rgba(234,255,82,.2); border-right-color:var(--acid); animation:analysisSpin 2s linear infinite; }
.analysis-orbit i:nth-child(2) { inset:5px 50% 5px 0; border-color:transparent; border-top-color:#8fd9ff; border-radius:50%; animation:analysisSpin 2.9s linear infinite; }
.analysis-orbit i:nth-child(3) { inset:50% 0 0 5px; border-color:transparent; border-right-color:#eaff52; border-radius:50%; animation:analysisSpin 3.6s linear infinite reverse; }
.analysis-orbit span { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:var(--acid); color:#162000; font-size:29px; box-shadow:0 0 40px rgba(234,255,82,.38); animation:analysisSpark 1.7s ease-in-out infinite; }
.analysis-step { margin:0; color:#9ee5ff; font:10px var(--mono); letter-spacing:.13em; }
.analysis-stage h1 { max-width:600px; margin:12px 0 0; font-size:clamp(34px,6vw,64px); letter-spacing:-.07em; text-wrap:balance; }
.analysis-copy { max-width:450px; margin:14px 0 0; color:#bcc3b7; font-size:13px; line-height:1.7; }
.analysis-track { width:min(300px,86vw); display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:30px 0 0; }
.analysis-track span { height:4px; border-radius:20px; background:#323934; transition:background .4s ease,box-shadow .4s ease; }
.analysis-track span.active { background:var(--acid); box-shadow:0 0 13px rgba(234,255,82,.55); }
.analysis-note { margin:18px 0 0; color:#737b73; font-size:10px; line-height:1.5; }
.result-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.result-actions button { min-width:0; padding:14px 11px; white-space:nowrap; }
@keyframes analysisEnter { from { opacity:0; transform:translateY(14px); } }
@keyframes analysisGlow { 50% { transform:scale(1.1); opacity:.7; } }
@keyframes analysisSpin { to { transform:rotate(360deg); } }
@keyframes analysisSpark { 50% { transform:scale(1.09); box-shadow:0 0 58px rgba(234,255,82,.58); } }
@media(max-width:640px) {
  body { padding-bottom:0; }
  .shell { padding-bottom:max(18px,env(safe-area-inset-bottom)); }
  .has-bottom-nav .shell { padding-bottom:calc(94px + env(safe-area-inset-bottom)); }
  .analysis-stage { min-height:calc(100svh - 70px); padding:36px 18px 52px; }
  .analysis-orbit { width:164px; height:164px; margin-bottom:24px; }
  .analysis-orbit span { width:56px; height:56px; font-size:25px; }
  .analysis-stage h1 { max-width:330px; font-size:38px; }
  .analysis-copy { max-width:310px; font-size:12px; }
  .result-actions { position:sticky; bottom:0; z-index:8; padding:9px; border:1px solid var(--line); border-radius:14px; background:rgba(22,25,23,.96); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  .result-actions button { min-height:46px; padding:10px 5px; font-size:10px; }
  .toast { bottom:max(18px,env(safe-area-inset-bottom)); }
}
