.anime-page{flex-direction:column;gap:1rem;display:flex}.anime-page-header h1{margin:.2rem 0 .4rem;font-size:1.5rem}.anime{flex-direction:column;gap:.75rem;display:flex}.anime-stage-wrap{aspect-ratio:16/9;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--surface);width:100%;max-height:56svh;position:relative;overflow:hidden}.anime-stage{place-items:center;gap:.5rem;padding:.75rem;display:grid;position:absolute;inset:0}.anime-stage-layer{position:absolute;inset:0}.anime-stage-layer[data-background=dark]{background:linear-gradient(#14120f,#221d18)}.anime-stage-layer[data-background=paper]{background:linear-gradient(#fbf7ec,#f0e9d8)}.anime-stage-figure{z-index:1;justify-content:center;align-items:center;width:100%;max-width:520px;display:flex;position:relative}.anime-stage-figure svg{width:100%;height:auto;max-height:100%}.anime-svg-label{fill:var(--text);font-size:13px}.anime-svg-label-strong{fill:var(--accent);font-size:14px;font-weight:700}.anime-svg-block{fill:#e3d9c2;stroke:#9a917f;stroke-width:2px}.anime-svg-block-alt{fill:#d9cdb2;stroke:#9a917f;stroke-width:2px}.anime-svg-brace{stroke:var(--primary);stroke-width:2px}.anime-svg-example{fill:#efe6d0;stroke:var(--gold);stroke-width:2px}.anime-era-card-wrap{flex-direction:column;align-items:center;gap:.3rem;width:100%;display:flex}.anime-era-card[data-ichiigen=true]{border-color:var(--gold)}.anime-era-card-note{border-top:2px solid var(--gold);color:var(--text);background:#efe6d0;border-radius:0 0 10px 10px;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.4rem;margin:0;padding:.2rem .6rem;font-size:.82rem;display:flex}.anime-era-card-detail{color:var(--text-muted)}.anime-era-row{flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex}.anime-era-chip{border:1px solid var(--border);background:var(--surface-soft);color:var(--text-muted);border-radius:999px;padding:.3rem .6rem;font-size:.85rem}.anime-era-chip[data-active=true]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.anime-card-row{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.anime-era-card,.anime-class-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;align-items:center;gap:.15rem;min-width:4.2rem;padding:.4rem .55rem;display:flex}.anime-era-card{color:var(--primary);font-weight:700}.anime-class-label{color:var(--primary);font-size:.85rem;font-weight:700}.anime-class-example{color:var(--text-muted);font-size:.78rem}.anime-term{z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;margin:.15rem;padding:.25rem .7rem;font-size:.95rem;display:inline-flex;position:relative}.anime-term-strong{background:var(--primary);color:#fff;border-color:var(--primary)}.anime-term-reading{color:var(--text-muted);font-size:.62rem;line-height:1.1}.anime-term-strong .anime-term-reading{color:#e8eef2}.anime-now{justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.9rem;display:flex}.anime-now-scene{color:var(--primary);font-weight:700}.anime-now-time{color:var(--text-muted);font-variant-numeric:tabular-nums}.anime-timeline{position:relative}.anime-timeline-track{background:var(--surface-soft);border-radius:999px;height:6px;position:relative;overflow:hidden}.anime-timeline-fill{background:var(--primary);height:100%}.anime-timeline-mark{background:var(--surface);width:2px;height:100%;position:absolute;top:0}.anime-timeline-label{display:block}.anime-timeline-input{width:100%;height:44px;accent-color:var(--primary);cursor:pointer;background:0 0;margin:0}.anime-controls{flex-direction:column;gap:.5rem;display:flex}.anime-controls-main{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:.4rem;display:grid}.anime-control{min-height:44px;font-size:.9rem}.anime-control-play{min-width:6.5rem}.anime-controls-toggles{flex-wrap:wrap;gap:.75rem;display:flex}.anime-toggle{align-items:center;gap:.35rem;min-height:44px;font-size:.9rem;display:inline-flex}.anime-toggle input{width:22px;height:22px;accent-color:var(--primary)}.anime-caption{background:var(--surface);border:1px solid var(--border);border-radius:16px;justify-content:center;align-items:center;min-height:4.5rem;padding:.6rem .75rem;display:flex}.anime-caption-text{text-align:center;margin:0;font-size:1rem;line-height:1.5}.anime-caption-term{color:inherit;background:#f6e3b9;border-radius:4px;padding:0 .15em;font-weight:700}.anime-caption-empty{display:block}.anime-status{color:var(--text-muted);margin:0;font-size:.8rem}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=700px){.anime-stage-wrap{max-height:62svh}.anime-caption{min-height:3.5rem}}[data-reduced-motion=true] .anime-stage *,[data-reduced-motion=true] .anime-stage :before,[data-reduced-motion=true] .anime-stage :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){.anime-stage *,.anime-stage :before,.anime-stage :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--bg:#f5f2ea;--surface:#fffefa;--text:#253641;--text-muted:#596865;--primary:#263f50;--accent:#a94532;--gold:#b29460;--success:#3d7a57;--warning:#89551a;--border:#deded1;--surface-soft:#eceee4;--radius-card:24px;--shadow-card:0 8px 28px #253b3c06;color:var(--text);background:var(--bg);font-synthesis:none;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;font-size:17px;line-height:1.65}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-underline-offset:4px}button,select{font:inherit}button,.button{border:1px solid var(--border);cursor:pointer;background:var(--surface);min-height:48px;color:var(--text);border-radius:14px;padding:12px 20px}button:disabled{cursor:default;opacity:.65}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.primary{background:var(--primary);color:#fff;border-color:var(--primary);width:100%}.secondary{background:0 0}.button{justify-content:center;align-items:center;gap:16px;font-weight:700;text-decoration:none;display:flex}.shell{max-width:1040px;margin:auto}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}[data-bgm-settings] label{margin-top:20px;display:block}[data-bgm-settings] input[type=range]{width:100%;min-height:44px;accent-color:var(--primary);display:block}.brand{letter-spacing:.03em;font-weight:800;text-decoration:none}.brand span{color:var(--accent);margin-right:8px}.demo-badge{border:1px solid var(--gold);color:#71562c;border-radius:6px;padding:2px 10px;font-size:14px;font-weight:750}.demo-notice{color:var(--text-muted);background:#eee9de;padding:10px 24px;font-size:14px}.page{outline:none;max-width:720px;margin:auto;padding:36px 24px 132px}h1{margin:8px 0 24px;font-size:clamp(26px,5vw,32px);line-height:1.45}h2{margin:12px 0;font-size:22px;line-height:1.5}p{margin:12px 0 24px}.card{border:1px solid var(--border);background:var(--surface);border-radius:20px;margin:24px 0;padding:28px;box-shadow:0 4px 14px #18243a05}.eyebrow{color:var(--accent);letter-spacing:.06em;font-size:14px;font-weight:750}.page-title{justify-content:space-between;align-items:center;display:flex}.round-icon{background:#e9e3d6;border-radius:50%;flex-shrink:0;place-items:center;width:68px;height:68px;font-size:32px;display:grid}.weekly{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:16px 0}.weekly>div{justify-content:space-between;display:flex}.weekly p{margin-bottom:0;font-size:15px}.muted{color:var(--text-muted)}.hero{border-top:4px solid var(--primary);padding:32px}.hero h2{font-size:27px}.journey-art{background:#f5f0e4;border-radius:16px;align-items:center;gap:12px;margin:16px 0;padding:24px 16px;display:flex}.journey-art span{border:1px solid var(--gold);background:var(--surface);border-radius:50%;place-items:center;width:58px;height:58px;font-size:28px;display:grid}.journey-art i{border-top:2px dashed var(--gold);flex:1}.quest-meta{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin:20px 0;font-size:15px;display:flex}.map-link{justify-content:space-between;align-items:center;min-height:64px;padding:20px 8px;text-decoration:none;display:flex}.map-link span{color:var(--text-muted);font-size:15px;display:block}.gentle-note{text-align:center;color:var(--text-muted)}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);width:min(100%,1040px);padding:8px 8px max(8px, env(safe-area-inset-bottom));z-index:10;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{min-height:64px;color:var(--text-muted);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;font-size:14px;text-decoration:none;display:flex}.bottom-nav a span{font-size:25px;line-height:1.3}.bottom-nav a.active{color:var(--primary);background:#eee9de;font-weight:750}.goal-options{gap:12px;display:flex}.goal-options button{flex:1;font-weight:750}.goal-options button:hover{border-color:var(--primary);background:#eee9de}.emblem{color:var(--success);margin:8px 0 20px;font-size:48px}.welcome{text-align:center}.back-link{align-items:center;min-height:44px;margin-bottom:12px;display:inline-flex}.quest-heading{color:var(--text-muted);justify-content:space-between;gap:16px;margin:12px 0;font-size:15px;display:flex}progress{width:100%;height:8px;accent-color:var(--primary);border:0;border-radius:8px;display:block}progress::-webkit-progress-bar{background:var(--border);border-radius:8px}progress::-webkit-progress-value{background:var(--primary);border-radius:8px}.lesson{flex-direction:column;min-height:360px;display:flex}.lesson p{flex:1;margin-bottom:40px;line-height:1.9}.choices{gap:12px;margin:24px 0;display:grid}.choice{text-align:left;align-items:center;gap:16px;width:100%;display:flex}.choice.selected{border:2px solid var(--primary);background:#edf0f4;padding:11px 19px}.choice-label{background:#eee9de;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.feedback{border-left:4px solid var(--warning);background:#faf0df;border-radius:16px;padding:20px}.feedback.correct{border-color:var(--success);background:#edf4ee}.feedback h2{font-size:20px}.result-stats{border-block:1px solid var(--border);margin:24px 0}.result-stats p{justify-content:space-between;margin:12px 0;display:flex}.era-node{border:2px solid var(--primary);align-items:center;gap:20px;text-decoration:none;display:flex}.era-node h2,.era-node p{margin:4px 0}.upcoming{border-style:dashed;margin-left:32px}.entry-icon{color:var(--primary);font-size:40px}select{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;min-height:48px;margin-top:12px;padding:10px;display:block}.save-notice{background:#faf0df;padding:16px 24px}.skip-link{background:var(--surface);z-index:20;padding:12px;position:absolute;top:-100px;left:12px}.skip-link:focus{top:8px}@media (width<=480px){.page{padding:24px 16px 128px}.card,.hero{padding:24px 20px}.topbar{padding:16px}.demo-notice{padding-inline:16px}.round-icon{width:54px;height:54px}.era-node{gap:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.learning-nav{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.learning-nav a{background:var(--surface);border-radius:12px;min-height:44px;padding:.7rem 1rem}.library-tabs,.deck-controls{flex-wrap:wrap;gap:.6rem;margin-block:1rem;display:flex}.library-tabs button[aria-pressed=true]{background:var(--primary);color:#fff}.chapter summary{cursor:pointer;min-height:44px;padding-block:.5rem;font-weight:700}.study-card{border-left:4px solid var(--gold);margin-block:1rem;padding:.5rem 1rem;animation:.18s ease-out reveal-card}.timeline-year{color:var(--accent);font-size:2rem}@keyframes reveal-card{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.learning-visual{text-align:center;margin:1rem 0}.learning-visual svg{width:100%;max-height:210px;display:block}.learning-visual svg text{fill:var(--primary);font:17px system-ui,sans-serif}.learning-visual figcaption{color:var(--text-muted);margin-block:.5rem;font-size:.78rem}.is-playing .diagram-tap{transform-origin:80px 70px;animation:1s ease-in-out infinite stone-tap}.is-playing .diagram-trace{stroke-dasharray:180;animation:2s ease-in-out infinite trace-line}.is-playing .diagram-rise{animation:1.8s ease-in-out infinite diagram-rise}.is-playing .diagram-voyage{animation:3s ease-in-out infinite alternate voyage}.is-playing .diagram-step{animation:1.8s ease-in-out infinite diagram-step}.is-playing .step-1{animation-delay:.3s}.is-playing .step-2{animation-delay:.6s}@keyframes stone-tap{0%,to{transform:translate(-8px,-8px)rotate(-15deg)}45%,65%{transform:translate(23px,12px)rotate(15deg)}}@keyframes trace-line{0%{stroke-dashoffset:180px}60%,to{stroke-dashoffset:0}}@keyframes diagram-rise{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes voyage{0%{transform:translate(-40px)}to{transform:translate(70px)}}@keyframes diagram-step{0%,to{opacity:.55}45%,70%{opacity:1}}@media (prefers-reduced-motion:reduce){.learning-visual *,.study-card{animation:none!important}}#material-search{width:100%;min-height:48px;font:inherit;border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-block:.5rem 1rem;padding:12px;display:block}label[for=material-unit],label[for=material-search]{margin-top:1rem;display:block}.is-learning .companion-wrap.roaming .companion-stage{opacity:.25}.is-learning .companion-wrap.roaming:focus-within .companion-stage{opacity:1}#material-search:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.furigana{ruby-position:under;ruby-align:center;ruby-overhang:none}.furigana rt{letter-spacing:.02em;font-size:.55em;font-weight:400;line-height:1}.diagram-controls{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.pwa-notice{background:#edf4ee;padding:12px 24px}.pwa-notice p{margin-block:6px}.pwa-settings>img{border-radius:16px}.diagram-caption{background:#f2ecde;border-radius:12px;min-height:2.5em;margin:12px 0;padding:8px;font-size:16px;animation:.2s ease-out diagram-caption-arrive}.diagram-focus{pointer-events:none;animation:.24s ease-out diagram-caption-arrive}@keyframes diagram-caption-arrive{0%{opacity:0}to{opacity:1}}.learning-visual.is-playing .diagram-step{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite diagram-inspect}.learning-visual.is-playing .step-1{animation-delay:.8s}.learning-visual.is-playing .step-2{animation-delay:1.6s}.learning-visual[data-kind=site] .diagram-rise,.learning-visual[data-kind=stone][data-step="1"] .diagram-tap,.learning-visual[data-kind=stone][data-step="0"] .diagram-trace{animation:none}.learning-visual.is-playing .diagram-voyage{animation:4.8s ease-in-out infinite voyage-with-swell}@keyframes diagram-inspect{0%,55%,to{opacity:1;transform:scale(1)}18%,38%{opacity:1;transform:scale(1.04)}}@keyframes voyage-with-swell{0%,to{transform:translate(-30px)rotate(-1deg)}30%{transform:translate(8px,-3px)rotate(1deg)}60%{transform:translate(55px)rotate(-1deg)}85%{transform:translate(12px,-3px)rotate(1deg)}}.companion-wrap{margin:16px 0 8px}.companion-chatter{--chatter-width:min(340px, calc(100vw - 32px));--chatter-left:clamp(16px, calc(var(--companion-x,50vw) - var(--chatter-width) / 2), calc(100vw - var(--chatter-width) - 16px));--chatter-top:clamp(76px, calc(var(--companion-y,50vh) - 110px - var(--chatter-height,220px)), calc(100dvh - 100px - var(--chatter-height,220px)));transform:translate3d(var(--chatter-left), var(--chatter-top), 0);z-index:45;pointer-events:auto;border-radius:20px 20px 6px;width:min(340px,100vw - 32px);animation:.42s cubic-bezier(.16,1,.3,1) backwards chatter-float-in;position:fixed;top:0;left:0;overflow:visible}.chatter-body{max-height:min(var(--chatter-max-height,60vh), 60vh, 480px);background:var(--surface);border:1px solid var(--gold);border-radius:inherit;padding:14px 18px;overflow-y:auto;box-shadow:0 6px 24px #18243a15}.companion-chatter:before,.companion-chatter:after{content:"";left:var(--tail-left,clamp(20px, calc(var(--companion-x,50vw) - var(--chatter-left)), calc(100% - 20px)));border:1px solid var(--gold);background:var(--surface);pointer-events:none;border-radius:50%;position:absolute}.companion-chatter:before{width:10px;height:10px;bottom:-16px}.companion-chatter:after{width:5px;height:5px;bottom:-27px}.companion-chatter[data-side=below]:before{top:-16px;bottom:auto}.companion-chatter[data-side=below]:after{top:-27px;bottom:auto}@keyframes chatter-float-in{0%{opacity:0;translate:0 14px}70%{opacity:1;translate:0 -2px}to{opacity:1;translate:0}}.chatter-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.chatter-heading>button{min-width:44px;padding:6px}.companion-chatter p{margin-block:10px;font-size:17px}.companion-chatter small{color:var(--text-muted);margin-block:8px;display:block}.chatter-choices{grid-template-columns:1fr 1fr;gap:8px;display:grid}.chatter-choices button{padding:8px}.chatter-answer{background:#edf4ee;border-radius:12px;margin-top:12px;padding:12px}.companion-wrap.roaming{z-index:40;pointer-events:none;margin:0;position:fixed;inset:0}.roaming .companion-stage{background:0 0;border-radius:0;width:100%;height:100%;overflow:visible}.roaming .companion-stage canvas{pointer-events:none}.roaming .companion-fallback{width:130px;height:130px;transform:translate(-50%,-100%)}.roaming .stage-fallback-note{background:var(--surface);border:1px solid var(--border);pointer-events:auto;border-radius:12px;width:min(260px,100% - 32px);padding:12px;position:absolute;top:76px;right:16px}.roaming .companion-stage:focus-visible{outline:2px dashed var(--accent);outline-offset:-4px}.companion-stage{outline-offset:4px;background:linear-gradient(#f4efe3,#e8e5d9);border-radius:16px;height:160px;position:relative;overflow:hidden}.companion-stage canvas{touch-action:pan-y;width:100%;height:100%;display:block}.companion-stage[data-status=loading] canvas,.companion-stage[data-status=fallback] canvas{opacity:0}.companion-fallback{object-fit:contain;width:auto;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.stage-status{white-space:nowrap;background:var(--surface);border-radius:20px;padding:2px 12px;font-size:14px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.stage-hint,.stage-fallback-note{color:var(--text-muted);margin:8px 0;font-size:14px}.stage-hint span{display:block}.companion-room-link{justify-content:space-between;align-items:center;min-height:44px;margin-top:8px;font-size:16px;display:flex}.companion-wrap.large .companion-stage{height:360px}.camera-presets,.expression-options,.cosmetic-options{flex-wrap:wrap;gap:12px;display:flex}.camera-presets button{flex:1}.expression-options button,.cosmetic-options button{flex:140px}button[aria-pressed=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);background:#edf0f4}.motion-setting{align-items:center;gap:12px;min-height:48px;margin-top:24px;display:flex}.motion-setting input{flex-shrink:0;width:24px;height:24px}#companion-name{width:100%;font:inherit;border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);border-radius:12px;margin:12px 0;padding:12px}.text-button{background:0 0;min-height:44px;margin-top:8px;padding:8px 12px}@media (width<=480px){.companion-wrap.large .companion-stage{height:300px}}:root{--motion-fast:.15s;--motion-panel:.24s;--motion-ease:cubic-bezier(.2, .75, .25, 1)}.page-transition{animation:page-arrive var(--motion-panel) var(--motion-ease) backwards}.lesson,.question{animation:lesson-arrive var(--motion-panel) var(--motion-ease) backwards}.choices .choice{animation:choice-arrive .2s var(--motion-ease) backwards}.choices .choice:first-child{animation-delay:0s}.choices .choice:nth-child(2){animation-delay:35ms}.choices .choice:nth-child(3){animation-delay:70ms}.choices .choice:nth-child(4){animation-delay:.105s}.feedback{animation:feedback-arrive var(--motion-panel) var(--motion-ease) backwards}.feedback.correct h2{animation:correct-arrive .35s var(--motion-ease) backwards}.result .emblem{animation:milestone-arrive .35s var(--motion-ease) backwards}.result p{animation:fade-in var(--motion-panel) var(--motion-ease) backwards 80ms}.study-card{animation:deck-arrive var(--motion-panel) var(--motion-ease) backwards}.study-card ul{animation:fade-in var(--motion-panel) var(--motion-ease) backwards}.bottom-nav a span{transition:transform var(--motion-fast) var(--motion-ease)}.bottom-nav a[aria-current=page] span{transform:scale(1.1)}button:not(:disabled),.button{transition:transform var(--motion-fast) var(--motion-ease)}button:not(:disabled):active,.button:active{transform:scale(.98)}.learning-progress{margin-block:16px 24px;position:relative}.learning-progress progress{clip-path:inset(50%);width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.learning-progress-track{background:#e7e1d5;border-radius:999px;height:8px;display:block;overflow:hidden}.learning-progress-track>span{background:var(--primary);transform-origin:0;height:100%;transition:transform var(--motion-panel) var(--motion-ease);display:block}@media (hover:hover) and (pointer:fine){.map-link:hover,.era-node:hover{transform:translateY(-1px);box-shadow:0 6px 16px #18243a0d}button:not(:disabled):hover,.button:hover{box-shadow:0 4px 12px #18243a0f}}@keyframes page-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes lesson-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes choice-arrive{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes feedback-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes correct-arrive{0%{transform:scale(.98)}55%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes milestone-arrive{0%{opacity:0;transform:scale(.88)rotate(-6deg)}60%{transform:scale(1.04)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes deck-arrive{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}[data-reduced-motion=true] *,[data-reduced-motion=true] :before,[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}body{background-image:radial-gradient(#71664b0b .7px,#0000 .7px);background-size:7px 7px}.ui-icon{vertical-align:middle;flex-shrink:0;width:24px;height:24px}.shell{max-width:1120px}.topbar{border-bottom:1px solid #deded1;padding:22px 40px}.brand{align-items:center;gap:12px;display:flex}.brand .brand-mark{width:44px;height:44px;color:var(--surface);background:var(--primary);border-radius:15px;place-items:center;margin:0;display:grid}.brand-mark .ui-icon{width:29px;height:29px}.brand .brand-name{color:var(--primary);margin:0;font-size:19px}.brand-name small{letter-spacing:.06em;color:var(--text-muted);margin-top:1px;font-size:10px;font-weight:500;display:block}.header-settings{border:1px solid var(--border);background:var(--surface);border-radius:50%;place-items:center;min-width:44px;min-height:44px;display:grid}.demo-notice{background:0 0;justify-content:center;align-items:center;gap:8px;padding:10px 20px 0;font-size:12px;display:flex}.notice-dot{background:#729385;border-radius:50%;width:6px;height:6px}.page{padding-top:30px}.is-adventure .page{max-width:960px}h1{letter-spacing:-.045em;font-size:clamp(27px,4vw,36px);font-weight:800}h2{letter-spacing:-.025em}.eyebrow{letter-spacing:.09em;font-size:12px}.page-title{gap:16px}.page-title h1{margin-top:5px;margin-bottom:20px}.round-icon{color:#647b65;background:#e9eddf;border:1px solid #dce1cf;width:58px;height:58px}.round-icon .ui-icon{width:30px;height:30px}.weekly{border:1px solid var(--border);background:#fffefa80;border-radius:16px;padding:14px 18px}.weekly strong{align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.weekly strong .ui-icon{width:18px;height:18px;color:var(--gold)}.weekly>div{align-items:center;gap:10px}.weekly>div>span{white-space:nowrap;font-size:12px}.weekly b{color:var(--primary);padding-inline:3px;font-size:19px}.card{border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.home-hero{isolation:isolate;background:#eed;border:1px solid #d7dbc9;min-height:326px;margin-top:20px;padding:38px;position:relative;overflow:hidden}.home-hero:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#eed 10%,#eeeeddf5 42%,#eed0 70%);position:absolute;inset:0}.journey-landscape{z-index:-2;object-fit:cover;width:51%;height:100%;position:absolute;bottom:0;right:0}.hero-copy{max-width:58%;position:relative}.hero-copy h2{margin-top:18px;margin-bottom:12px;font-size:clamp(25px,3.4vw,33px);line-height:1.5}.hero-copy p{color:var(--text-muted);max-width:350px;margin-bottom:16px;font-size:16px}.quest-meta{justify-content:flex-start;gap:16px;font-size:12px}.quest-meta>span{align-items:center;gap:6px;display:inline-flex}.quest-meta .ui-icon{width:17px;height:17px}.primary{border-radius:14px;min-height:54px;font-weight:700;box-shadow:0 4px #152b38}.hero-copy .primary{justify-content:space-between;max-width:350px}.hero-copy button.primary{text-align:center}.button .ui-icon{width:20px;height:20px}.section-heading{justify-content:space-between;align-items:center;gap:10px;margin:32px 0 14px;display:flex}.section-heading h2{margin:0;font-size:18px}.section-heading>span{color:var(--text-muted);font-size:12px}.home-extras{grid-template-columns:1.05fr 1fr;gap:24px;display:grid}.demo-card{background:#fffefa90;margin:0;padding:24px}.demo-card h2{font-size:20px}.demo-card p{margin-bottom:16px;font-size:15px}.demo-card .quest-meta{margin-block:16px}.secondary{background:#fffefa90;border-color:#cbd2c9}.home-links .map-link{margin-bottom:12px}.map-link{border:1px solid var(--border);color:var(--text);box-shadow:none;background:#fffefa80;border-radius:20px;gap:14px;padding:20px}.map-link>div{flex:1}.map-link strong{font-size:16px;display:block}.map-link span{margin-top:3px;font-size:12px}.map-link>.link-symbol{color:#5d785f;background:#e7edde;border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;margin:0;display:grid}.companion-link>.link-symbol{color:#9a7046;background:#f1e5d5}.map-link>.ui-icon{width:18px;height:18px;color:var(--text-muted)}.home-tip{color:var(--text-muted);margin:18px 0 0 20px;font-size:12px;line-height:1.8}.gentle-note{margin:28px 0 6px;font-size:13px}.bottom-nav{width:min(570px,100% - 32px);bottom:max(14px, env(safe-area-inset-bottom));background:#fffefaf5;border:1px solid #d7dbd0;border-radius:24px;padding:6px;box-shadow:0 10px 40px #253b3c14}.bottom-nav a{border-radius:18px;gap:5px;min-height:60px;font-size:11px}.bottom-nav a .ui-icon{width:23px;height:23px}.bottom-nav a.active{color:var(--primary);background:#e8eddf}.bottom-nav a.active:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:9px}.bottom-nav a{position:relative}.welcome{background:linear-gradient(150deg,#fffefa,#eceddd);padding:42px 28px}.welcome .emblem .ui-icon{width:64px;height:64px;color:var(--primary)}.welcome h2{margin-top:32px;font-size:18px}.goal-options button{background:var(--surface);border-color:#bfc9bc;font-size:20px}.library-link{margin-top:24px}.quest-trail{position:relative}.quest-trail:before{content:"";border-left:2px dashed #c6cdbd;position:absolute;top:30px;bottom:40px;left:46px}.trail-card{gap:22px;margin-block:14px;padding:24px;display:flex;position:relative}.trail-number{font-variant-numeric:tabular-nums;color:#60736c;background:#eceee4;border:1px solid #d5dbcc;border-radius:50%;flex-shrink:0;align-self:flex-start;place-items:center;width:44px;height:44px;font-size:15px;font-weight:750;display:grid}.trail-copy{flex:1;min-width:0}.trail-copy h2{margin-block:6px 8px;font-size:21px}.trail-copy p{margin-block:8px 16px;font-size:15px}.trail-copy button{min-height:44px;font-size:14px}.trail-card.is-available{background:#f9fbf2;border-color:#aaba9c}.is-available .trail-number{background:var(--primary);border-color:var(--primary);color:#fff}.is-complete .trail-number{color:var(--success);background:#e2eee2}.is-locked{background:#f3f3ec}.lesson,.question{border-top:3px solid #a3b298}.lesson h1,.question h1{font-size:clamp(25px,4vw,30px)}.choice{background:#fffefa;border-radius:16px;min-height:60px}.choice.selected{background:#edf0e6}.learning-visual{background:#f3f3e9;border:1px solid #e3e6d8;border-radius:20px;padding:16px 10px}.chatter-body{background:#fffefa;border-color:#bccab5;box-shadow:0 12px 40px #253b3c18}.chatter-heading .eyebrow{color:#657c5c}.is-learning .companion-wrap.roaming .companion-stage:not([data-quiet=true]){opacity:1}.companion-stage[data-status=ready] canvas{animation:.32s ease-out companion-materialize}@keyframes companion-materialize{0%{opacity:0}to{opacity:1}}@media (hover:hover) and (pointer:fine){.primary:hover{background:#34596a}.header-settings:hover{background:var(--surface-soft)}.bottom-nav a:hover{background:#eef0e6}}@media (width<=639px){.topbar{padding:16px 20px}.brand .brand-name{font-size:17px}.brand-name small{font-size:9px}.brand .brand-mark{border-radius:13px;width:40px;height:40px}.page{padding:24px 20px 132px}.demo-notice{font-size:11px}.page-title h1{margin-bottom:18px}.round-icon{width:46px;height:46px}.weekly{padding:12px}.weekly strong{gap:5px;font-size:11px}.weekly>div>span{font-size:11px}.home-hero{min-height:340px;padding:25px 24px}.hero-copy{max-width:100%}.hero-copy h2{max-width:260px;font-size:27px}.hero-copy p{max-width:240px;font-size:15px}.home-hero:after{background:linear-gradient(90deg,#eed 0%,#eeeeddea 55%,#eeeedd40 100%)}.journey-landscape{width:78%;height:82%;right:-15%}.hero-copy .primary{max-width:none;margin-top:24px}.home-extras{grid-template-columns:1fr;gap:16px}.home-links{gap:12px;display:grid}.home-links .map-link{margin:0}.home-tip{margin:0 12px}.home-tip br{display:none}.section-heading{margin-top:26px}.section-heading>span{font-size:11px}.card{padding:24px}.trail-card{gap:14px;padding:20px 16px}.trail-copy h2{font-size:19px}.trail-copy button{width:100%;padding:10px 12px}.quest-trail:before{left:38px}.bottom-nav{width:calc(100% - 24px);bottom:max(10px, env(safe-area-inset-bottom));border-radius:22px}}@media (prefers-reduced-motion:reduce){.companion-stage[data-status=ready] canvas{animation:none}}.shell[data-reduced-motion=true] .companion-stage[data-status=ready] canvas{animation:none}.room-intro{background:#e9eddf;border:1px solid #d4ddc6;border-radius:24px;margin:8px 0 24px;padding:24px}.room-intro p{margin-block:10px 18px}.room-intro .muted{margin-bottom:0;font-size:13px}.room-intro button{align-items:center;gap:8px;font-size:15px;display:inline-flex}.room-intro button .ui-icon{width:18px;height:18px}.companion-room .camera-presets{border:1px solid var(--border);background:#e9ece2;border-radius:16px;gap:5px;padding:5px}.companion-room .camera-presets button{background:0 0;border-color:#0000}.companion-room button[aria-pressed=true]{background:var(--surface);color:var(--primary);border-color:#90a085;box-shadow:inset 0 0 0 1px #90a085}.companion-room .expression-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.companion-room .expression-options button{font-size:15px}.companion-room .card h2{margin-top:0;font-size:20px}.room-panels .card:last-child{background:#f0eee3}.room-panels .card:last-child p{font-size:15px}.hero-copy p,.trail-copy p{font-size:17px}@media (width<=639px){.hero-copy p{font-size:17px}.room-intro{padding:20px}.room-intro .deck-controls{grid-template-columns:1fr;gap:10px;display:grid}.room-intro button{justify-content:center}}
