:root{color-scheme:dark;--bg:#070b09;--surface:#202723;--stage:#1b241f;--lime:#d5fa74;--text:#f5f5eb;--muted:#aeb8ad;--line:#3b463b;--soft:#c4cdbd;font-family:"Microsoft YaHei","Noto Sans CJK SC",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:16px;line-height:1.65}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a,input,summary,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button{color:inherit;border:0}a{color:var(--lime)}h1,h2,h3,p{margin:0}h1{font-size:40px;line-height:1.45;letter-spacing:-.7px;font-weight:650}h2{font-size:25px;line-height:1.5}h3{font-size:19px}small,.small{font-size:13px}svg{display:block}fieldset{border:0;padding:0;margin:0;min-width:0}.muted{color:var(--muted)}.eyebrow{color:var(--lime);font-size:12px;letter-spacing:1.4px;margin-bottom:13px}.sub{color:var(--muted);margin-top:14px;line-height:1.9}.num{font-family:Consolas,"SFMono-Regular",monospace;font-variant-numeric:tabular-nums}.skip{position:fixed;top:-80px;left:12px;z-index:30;background:var(--lime);color:#1f2a18;padding:12px}.skip:focus{top:12px}
.top{display:flex;gap:28px;align-items:center;justify-content:space-between;min-height:90px;padding:18px max(28px,calc((100vw - 1340px)/2));border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:750;white-space:nowrap}.brand i{width:18px;height:18px;border-radius:50%;background:var(--lime)}.nav{display:flex;gap:30px}.nav button{background:none;min-height:44px;color:var(--muted);padding:8px 0}.nav button.active{color:var(--lime)}.pill{border:1px solid var(--line);border-radius:30px;padding:6px 13px;color:var(--muted);font-size:12px;white-space:nowrap}.top-meta{display:flex;gap:16px;align-items:center}.text-button{background:transparent;border:1px solid var(--line);border-radius:9px;padding:9px 15px;min-height:44px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:54px;padding:14px 23px;background:var(--lime);color:#202a18;border-radius:11px;font-weight:650}.button.secondary{background:transparent;border:1px solid #596653;color:var(--text)}.button.wide{width:100%}.button:hover:enabled{filter:brightness(1.04)}.text-button:hover:enabled{border-color:#92a17f}
main{max-width:1440px;margin:0 auto;padding:36px 52px 60px;min-height:calc(100vh - 168px)}.footer{display:flex;justify-content:space-between;gap:20px;max-width:1440px;margin:0 auto;padding:12px 52px 24px;font-size:11px;color:var(--muted)}.status-line{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px;color:var(--muted);font-size:13px}.status-line .saved{color:var(--soft)}.journey{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.journey span{color:#aeb8ad}.journey span.current{color:var(--lime)}.journey span.done:before{content:"✓ ";color:var(--lime)}.error{border:1px solid #e3b07d;background:#30291f;border-radius:12px;padding:16px 20px;margin-bottom:20px;color:#f5d4ad}.error .text-button{margin:12px 0 0}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:24;border:1px solid var(--line);border-radius:12px;padding:12px 18px;background:#293425;max-width:90vw}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:32px}.pick{text-align:left;border:1px solid #424b40;border-radius:20px;background:#242424;padding:18px 23px 20px;position:relative;min-width:0;overflow:hidden}.pick.selected{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime)}.pick .check{position:absolute;right:20px;top:14px;color:var(--lime);font-size:20px}.pick h2{margin:7px 0}.pick .origin{font-size:12px;color:var(--lime)}.pick p{font-size:13px;color:var(--muted)}.pick .choice-label{border-top:1px solid var(--line);margin-top:15px;padding-top:10px;font-size:12px;color:var(--muted)}.pick.selected .choice-label{color:var(--lime)}.avatar{width:270px;height:220px;overflow:hidden;background-image:url('./assets/characters.png');background-repeat:no-repeat;background-size:1152px 768px;background-position:var(--crop) -151px;position:relative;border-radius:14px;flex:none}.pick .avatar{margin:9px auto 22px}.avatar svg{width:270px;height:220px;position:absolute;inset:0}.avatar-frame{width:270px;height:220px;flex:none;overflow:hidden}.avatar-frame.mini{width:47px;height:39px;border-radius:9px}.mini .avatar{transform:scale(.174);transform-origin:top left}.avatar-frame.medium{width:108px;height:88px;border-radius:12px}.medium .avatar{transform:scale(.4);transform-origin:top left}.partner-actions{margin-top:34px;display:flex;justify-content:space-between;align-items:center;gap:24px}.partner-actions .button{min-width:292px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:18px}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:30px;align-items:start}.lesson-title{font-size:31px;line-height:1.5;margin-bottom:20px}.stage-panel{background:var(--stage);overflow:hidden}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:13px 20px;font-size:13px}.scene{width:100%;height:auto;aspect-ratio:770/445;overflow:hidden}.scene>svg{width:100%;height:100%;font-family:"Microsoft YaHei",sans-serif}.scene text{font-size:16px}.scene .tick{font-size:13px;fill:#b3c0a8}.scene .axis-label{font-size:19px;font-weight:650}.scene .object-label{font-size:18px;fill:#26341b}.scene .scene-caption{font-size:12px;fill:var(--muted)}.scene-legend{border-top:1px solid var(--line);padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.guide{display:flex;gap:16px;align-items:center;border-radius:14px;background:var(--surface);padding:15px 19px;margin-top:17px;font-size:13px;color:var(--muted)}.guide .avatar-frame{background:#242424}.repair-progress{display:flex;gap:12px;margin:18px 0}.repair-progress span{flex:1;border-bottom:3px solid var(--line);padding-bottom:9px;color:var(--muted);font-size:13px}.repair-progress .repaired{border-color:var(--lime);color:var(--lime)}.task-panel h2{margin:10px 0 16px;font-size:24px}.task-panel>.small{margin-bottom:10px}.choice-list{display:grid;gap:10px;margin-top:20px}.choice{background:var(--surface);border:1px solid #53604c;border-radius:11px;text-align:left;padding:12px 15px;min-height:49px;font-size:15px;line-height:1.65}.choice[aria-pressed="true"]{border-color:var(--lime);color:var(--lime);background:#293425}.choice[aria-pressed="true"]:after{content:"　✓"}.task-controls{padding:18px 20px;margin:20px 0}.axis-control{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px solid var(--line);padding:12px 0}.axis-control:first-child{padding-top:0}.axis-control:last-child{border:0;padding-bottom:0}.axis-heading{display:flex;align-items:center;gap:8px}.axis-value{font-size:22px;color:var(--lime)}.axis-value.locked{color:var(--text);font-size:17px}.stepper{display:flex;align-items:center;gap:12px;grid-column:1/-1}.stepper button{border:1px solid #59674e;background:#283321;border-radius:9px;width:45px;height:44px;font-size:21px}.stepper input[type=range]{min-width:0;flex:1;accent-color:var(--lime);height:44px;cursor:pointer}.range-note{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);grid-column:1/-1;margin-left:58px;margin-right:58px}.coordinate-readout{padding:13px 0;font-size:20px;display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line)}.coordinate-readout small{font-family:"Microsoft YaHei",sans-serif;color:var(--muted);font-size:13px}.feedback{margin:16px 0;padding:13px 16px;border-left:3px solid var(--lime);background:#253023;border-radius:0 9px 9px 0;font-size:14px}.snapshot{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.snapshot div{padding:13px;background:var(--surface);border-radius:10px}.snapshot strong{display:block;font-size:19px;margin-top:5px}.subtools{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.subtools button{font-size:13px;flex:1}.hint{font-size:14px;color:var(--soft);margin-top:12px;border:1px solid var(--line);padding:14px;border-radius:11px}.phase-label{font-size:12px;color:var(--lime);letter-spacing:1px}.camera-intro{border:1px solid var(--line);padding:16px;border-radius:12px;background:var(--surface);margin:18px 0;font-size:14px}.camera-controls{display:flex;gap:10px;flex-wrap:wrap}.camera-controls button{flex:1}.camera-controls .text-button{white-space:nowrap}.view-angle{margin:14px 0;color:var(--muted);font-size:13px}.evidence-log{margin-top:16px;font-size:13px;color:var(--muted)}.evidence-log summary{cursor:pointer;min-height:44px;padding:8px 0}
.finish-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:30px;margin-top:28px}.finish-card{padding:28px}.finish-card h2{margin-bottom:16px}.finish-card .sub{margin-top:8px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.reward-grid div{background:var(--stage);border:1px solid var(--line);border-radius:12px;padding:16px}.reward-grid strong{display:block;font-size:24px;margin:6px 0}.reward-grid small{color:var(--muted)}.summary-list{list-style:none;margin:0;padding:0}.summary-list li{border-top:1px solid var(--line);padding:17px 0;display:flex;gap:16px;align-items:start}.summary-list .bullet{width:32px;height:32px;border-radius:50%;background:#344326;color:var(--lime);text-align:center;flex:none}.summary-list strong{font-size:17px}.summary-list p{color:var(--muted);font-size:14px;margin-top:5px}.accessory-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.accessory-grid .choice{font-size:14px}.accessory-grid .avatar-frame{margin:0 auto 12px}.accessory-preview{display:flex;justify-content:center;padding:15px 0;background:#242424;border-radius:16px;margin:20px 0}.badge-layout{display:grid;grid-template-columns:390px minmax(0,1fr);gap:34px;margin-top:30px}.portrait-card{padding:28px;text-align:center;background:#242424}.portrait-card .avatar{margin:20px auto}.portrait-card h2{margin:20px 0 8px}.portrait-card .button{width:100%;margin-top:20px}.badge-card{padding:25px;display:flex;gap:24px;align-items:center}.badge-icon{width:115px;height:115px;flex:none;background:#293820;border:1px solid #647a45;border-radius:20px;padding:13px}.badge-card h2{margin:6px 0 12px}.badge-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:12px}.notes{margin:24px 0}.notes h3{margin-bottom:12px}.notes details{border-top:1px solid var(--line);padding:8px 0}.notes summary{cursor:pointer;min-height:44px;padding:8px 0}.notes p{font-size:14px;color:var(--soft);margin:7px 0}.notes .num{color:var(--lime)}.cash-example{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:14px;font-size:14px}.cash-example summary{cursor:pointer;min-height:44px;font-weight:650}.cash-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.cash-values div{background:var(--stage);padding:11px;border-radius:9px}.cash-values strong{display:block;font-size:18px}.cash-example .button{margin-top:14px;font-size:14px}.receipt{font-size:12px;overflow-wrap:anywhere;margin-top:15px;color:var(--muted)}.bottom-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:23px}.bottom-actions button{flex:1}.overlay{position:fixed;inset:0;z-index:20;background:#0d120fd9;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}.dialog{width:min(840px,100%);max-height:90vh;overflow:auto;border:1px solid #596653;background:var(--bg);border-radius:20px;padding:28px}.dialog-header{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-header h2{font-size:24px}.dialog .grid4{grid-template-columns:repeat(4,1fr);margin-top:20px;gap:10px}.dialog .pick{padding:14px 12px}.dialog .avatar-frame.medium{margin:10px auto}.dialog .pick h3{font-size:17px}.pause-dialog{max-width:460px;text-align:center}.pause-dialog h2{font-size:31px;margin:15px 0}.pause-dialog p{color:var(--muted);margin:12px 0 25px}.offline{color:#efca9f}.boot-error{max-width:640px;margin:10vh auto;padding:26px}.boot-error h1{font-size:27px}.boot-error p{margin:15px 0;color:var(--muted)}
@media(min-width:1441px){.pick .avatar{margin-top:16px}.scene{max-height:520px}.grid4{margin-top:40px}}
@media(max-width:1250px){main{padding:30px 32px 50px}.top{padding:15px 32px}.nav{gap:20px}.top-meta{gap:9px}.top-meta .pill{max-width:150px;white-space:normal;text-align:center}.pick{padding:18px 15px}.pick .avatar{transform:scale(.8);transform-origin:center;margin-left:calc(50% - 135px);margin-top:-6px;margin-bottom:-6px}.lesson-layout{grid-template-columns:minmax(0,1fr) 330px;gap:22px}.finish-layout{grid-template-columns:minmax(0,1fr) 370px}.badge-layout{grid-template-columns:330px minmax(0,1fr)}.portrait-card .avatar{transform:scale(.9);margin-left:calc(50% - 135px)}.footer{padding-left:32px;padding-right:32px}}
@media(max-width:950px){.nav{display:none}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.pick .avatar{transform:scale(1);margin-top:6px;margin-bottom:15px}.lesson-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px}.lesson-title{font-size:26px}.scene{aspect-ratio:650/480}.scene .tick{font-size:15px}.scene .axis-label{font-size:21px}.finish-layout{grid-template-columns:1fr}.badge-layout{grid-template-columns:300px minmax(0,1fr);gap:22px}.badge-card{flex-direction:column;align-items:flex-start;gap:15px}.reward-grid{gap:8px}.reward-grid div{padding:12px}.portrait-card{padding:24px 18px}.status-line{flex-wrap:wrap;gap:12px}}
@media(max-width:700px){body{font-size:16px}.top{min-height:75px;padding:14px 22px;gap:10px}.brand{font-size:20px;gap:9px}.brand i{width:13px;height:13px}.top-meta .pill{font-size:10px;max-width:97px;padding:4px 9px}.top-meta .text-button{font-size:12px;padding:8px 11px}main{padding:25px 22px 40px;min-height:calc(100vh - 150px)}h1{font-size:30px;line-height:1.6}.eyebrow{font-size:11px}.sub{font-size:14px;margin-top:10px}.grid4{gap:12px;margin-top:25px}.pick{padding:13px 13px 15px;border-radius:16px}.pick .avatar{transform:scale(.58);margin-left:calc(50% - 135px);margin-top:-36px;margin-bottom:-33px}.pick h2{font-size:22px}.pick .origin{font-size:10px}.pick p{font-size:12px;line-height:1.8}.pick .check{right:11px;top:8px}.pick .choice-label{font-size:11px}.partner-actions{display:block;margin-top:24px}.partner-actions .button{width:100%;margin-top:22px;min-width:0}.partner-actions .small{font-size:12px}.footer{display:block;font-size:10px;padding:12px 22px 20px}.footer span{display:block}.footer span+span{margin-top:6px}.status-line{font-size:11px;margin-bottom:24px}.journey{gap:8px}.lesson-layout{grid-template-columns:1fr;gap:25px}.lesson-title{font-size:25px}.scene{aspect-ratio:550/470;min-height:275px}.stage-toolbar{padding:10px 15px;font-size:12px;gap:10px}.stage-toolbar .pill{font-size:10px;padding:4px 7px}.scene-legend{font-size:10px;padding:11px 15px;gap:9px}.scene .tick{font-size:16px}.scene .axis-label{font-size:22px}.scene .object-label{font-size:20px}.scene .scene-caption{font-size:15px}.guide{padding:12px 14px;font-size:12px;gap:12px}.task-panel h2{font-size:23px}.task-controls{margin:18px 0}.repair-progress{gap:8px}.repair-progress span{font-size:11px}.choice-list{margin-top:16px}.task-panel .button.wide{margin-top:5px}.finish-card{padding:22px}.reward-grid{grid-template-columns:1fr}.reward-grid div{display:grid;grid-template-columns:1fr auto;align-items:center}.reward-grid strong{font-size:21px;margin:0}.reward-grid small{grid-column:1/-1}.finish-layout{margin-top:24px}.badge-layout{grid-template-columns:1fr;gap:24px}.portrait-card .avatar{transform:scale(1);margin-top:8px;margin-bottom:10px}.portrait-card{padding:22px}.portrait-card h2{font-size:25px}.badge-card{flex-direction:row;gap:16px;padding:20px}.badge-icon{width:80px;height:80px;padding:8px;border-radius:15px}.badge-card h2{font-size:24px}.badge-meta{font-size:12px;gap:7px}.cash-values{grid-template-columns:repeat(2,1fr)}.cash-example{padding:15px}.dialog{padding:22px 17px}.dialog .grid4{grid-template-columns:repeat(2,1fr)}.overlay{padding:15px}.dialog-header h2{font-size:23px}.snapshot strong{font-size:18px}.boot-error{margin:8vh 22px}.accessory-grid{gap:10px}.bottom-actions{display:block}.bottom-actions button{width:100%;margin-top:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.pause-dialog .avatar-frame{margin:0 auto}
@media(max-width:700px){.scene .tick{font-size:20px}.scene .scene-caption{font-size:19px}}
.mobile-break{display:none}@media(max-width:700px){.mobile-break{display:initial}}
.avatar.generated{background-image:url('./assets/companions-accessories-v3.png');background-size:1040px 1040px;background-color:#242424}.accessory-grid .choice{text-align:center}

.num,.stage-readout strong{font-variant-numeric:tabular-nums; font-family:Consolas,"Microsoft YaHei",monospace}
.scene .point-name{font-size:18px;paint-order:stroke;stroke:#1b261e;stroke-width:4px;stroke-linejoin:round}
.stage-readout{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;background:#242e24;border-top:1px solid var(--line);font-size:16px}
.stage-readout strong{display:block;color:var(--lime);font-size:22px;margin-top:6px}
.stage-readout>span{font-size:14px;color:var(--muted)}
.object-list{padding:0 20px 12px;font-size:16px}.object-list summary{padding:12px 0;cursor:pointer;min-height:44px}.object-list p{margin:8px 0;font-size:16px}


.camera-intro,.saved-evidence-card{padding:18px;margin:18px 0;background:var(--surface);border:1px solid var(--line);border-radius:16px;font-size:16px}.camera-intro h2{font-size:22px}.camera-intro p,.saved-evidence-card p{margin:10px 0}.saved-evidence-card>span{color:var(--lime)}
.task-panel{border:1px solid var(--line);border-radius:16px;padding:22px;min-width:0}.phase-label:before{content:"";display:inline-block;width:8px;height:8px;background:var(--lime);margin-right:9px;border-radius:2px}
.scene>svg{display:block}.camera-demo-scene{max-height:50vh}.task-panel .small,.task-panel .axis-heading{font-size:16px}
.lesson-layout>section{min-width:0}.stage-toolbar{flex-wrap:wrap}.stage-toolbar>span{min-width:0}.stage-readout strong{white-space:normal;overflow-wrap:anywhere}.repair-progress span{min-width:0}
[data-reduced="true"] *,[data-reduced="true"] *:before,[data-reduced="true"] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:700px){.scene .tick{font-size:32px}.scene .axis-label{font-size:36px}.scene .point-name{font-size:32px}.scene .scene-caption{font-size:25px}}
@media(max-width:700px){.stage-readout{display:block;padding:16px}.stage-readout strong{font-size:20px}.stage-readout>span{display:block;margin-top:10px}.scene .point-name{font-size:32px}.task-panel{padding:18px}.coordinate-readout{flex-wrap:wrap}.coordinate-readout small{font-size:16px}.object-list{padding-inline:16px}.camera-demo-scene{max-height:none}.lesson-title{font-size:25px!important}}
@media(forced-colors:active){.phase-label:before{display:none}.scene-point-core{fill:CanvasText;stroke:Canvas}.panel,.task-panel,}
@media(max-width:700px){.scene-legend{flex-wrap:wrap;font-size:14px}.camera-controls{flex-direction:column}.camera-controls .text-button{white-space:normal}.scene-caption{display:none}}

/* Scale the whole crop inside its frame; child margins must not clip accessories. */
.scene foreignObject{overflow:visible}.scene-pet{pointer-events:none;width:100%;height:100%}.scene-pet .point-avatar{display:block;margin:0;border-radius:0;background:transparent}.point-portrait{display:block;width:100%;height:100%;overflow:hidden}.coordinate-readout .avatar-frame{transform-origin:50% 100%}
.lesson-heading{margin-bottom:24px;max-width:900px}.lesson-heading .lesson-title{margin-bottom:8px}.mission-task{font-size:20px;line-height:1.7;color:var(--text)}.mission-positions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;max-width:650px}.mission-positions>div{padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.mission-positions span{display:block;color:var(--muted);font-size:14px}.mission-positions strong{display:block;font-size:23px;color:var(--lime);margin-top:4px}.operation-instruction{font-size:17px;line-height:1.8;margin:14px 0}.saved-evidence-card summary{cursor:pointer;min-height:44px}.audio-error{margin-bottom:18px;color:#f5d4ad;font-size:15px}
@media(max-width:700px){.top-meta>.pill{display:none}.top-meta{gap:6px}.top-meta .text-button{font-size:12px;padding:8px}.mission-task{font-size:18px}.mission-positions{gap:10px;margin-top:14px}.mission-positions>div{padding:10px}.mission-positions strong{font-size:19px}.mission-positions span{font-size:13px}.lesson-heading{margin-bottom:18px}}
.avatar{margin:0!important;transform:none!important;transform-origin:top left!important}
.feedback[data-check-result]{border:1px solid #647b44;border-left:4px solid var(--lime);border-radius:10px;background:#263321}.check-title{display:block;margin-bottom:5px;color:var(--lime);font-size:17px}.feedback[data-check-result="retry"]{border-color:#826148;border-left-color:#ffc184;background:#342b22}.feedback[data-check-result="retry"] .check-title{color:#ffc184}.save-confirmation{border-color:var(--lime);color:var(--lime);font-weight:650;pointer-events:none}
.scene .height-label{paint-order:stroke;stroke:var(--stage);stroke-width:4px;stroke-linejoin:round}.scene-legend{flex-wrap:wrap}.scene-legend .height-key{flex-basis:100%;color:var(--lime)}
@media(max-width:950px){.lesson-layout{grid-template-columns:1fr}}
@media(min-width:701px){.scene{aspect-ratio:770/500}}
@media(forced-colors:active){.feedback[data-check-result]{border-color:CanvasText}.check-title,.feedback[data-check-result="retry"] .check-title{color:CanvasText}}
.avatar-frame{margin-inline:auto}
.avatar-frame.mini .avatar{transform:scale(.174)!important}
.avatar-frame.medium .avatar{transform:scale(.4)!important}
.pick>.avatar-frame:not(.medium){width:216px;height:176px;margin:12px auto 20px}
.pick>.avatar-frame:not(.medium) .avatar{transform:scale(.8)!important}
.portrait-card .avatar-frame{margin:20px auto;width:270px;height:220px}
@media(min-width:1440px){.pick>.avatar-frame:not(.medium){width:270px;height:220px}.pick>.avatar-frame:not(.medium) .avatar{transform:none!important}}
@media(max-width:1250px) and (min-width:951px){.pick>.avatar-frame:not(.medium){width:176px;height:144px}.pick>.avatar-frame:not(.medium) .avatar{transform:scale(.65)!important}}
@media(max-width:950px) and (min-width:701px){.portrait-card .avatar-frame{width:243px;height:198px}.portrait-card .avatar{transform:scale(.9)!important}}
@media(max-width:700px){.pick>.avatar-frame:not(.medium){width:128px;height:104px;margin:12px auto}.pick>.avatar-frame:not(.medium) .avatar{transform:scale(.474)!important}.portrait-card .avatar-frame{margin:8px auto 10px}}
/* Full-page light fields and dark technical ornament; learning panels stay opaque. */
#app{position:relative;z-index:1}.ambient-shell{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;contain:strict}.ambient-field{position:absolute;inset:0;background:#070b09}.ambient-tech{position:absolute;inset:0;width:100%;height:100%}.ambient-static{opacity:.012}.ambient-reveal{opacity:.21}.ambient-circuits,.ambient-machinery{opacity:.85;stroke-width:1}.ambient-nodes{fill:#95c89b}.ambient-corner{stroke:#c5dd9f;stroke-width:1.2}html[data-ambient-paused="true"] .ambient-illuminated,html[data-reduced="true"] .ambient-illuminated{display:none}@media(prefers-reduced-motion:reduce){.ambient-illuminated{display:none}}.task-panel,.lab-question,.principle-card,.membership-card{background:var(--surface)}
.wallet-strip{position:sticky;top:0;z-index:18;display:flex;gap:22px;align-items:center;justify-content:center;background:#141e18f5;border-bottom:1px solid #d5fa744a;min-height:58px;padding:7px 20px;font-size:13px;backdrop-filter:blur(8px)}.wallet-strip strong{font-size:18px;color:var(--lime);margin-left:6px}.wallet-strip .text-button{min-height:40px;padding:6px 12px}.wallet-strip small{color:var(--muted)}.wallet-dialog{max-width:760px}.wallet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.wallet-grid>div{background:var(--surface);padding:12px;border:1px solid var(--line);border-radius:10px}.wallet-grid strong{display:block;font-size:22px;color:var(--lime)}.wallet-test{margin-top:25px;border-top:1px solid var(--line);padding-top:16px}.wallet-input{width:100%;background:var(--surface);border:1px solid var(--line);color:var(--text);padding:10px;border-radius:8px;font:inherit}.wallet-records{font-size:13px}.wallet-records li{margin:10px 0}.wallet-request{padding:12px;margin-top:10px;border:1px solid var(--line);border-radius:9px}.wallet-request .bottom-actions{margin:8px 0}@media(max-width:700px){.wallet-strip{gap:10px;justify-content:space-between;padding:6px 14px;flex-wrap:wrap;font-size:12px}.wallet-strip small{display:none}.wallet-strip strong{font-size:16px}.wallet-grid{grid-template-columns:1fr 1fr}.wallet-dialog{padding:20px}}
.sample-topline{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}.catalogue-intro{margin:24px 0}.catalogue-intro>.pill{display:inline-block;margin:0 8px 8px 0}.unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.unit-card{padding:24px;display:flex;flex-direction:column}.unit-card h2{font-size:24px;line-height:1.45;margin:18px 0 12px}.unit-card p{color:var(--muted);font-size:15px;margin-bottom:18px}.unit-card .button{margin-top:auto;font-size:14px}.unit-number{color:var(--lime);font-size:24px;font-family:monospace;display:flex;justify-content:space-between;align-items:center}.unit-number span{font-size:11px;color:var(--muted);font-family:inherit}.unit-meta{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.unit-meta span{border:1px solid var(--line);padding:3px 8px;border-radius:6px;font-size:12px;color:var(--soft)}.unit-eyebrow{margin-top:22px}.unit-brief{font-size:14px;color:var(--muted);margin:16px 0}.unit-brief summary,.sources summary,.review-question summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--text)}.unit-brief p{margin:12px 0}.weekly-entry,.growth-panel{margin-top:26px;padding:26px}.weekly-entry h2{margin:10px 0}.weekly-entry .button{margin:18px 0}.gear-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.gear{padding:18px;border:1px dashed #53604c;border-radius:12px}.gear.owned{border-style:solid;border-color:var(--lime)}.gear strong{display:block}.gear-symbol{display:block;font-size:44px;color:#728067;line-height:1.3}.gear.owned .gear-symbol{color:var(--lime)}.gear p{font-size:12px;color:var(--muted);margin:8px 0 16px}.gear .text-button{font-size:12px}.lab-layout,.review-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,1fr);gap:28px;margin-top:26px;align-items:start}.lab-stage{background:var(--stage);overflow:hidden}.lab-graphic svg,.lab-demo svg{width:100%;height:auto;display:block;font-family:'Microsoft YaHei',sans-serif;font-size:16px}.lab-demo{margin-top:18px;background:var(--stage);border:1px solid var(--line);border-radius:12px;overflow:hidden}.lab-readout{padding:18px;border-top:1px solid var(--line);color:var(--lime);font-family:monospace;font-size:16px}.lab-controls{padding:16px 22px;border-top:1px solid var(--line);display:grid;gap:14px}.lab-control{display:grid;grid-template-columns:1fr auto;align-items:center;font-size:14px}.lab-control strong{color:var(--lime)}.lab-control input{grid-column:1/-1;width:100%;accent-color:var(--lime);min-height:40px}.principle-card,.lab-question,.review-card,.weekly-question{padding:26px}.principle-card{margin-top:22px}.principle-card h2,.lab-question h2{font-size:24px;line-height:1.5;margin:12px 0}.principle-card p,.review-card p{font-size:15px;line-height:1.85}.principle-card .bottom-actions{flex-wrap:wrap;gap:10px}.principle-card .bottom-actions button{font-size:13px}.lab-prompt{font-size:22px;line-height:1.7;margin:22px 0}.lab-question .button{margin-top:18px}.lab-question details{font-size:14px;margin-top:18px}.lab-complete{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.lab-complete p{font-size:14px;color:var(--muted);margin:12px 0}.sources{margin:20px 0;font-size:13px}.sources a{display:block;color:var(--lime);margin:10px 0}.review-card ol{padding-left:22px}.review-card li{margin:12px 0;font-size:15px}.review-question{border-top:1px solid var(--line);margin-top:14px}.review-question .answer{color:var(--lime)}.motion-table{border-collapse:collapse;width:100%;margin-top:20px;font-size:13px}.motion-table th,.motion-table td{border:1px solid var(--line);padding:8px;text-align:center}.motion-table caption{margin-bottom:10px;color:var(--muted)}.weekly-question{margin-top:24px}.weekly-question h2{font-size:23px;line-height:1.8}.equipped-pet{display:flex;gap:10px;align-items:center;margin-bottom:20px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;width:max-content;max-width:100%;font-size:12px;color:var(--soft);background:var(--surface)}.equipped-symbol{font-size:29px;color:var(--lime);margin-left:-19px;margin-top:22px;z-index:1}.feedback[data-check-result='retry']{border-color:#ffc184;background:#30291f}@media(max-width:1050px){.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-layout,.review-layout{grid-template-columns:1fr}.gear-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.sample-topline{flex-wrap:wrap}.sample-topline .pill{font-size:10px}.unit-grid{grid-template-columns:1fr}.unit-card{padding:22px}.unit-card h2{font-size:23px}.lab-question,.principle-card,.review-card{padding:20px}.lab-prompt{font-size:20px}.gear-grid{gap:10px}.gear{padding:12px}.gear p{min-height:52px}.lab-readout{font-size:14px}.lab-graphic svg,.lab-demo svg{font-size:22px}.lab-control{font-size:16px}.weekly-question{padding:20px}.weekly-question h2{font-size:20px}.equipped-pet{font-size:11px}.wallet-strip .text-button{font-size:12px}}

.signal-readings{display:flex;flex-wrap:wrap;gap:6px 18px}.signal-readings span{white-space:nowrap}
.demo-readout{padding:14px 0;color:var(--lime);font-family:Consolas,monospace;font-size:14px;font-variant-numeric:tabular-nums}.chart-key{padding:0 18px 14px;color:var(--muted);font-size:12px}.demo-locked{padding:24px;color:var(--muted)}.plot-label{paint-order:stroke;stroke:var(--stage);stroke-width:5px;stroke-linejoin:round}.lab-demo+ .demo-readout{border-bottom:1px solid var(--line)}[data-action="scene-target"]{cursor:pointer;pointer-events:all}[data-action="scene-target"]:focus{outline:2px solid var(--lime)}
.lab-detent{grid-column:1/-1;position:relative;margin:-6px 10px 2px;min-height:28px}.lab-detent i{position:absolute;top:0;height:7px;border-left:2px solid #89997b}.lab-detent small{display:block;padding-top:10px;color:var(--muted);font-size:12px}.lab-detent.snapped i{border-color:var(--lime)}.lab-detent.snapped small{color:var(--lime)}
.lab-graphic .height-label,.lab-demo .height-label{paint-order:stroke;stroke:var(--stage);stroke-width:4px;stroke-linejoin:round}.saved-lab-evidence p{font-size:13px;line-height:1.8;margin:12px 0}@media(max-width:700px){.scene{aspect-ratio:450/540}}
/* High-resolution plush angle portraits; canonical 270×220 frame sizes are preserved. */
.avatar.portrait{background-image:none;background-color:#242424;border-radius:0}.portrait-volume{position:relative;width:270px;height:220px;transform:perspective(850px) rotateY(var(--portrait-yaw,0deg)) rotateX(var(--portrait-pitch,0deg));transition:transform .22s ease}.portrait-view{position:absolute;left:0;top:-25px;width:270px;height:270px;background-size:300% 100%;background-repeat:no-repeat;transition:opacity .2s ease;opacity:0}.portrait-left{background-position:0% 50%}.portrait-front{background-position:50% 50%;opacity:1}.portrait-right{background-position:100% 50%}.avatar-frame[data-portrait-view='left'] .portrait-left,.avatar-frame[data-portrait-view='right'] .portrait-right{opacity:1}.avatar-frame[data-portrait-view='left'] .portrait-front,.avatar-frame[data-portrait-view='right'] .portrait-front{opacity:0}.portrait-light{position:absolute;inset:0;background:radial-gradient(ellipse at var(--portrait-light-x,35%) 10%,#fff4d308,transparent 60%);pointer-events:none}.portrait-card .avatar-frame{cursor:ew-resize}.scene-pet .portrait-volume{transform:none;transition:none}.scene-pet .portrait-light{display:none}.scene-pet .avatar-frame{border-radius:0}.avatar-frame.mini .portrait-light{display:none}
.portrait-card .avatar-frame{width:100%;max-width:270px;height:calc(220px * var(--portrait-fit,1));margin-inline:auto}.portrait-card .avatar.portrait{transform:scale(var(--portrait-fit,1))!important}
.dialog .pick .avatar-frame{width:100%;max-width:108px;height:calc(220px * var(--portrait-fit,.4));margin-inline:auto}.dialog .pick .avatar.portrait{transform:scale(var(--portrait-fit,.4))!important}
.badge-layout>section,.badge-card>div{min-width:0}.badge-card .badge-meta{overflow-wrap:anywhere}

.pause-dialog [data-action="motion-toggle"]{margin:18px auto 0;display:block}


.scene svg line,.scene svg text,.scene svg foreignObject,.lab-graphic svg line,.lab-graphic svg text,.lab-graphic svg foreignObject,[data-pet-obstacle]{pointer-events:none}
.wave-three{position:relative}.wave-3d-labels{position:absolute;inset:0;pointer-events:none}.wave-3d-labels svg{position:absolute;inset:0;width:100%;height:100%}.wave-3d-labels span{white-space:nowrap;position:absolute;transform:translate(-50%,-50%);font:12px Consolas,monospace;background:#101a14d9;padding:1px 3px;border-radius:3px}.wave-point-reading{font-variant-numeric:tabular-nums;color:var(--lime);font-size:13px;margin:0 0 14px}
.wave-explorer{padding:18px;min-width:0;font-size:14px}.wave-heading,.wave-toolbar,.wave-listen,.wave-camera{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.wave-heading{justify-content:space-between;margin-bottom:16px}.wave-heading strong{font-size:19px}.wave-heading .pill{font-size:11px}.wave-toolbar button,.wave-listen button,.wave-camera button,.wave-expand{font-size:13px;min-height:44px;padding:8px 12px}.wave-toolbar label{display:flex;align-items:center;gap:8px;font-size:12px}.wave-toolbar select{font:inherit;color:var(--text);background:var(--surface);padding:9px;border:1px solid var(--line);border-radius:8px;min-height:44px}.wave-status,.wave-audio-status{margin:12px 0;color:var(--muted);font-variant-numeric:tabular-nums;min-height:44px}.wave-chart{width:100%;overflow:hidden}.wave-chart svg{font-size:12px}.wave-peaks{font-size:12px;line-height:1.8;color:var(--lime);padding-bottom:16px;border-bottom:1px solid var(--line)}.wave-listen{margin-top:16px}.wave-listen label{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;font-size:13px}.wave-listen input{grid-column:1/-1;width:100%;min-height:40px;accent-color:var(--lime)}.wave-expand{width:100%;margin:4px 0 14px;border-color:#8ba76a}.wave-space[hidden],.wave-locked[hidden]{display:none}.wave-space h3{font-size:19px;margin:10px 0}.wave-axis-key{display:flex;flex-wrap:wrap;gap:8px 15px;font-size:12px;margin:14px 0}.wave-axis-key span:nth-child(1){color:#b5c9aa}.wave-axis-key span:nth-child(2){color:#d5fa74}.wave-axis-key span:nth-child(3){color:#9fc7ff}.wave-three{width:100%;height:320px;touch-action:pan-y;background:#101a14;border:1px solid #35483b;border-radius:12px;overflow:hidden;cursor:grab}.wave-three canvas{display:block;width:100%;height:100%}.wave-camera{margin:12px 0}.wave-camera output{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.wave-projections{display:block}.wave-projections figure{margin:16px 0;padding:12px 0;border-top:1px solid var(--line)}.wave-projections figcaption{font-size:14px;margin-bottom:8px}.wave-projections p{margin:0;color:var(--muted);font-size:12px}.wave-space>p{line-height:1.8}.wave-explorer .text-button{white-space:normal}.wave-peaks span{white-space:normal}
@media(max-width:700px){.wave-explorer{padding:12px}.wave-heading strong{font-size:17px}.wave-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wave-toolbar label{grid-column:1/-1;justify-content:space-between}.wave-toolbar select{flex:1}.wave-listen{display:grid;grid-template-columns:1fr 1fr}.wave-listen button:first-child{grid-column:1/-1}.wave-listen label{grid-column:1/-1}.wave-camera{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wave-three{height:270px}.wave-status,.wave-audio-status{font-size:12px}.wave-heading .pill{font-size:10px}.wave-peaks{display:grid;gap:4px}.wave-axis-key{display:grid}.wave-space .small{font-size:12px}.wave-expand{font-size:13px}}
.lab-stage:has(.wave-explorer)>.lab-readout,.lab-stage:has(.wave-explorer)>.chart-key{display:none}.wave-parameters .lab-controls{padding:12px 0;gap:6px}.wave-parameters .lab-control{font-size:13px}.wave-parameters .lab-control input{min-height:32px}.wave-parameters .control-target{font-size:11px}@media(min-width:701px){.wave-parameters .lab-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wave-parameters .lab-control{align-content:start}}
/* Reading and keyboard order follow the learning sequence, including on mobile. */
.wave-learning{grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);grid-template-areas:'prediction experiment' 'verification experiment';gap:20px}.wave-learning>.lab-question{grid-area:prediction}.wave-learning>.wave-experiment{grid-area:experiment;min-width:0}.wave-learning>.lab-validation{grid-area:verification;padding:24px;min-width:0}.lab-validation h2{font-size:22px;margin-bottom:16px}.lab-validation .button{margin:16px 0 0}.lab-validation details{font-size:14px;margin-top:16px}.prediction-saved{color:var(--lime);margin-top:16px}.wave-observation{padding:12px}.wave-observation svg{font-size:16px}.wave-observation .chart-key{padding:0 6px 12px}.wave-explorer[hidden],.wave-quick-stop[hidden]{display:none}.wave-toolbar{margin:0 0 14px;display:grid;grid-template-columns:1.4fr 1fr 1fr}.wave-toolbar details{grid-column:1/-1;font-size:12px;border-bottom:1px solid var(--line)}.wave-explorer summary,.lab-validation summary{cursor:pointer;min-height:44px;padding:12px 0}.wave-toolbar label{padding-bottom:10px}.wave-current-parameters{display:flex;flex-wrap:wrap;gap:4px 16px;padding:10px 12px;background:#122018;border:1px solid #35483b;border-radius:8px;font-size:12px;font-variant-numeric:tabular-nums}.wave-current-parameters strong{color:var(--lime)}#wave-listening{margin:14px 0;border-bottom:1px solid var(--line)}#wave-listening summary{display:flex;align-items:center;justify-content:space-between;gap:10px}#wave-listening small{color:var(--lime)}.wave-quick-stop{margin-bottom:12px}.wave-explanation p{margin:12px 0;font-size:14px;line-height:1.8}.wave-projection-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.wave-projection-tabs button{font-size:12px;padding:8px 4px;min-height:44px}.wave-projection-tabs [aria-pressed=true]{color:var(--lime);border-color:var(--lime);background:#283720}.wave-status{min-height:0;margin:0 0 8px;font-size:12px}.wave-point-reading{margin-bottom:8px}.wave-peaks{padding:8px 0 12px}.wave-space .wave-axis-key{margin:8px 0}.wave-space h3{font-size:18px}.wave-space>.small{font-size:12px}.wave-space details{margin-top:12px}
@media(max-width:1050px){.wave-learning{grid-template-columns:1fr;grid-template-areas:'prediction' 'experiment' 'verification'}}
@media(max-width:700px){.wave-learning{gap:16px;margin-top:18px}.wave-learning>.lab-validation{padding:20px}.wave-learning .lab-prompt{margin:12px 0;font-size:19px}.wave-learning .choice-list{margin-top:16px}.wave-learning .choice{padding:12px 16px}.wave-toolbar{grid-template-columns:1.25fr 1fr 1fr;gap:6px}.wave-toolbar button{font-size:12px;padding:8px 4px}.wave-toolbar label{grid-column:auto}.wave-explorer .lab-controls{gap:6px}.wave-current-parameters{display:grid;gap:3px;font-size:12px}.wave-learning .wave-observation svg{font-size:18px}}
@media(min-width:1051px){.wave-learning{grid-template-rows:min-content 1fr}}
.wave-space-reading{color:var(--lime);font-variant-numeric:tabular-nums;margin:8px 0}
/* The protected homepage reuses the same teaching and portrait components. */
.study-gate { max-width: 680px; margin: 12vh auto; padding: 32px; }
.study-gate .text-button { display: inline-block; margin: 16px; }
.study-partner { display: flex; align-items: center; gap: 24px; padding: 20px; margin: 20px 0; }
.study-partner .rank-composite.avatar-frame { width: 160px; flex: 0 0 160px; min-width: 0; margin: 0; }
.study-partner>div:last-child { min-width: 0; }
@media(max-width:420px){.study-partner { gap: 12px; padding: 14px; }.study-partner .rank-composite.avatar-frame { width: 105px; flex-basis: 105px; }}
/* The journey shares the original near-black atmosphere and teaching panels. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.journey-screen{position:relative;min-height:calc(100svh - 36px);max-width:1440px;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 32px 40px;overflow:hidden}
.journey-options{position:absolute;top:12px;right:0;display:flex;gap:8px;z-index:3;flex-wrap:wrap}
.journey-options button{font-size:13px;padding:10px 14px;min-height:42px}
.journey-kicker{font-size:16px;color:#c6d0be;letter-spacing:.16em;margin:10px 0 30px;text-align:center}
.partner-scene{position:relative;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:end;min-height:360px;padding:20px 0 36px;background:radial-gradient(ellipse at 50% 100%,#22312466,transparent 70%)}
.scene-companion{position:relative;border:0;background:transparent;color:#ebefdf;border-radius:0;padding:0 10px 16px;display:flex;flex-direction:column;align-items:center;min-width:0;transition:filter .3s,transform .3s;cursor:pointer}
.scene-companion:hover{background:transparent}.scene-companion.selected{transform:translateY(-12px) scale(1.06)}.scene-companion.dimmed{filter:brightness(.55)}
.scene-companion:focus-visible{outline:2px solid #d5fa74;outline-offset:6px;border-radius:20px}
.companion-motion{position:relative;width:100%;height:225px;display:block;transform-origin:50% 90%;z-index:1}
.journey-pet-body{display:block;width:100%;height:100%}.journey-pet-body .point-avatar{display:block;width:100%;height:100%;background:transparent}.journey-pet-body .point-portrait{width:100%;height:100%;display:block}
.landing-platform{display:block;width:76%;height:24px;margin-top:-12px;border-radius:50%;background:radial-gradient(ellipse,#677b4b77,#20372d99 65%,transparent 70%);border-bottom:1px solid #779b6666;box-shadow:0 12px 30px #060906;transform:perspective(400px) rotateX(20deg)}
.scene-companion-name{margin-top:24px;font-size:19px;font-weight:600;letter-spacing:.08em}.selected-indicator{height:20px;font-size:12px;color:#d5fa74;margin-top:8px}
.partner-introduction{min-height:90px;text-align:center;animation:journey-intro .3s ease-out}.partner-introduction h2{font-size:26px;margin:0 0 8px}.partner-introduction p{margin:0;color:#bcc7b5;font-size:16px;line-height:1.65}
.journey-primary{min-width:250px;width:min(380px,100%);min-height:56px;margin:18px 0 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.journey-primary:disabled{opacity:.35}
.companion-frog{animation:frog-personality 9s 0s infinite}.companion-owl{animation:owl-personality 11s 2s infinite}.companion-pangolin{animation:pangolin-personality 13s 4s infinite}.companion-robot{animation:robot-personality 12s 6s infinite}
.companion-eyelids{position:absolute;pointer-events:none;inset:0;opacity:0}.companion-owl .companion-eyelids{background:linear-gradient(transparent 44%,#f9d75e 45% 53%,transparent 54%);clip-path:polygon(33% 41%,48% 41%,48% 55%,33% 55%,33% 41%,55% 41%,68% 41%,68% 55%,55% 55%);animation:owl-blink 11s 2s infinite}
.owl-wing{position:absolute;width:17%;height:35%;top:56%;background:#f3ce58;filter:blur(1px);border-radius:70%;z-index:-1;transform-origin:50% 0;animation:owl-wings 11s 2s infinite}.owl-wing-left{left:16%;--wing-turn:25deg}.owl-wing-right{right:16%;--wing-turn:-25deg}
.companion-robot .journey-pet-body{animation:robot-glow 12s 6s infinite}
@keyframes frog-personality{0%,11%,100%{transform:translateY(0) scale(1)}2%{transform:scale(1.06,.91)}5%{transform:translateY(-17px) scale(.96,1.05)}8%{transform:translateY(0) scale(1.03,.96)}45%{transform:scale(1.008,.995)}}
@keyframes owl-personality{0%,10%,100%{transform:rotate(0)}2%{transform:rotate(-6deg)}6%{transform:rotate(-3deg) scale(1.012)}50%{transform:scale(1.008)}}
@keyframes owl-blink{0%,3%,6%,100%{opacity:0}4%,5%{opacity:1}}
@keyframes owl-wings{0%,5%,10%,100%{transform:rotate(0) scaleX(.6)}7%{transform:rotate(var(--wing-turn)) scaleX(1)}}
@keyframes pangolin-personality{0%,10%,100%{transform:scale(1) rotate(0)}2%{transform:scale(.86,.91) rotate(-8deg)}6%{transform:translate(4px,-2px) scale(.97)}55%{transform:scale(1.008)}}
@keyframes robot-personality{0%,9%,100%{transform:translate(0)}3%{transform:translate(3px,-3px)}6%{transform:translate(-1px,0)}52%{transform:translateY(-1px)}}
@keyframes robot-glow{0%,10%,100%{filter:none}3%,6%{filter:brightness(1.1) drop-shadow(0 0 5px #828cf055)}}
@keyframes journey-intro{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.confirmed-pet{width:min(290px,64vw);height:240px;position:relative;margin:12px 0 28px}.confirm-screen h1{font-size:34px;margin:12px 0}.binding-notice{text-align:center;max-width:520px;color:#cbd1c5;line-height:1.9;font-size:17px}.confirm-actions{display:flex;gap:20px;align-items:center;margin-top:22px}.confirm-actions .button{min-width:190px}
.departure-screen{justify-content:flex-start}.departure-scene{width:100%;position:relative;margin:auto 0 0;transform-origin:25% 65%;min-height:300px}.journey-map{width:100%;display:block;overflow:visible}.map-land{stroke:#46604c;fill:none;stroke-width:1;opacity:.12}.map-road{stroke:#607755;stroke-width:2;fill:none;opacity:.3}.map-road-lit{stroke:url(#journey-road-light);stroke-width:3;opacity:.85;stroke-linecap:round}.map-node{transition:opacity .3s}.map-node>circle:nth-child(2){stroke:#607755;stroke-width:2;fill:#0b130e}.map-node.current>circle:nth-child(2),.map-node.done>circle:nth-child(2){stroke:#d5fa74}.map-node.locked{opacity:.35}.map-node text{fill:#c5d1bc;font-size:20px;font-family:inherit}.map-node .map-tick{font-size:13px;fill:#d5fa74}.map-pet-shadow{fill:#000;opacity:.6}.departure-caption{text-align:center;min-height:190px;margin:10px 0 auto}.departure-caption p{color:#c6d0bd;font-size:18px;min-height:28px}.departure-caption h1{font-size:32px;margin:12px 0;transition:opacity .3s}.departure-caption .journey-primary{margin:22px auto 0}.departure-screen[data-phase=bond] .bond-light{position:absolute;left:24%;top:52%;width:10px;height:10px;border-radius:50%;background:#d5fa74;box-shadow:0 0 28px 9px #d5fa7444;animation:journey-intro .5s}.departure-screen[data-phase=bond] .map-road,.departure-screen[data-phase=bond] .map-land{opacity:0}
.journey-home{max-width:1200px;margin:auto}.journey-home-scene{position:relative;height:310px;overflow:hidden}.journey-home-scene .journey-map{height:100%}.journey-home-partner{position:absolute;left:4%;bottom:10px;display:flex;align-items:center;flex-direction:column}.journey-home-partner .rank-composite{width:150px!important;height:166px!important;--rank-scale:.555!important}.journey-home-partner>span{font-size:13px;color:#bcccb2;margin-top:0}.journey-home-target{text-align:center}.journey-home-target h1{font-size:38px;margin:10px 0}.journey-home-target p{font-size:17px;color:#bac7b2}.journey-home-target .journey-primary{margin:24px auto}.today-route{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:40px 0 30px;border-top:1px solid #40533a}.today-route li{padding:18px 8px;display:grid;grid-template-columns:24px 1fr;gap:5px;color:#afbd9f}.today-route small{grid-column:2;font-size:12px}.today-route .current{color:#d5fa74;border-top:2px solid}.today-route .locked{opacity:.45}.journey-secondary{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.badge-outline{font-size:100px;opacity:.3}
[data-reduced=true] .companion-motion,[data-reduced=true] .companion-robot .journey-pet-body,[data-reduced=true] .owl-wing,[data-reduced=true] .companion-eyelids{animation:none!important}[data-ambient-paused=true] .companion-motion,[data-ambient-paused=true] .owl-wing,[data-ambient-paused=true] .companion-eyelids,[data-ambient-paused=true] .companion-robot .journey-pet-body{animation-play-state:paused!important}
@media(max-width:700px){.journey-screen{padding:78px 6px 26px;min-height:calc(100svh - 16px);justify-content:flex-start}.journey-options{top:6px;right:0;gap:4px}.journey-options button{padding:8px;font-size:11px}.journey-kicker{font-size:13px;letter-spacing:.05em;margin:14px 0 20px}.partner-scene{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px;padding:8px 0 12px;min-height:0}.companion-motion{height:122px}.scene-companion{padding:0 6px 8px}.landing-platform{height:14px;margin-top:-5px}.scene-companion-name{font-size:15px;margin-top:12px}.scene-companion.selected{transform:translateY(-4px) scale(1.035)}.selected-indicator{height:8px;margin-top:5px}.partner-introduction{min-height:80px;margin-top:20px}.partner-introduction h2{font-size:23px}.partner-introduction p{font-size:14px;padding:0 6px}.journey-primary{min-width:0;min-height:52px;font-size:17px}.confirmed-pet{margin:38px 0 24px;height:220px}.confirm-screen h1{font-size:28px}.binding-notice{font-size:15px}.confirm-actions{gap:16px}.confirm-actions .button{min-width:150px}.departure-scene{margin-top:40px;min-height:230px}.departure-scene .journey-map{height:290px;transform:scale(1.1);transform-origin:50% 65%}.departure-caption h1{font-size:26px}.departure-caption p{font-size:15px;padding:0 5px}.journey-home-scene{height:235px}.journey-home-partner{left:0;bottom:0}.journey-home-partner .rank-composite{width:105px!important;height:116px!important;--rank-scale:.389!important}.journey-home-target h1{font-size:28px}.journey-home-target p{font-size:15px}.today-route{margin:30px 0 20px}.today-route li{padding:12px 2px;grid-template-columns:16px 1fr;font-size:13px}.today-route small{font-size:10px}.journey-secondary{gap:6px}.journey-secondary button{font-size:13px}.journey-home>.eyebrow{font-size:12px}.map-node text{font-size:26px}}
.departure-scene{height:clamp(240px,44svh,400px);min-height:0;flex:none;margin:20px 0}.departure-scene>.journey-map{height:100%}.departure-hero{position:absolute;display:block;transform:translate(-50%,-50%);pointer-events:none}.reduced-journey-steps{font-size:13px!important}
.journey-interlude .dialog{max-width:680px;text-align:center;position:relative;overflow:hidden}.journey-interlude .dialog>.text-button{position:absolute;right:16px;top:14px;font-size:12px}.interlude-pet{width:110px;margin:auto;height:128px}.interlude-pet .rank-composite{width:110px!important;height:122px!important;--rank-scale:.407!important}.journey-interlude .journey-map{height:160px;animation:journey-intro .35s}.journey-interlude h2{font-size:25px}.journey-interlude p{font-size:14px;color:#c0cdb2;margin:14px 0}.gate-silhouette{font-size:90px;color:#bbc39344;height:140px;line-height:140px;text-shadow:0 0 40px #91b56822;animation:journey-intro .5s}
.wardrobe-item.locked .item-thumb,.material-card.locked .rank-sprite{filter:grayscale(1) brightness(.2);opacity:.6}.scene-companion-name{color:#eef3e8}
.journey-home-scene foreignObject .rank-composite{width:170px!important;height:175px!important;--rank-scale:.63!important}.journey-home-partner{left:50%;transform:translateX(-50%);bottom:0;white-space:nowrap}
@media(max-width:700px){.lesson-layout:has([data-action="predict"])>.task-panel{order:-1}.departure-scene>.journey-map{height:100%}.journey-home-scene foreignObject .rank-composite{height:190px!important}}
.journey-home-scene foreignObject{overflow:visible}.journey-home-scene foreignObject .rank-composite{transform:scale(1.35);transform-origin:50% 100%}.journey-home-partner small{font-size:11px;color:#a8b7a1;margin-top:4px}
@media(max-width:700px){.journey-home-scene foreignObject .rank-composite{transform:scale(1.85)}}
@media(max-width:360px){.top{padding:12px 14px;gap:8px}.brand{font-size:18px;gap:6px}.top-meta{gap:6px}.top-meta .text-button{padding:8px;white-space:nowrap;flex-shrink:0}.top-meta{flex-shrink:0}}
.departure-screen[data-phase=bond] .bond-light{width:86px;height:16px;border:1px solid #d5fa7480;background:#d5fa741a;border-radius:50%;transform:translate(-50%,-50%);animation:none;box-shadow:0 0 22px 8px #d5fa7428}
[data-reduced=true] .scene-companion{transition:filter .15s}[data-reduced=true] .scene-companion.selected{transform:none}
.task-selection-screen h1{font-size:38px;text-align:center;margin:0 0 12px}.task-selection-screen .journey-kicker{margin-bottom:16px}.task-selection-intro{color:var(--muted);font-size:17px;margin:0 0 28px}.journey-task-list{width:100%;max-width:900px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.journey-task{position:relative;display:flex;flex-direction:column;text-align:left;padding:22px 18px 28px;min-width:0;min-height:280px;background:#101711e6;border:1px solid #334531;border-radius:18px;color:var(--text);transition:background .2s,border-color .2s,transform .2s}.journey-task:hover{background:#182317;border-color:#728d58}.journey-task.selected{border-color:var(--lime);background:#1b2718;transform:translateY(-4px)}.journey-task strong{font-size:23px;line-height:1.5;margin:8px 0}.task-chapter{font-size:12px;letter-spacing:.08em;color:#abb89f}.task-description{font-size:14px;color:#bcc7b5;line-height:1.8}.task-choice-mark{position:absolute;right:16px;top:15px;color:var(--lime);font-size:20px}.task-diagram{height:105px;width:100%;margin-bottom:18px;fill:none;stroke:#809477;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.task-diagram circle{fill:var(--lime);stroke:none}.task-diagram-highlight{stroke:var(--lime);stroke-width:2}.task-selection-screen>.journey-primary{margin-top:30px}.task-selection-cancel{font-size:14px;margin-top:14px}.selected-task-back{align-self:flex-start;font-size:13px;margin:0 0 4px}
.journey-options[hidden],.encounter-response [hidden],.world-beginning[hidden],.world-beginning button[hidden]{display:none!important}
.journey-portrait-stack{position:relative}.journey-facing{position:absolute;inset:0;display:block;opacity:0}.journey-facing-front{opacity:1}
.encounter-screen{padding:26px 30px;min-height:100svh;max-width:1440px;justify-content:center;overflow:hidden}.encounter-copy{height:92px;flex:none;text-align:center;animation:encounter-invitation .7s 1.2s both}.encounter-copy h1{font-weight:500;font-size:25px;line-height:1.6;margin:0 0 8px;letter-spacing:.025em}.encounter-copy p{font-size:18px;color:#bdc8b4;margin:0;line-height:1.8}.encounter-stage{width:100%;height:330px;flex:none;position:relative}.encounter-stage .partner-scene{height:100%;min-height:0;padding:30px 18px 24px;gap:30px;position:relative;z-index:1;background:none;align-items:end}.encounter-stage .companion-motion{height:210px}.encounter-stage .scene-companion{transition:opacity .65s,filter .65s;transform:none}.encounter-stage .scene-companion.selected{transform:none}.encounter-stage .landing-platform{height:16px;margin:0;width:74%;background:radial-gradient(ellipse,#71875544,#20372d44 60%,transparent 72%);box-shadow:none;border-bottom:0}.encounter-stage .scene-companion-name{font-size:16px;font-weight:500;margin-top:15px;transition:opacity .3s}.encounter-floor-light{position:absolute;left:10%;right:10%;bottom:42px;height:90px;border-radius:50%;background:radial-gradient(ellipse,#4b62311a,transparent 68%);pointer-events:none}
.encounter-response{width:100%;height:240px;flex:none;display:flex;flex-direction:column;align-items:center;text-align:center}.encounter-response[hidden]{display:flex!important;visibility:hidden;pointer-events:none}.encounter-promise{opacity:var(--response-copy,0);font-size:16px;color:#c9d1c3;line-height:1.7;transition:opacity .12s}.encounter-promise p{margin:0}.encounter-response h2{font-size:27px;line-height:1.4;margin:12px 0 0}.encounter-response .journey-primary{min-height:54px;margin:12px 0 0;opacity:var(--response-controls,0)}.encounter-response .binding-notice{font-size:12px;margin:10px 0 0;line-height:1.65;color:#b2bea7}.encounter-back{font-size:13px;color:#9dab96;padding:8px 14px;min-height:40px;margin-top:2px}.encounter-error{position:absolute;bottom:12px;max-width:90%;font-size:13px;padding:8px;background:#291d15f5}
.encounter-screen[data-encounter=responding] .encounter-copy{animation:none;opacity:0;transition:opacity .25s}.encounter-screen[data-encounter=responding] .scene-companion-name{opacity:0}.encounter-screen[data-encounter=responding] .scene-companion.dimmed{opacity:.13;filter:brightness(.6)}.encounter-screen[data-encounter=responding] .companion-motion,.encounter-screen[data-encounter=responding] .companion-robot .journey-pet-body,.encounter-screen[data-encounter=responding] .owl-wing,.encounter-screen[data-encounter=responding] .companion-eyelids{animation:none}.encounter-screen[data-encounter=responding] .scene-companion.selected{z-index:2}.robot-eye-light{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 36% 43%,#e4e6fb88 0 3%,transparent 5%),radial-gradient(ellipse at 65% 43%,#e4e6fb88 0 3%,transparent 5%)}
@keyframes encounter-invitation{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.encounter-stage .companion-eyelids{display:none}.journey-eye-blink{opacity:0;animation:owl-blink 11s 2s infinite}.encounter-screen[data-encounter=responding] .journey-eye-blink{animation:none}.world-body .journey-eye-blink{display:none}[data-reduced=true] .journey-eye-blink{animation:none!important}[data-ambient-paused=true] .journey-eye-blink{animation-play-state:paused!important}
/* Attention follows the child, rather than four autonomous performance loops. */
.encounter-screen[data-encounter=waiting] :is(.companion-motion,.journey-pet-body,.owl-wing,.companion-eyelids,.journey-eye-blink){animation:none}
.encounter-screen[data-encounter=waiting] .owl-wing{display:none}
.encounter-stage .scene-companion{--attention-color:210 246 143;isolation:isolate}
.encounter-stage [data-id=owl]{--attention-color:255 220 135}.encounter-stage [data-id=pangolin]{--attention-color:123 217 249}.encounter-stage [data-id=robot]{--attention-color:181 174 255}
.encounter-stage .scene-companion::before{content:"";position:absolute;pointer-events:none;z-index:0;inset:-12% -10% 15%;border-radius:50%;background:radial-gradient(ellipse at var(--attention-light-x,50%) var(--attention-light-y,48%),rgb(var(--attention-color)/.16),rgb(var(--attention-color)/.045) 40%,transparent 68%);opacity:0;transition:opacity .22s ease-out}
.encounter-stage .journey-pet-body{transform-origin:50% 90%;transform:none;transition:transform .28s cubic-bezier(.2,.9,.25,1),filter .22s ease-out}
.encounter-stage .landing-platform{position:relative;transition:filter .22s,transform .28s cubic-bezier(.2,.9,.25,1)}
.encounter-stage .landing-platform::after{content:"";position:absolute;inset:-4px -12%;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse,rgb(var(--attention-color)/.4),rgb(var(--attention-color)/.10) 45%,transparent 72%);opacity:0;transition:opacity .22s}
.encounter-stage .scene-companion-name{position:relative;z-index:1;transition:color .18s,text-shadow .22s,opacity .3s}
.encounter-screen[data-encounter=waiting] .scene-companion:focus-visible{outline:none}
.encounter-screen[data-encounter=waiting] .scene-companion:is(.is-attended,:focus-visible)::before,.encounter-screen[data-encounter=waiting] .scene-companion:is(.is-attended,:focus-visible) .landing-platform::after{opacity:1}
.encounter-screen[data-encounter=waiting] .scene-companion:is(.is-attended,:focus-visible) .journey-pet-body{transform:translate(var(--attention-x,0px),-7px) rotate(var(--attention-roll,0deg)) scale(1.035);filter:brightness(1.12) saturate(1.035) drop-shadow(0 0 12px rgb(var(--attention-color)/.23))}
.encounter-screen[data-encounter=waiting] .scene-companion:is(.is-attended,:focus-visible) .landing-platform{transform:scaleX(1.12);filter:brightness(1.5)}
.encounter-screen[data-encounter=waiting] .scene-companion:is(.is-attended,:focus-visible) .scene-companion-name{color:rgb(var(--attention-color));text-shadow:0 0 18px rgb(var(--attention-color)/.5)}
.encounter-screen[data-encounter=waiting] .scene-companion:focus-visible .scene-companion-name{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}
.encounter-screen[data-encounter=waiting] .partner-scene:has(.is-attended) .scene-companion:focus-visible:not(.is-attended)::before,.encounter-screen[data-encounter=waiting] .partner-scene:has(.is-attended) .scene-companion:focus-visible:not(.is-attended) .landing-platform::after{opacity:0}
.encounter-screen[data-encounter=waiting] .partner-scene:has(.is-attended) .scene-companion:focus-visible:not(.is-attended) .journey-pet-body{transform:none;filter:none}
.encounter-screen[data-encounter=waiting] .partner-scene:has(.is-attended) .scene-companion:focus-visible:not(.is-attended) .landing-platform{filter:none;transform:perspective(400px) rotateX(20deg)}
[data-reduced=true] .encounter-screen[data-encounter=waiting] .scene-companion .journey-pet-body,[data-ambient-paused=true] .encounter-screen[data-encounter=waiting] .scene-companion .journey-pet-body{transform:none}
[data-reduced=true] .encounter-stage .journey-pet-body{transition:filter .15s}
.world-actor,.task-entrance-companion{view-transition-name:journey-companion}::view-transition-group(journey-companion){animation-duration:550ms;animation-timing-function:cubic-bezier(.2,.7,.2,1)}::view-transition-old(root),::view-transition-new(root){animation-duration:350ms}::view-transition-old(journey-companion),::view-transition-new(journey-companion){height:100%;mix-blend-mode:normal}
.encounter-response .encounter-error{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 28px);z-index:12;padding:6px 12px;font-size:12px;background:#221d12;border:1px solid #b99566;border-radius:10px}
.encounter-stage .scene-companion.selected:disabled{opacity:1;filter:none}.encounter-screen[data-encounter=responding] .scene-companion.dimmed{opacity:.06}.encounter-screen[data-encounter=responding] .encounter-copy{visibility:hidden}
.world-opening-screen{position:relative;min-height:600px;height:100svh;overflow:hidden;background:#070b09}.world-opening-screen .journey-options{right:20px;top:14px;z-index:10}.world-scene{position:absolute;inset:0;overflow:hidden}.world-vista{position:absolute;inset:0;width:100%;height:100%;transform:scale(var(--world-camera,1.6));transform-origin:58% 64%}.world-far{fill:none;stroke:#8cac83;stroke-width:1;opacity:calc(var(--world-unfold,0)*.38)}.world-terrain{fill:none;stroke:#4b6950;stroke-width:1;opacity:calc(.06 + var(--world-unfold,0)*.40)}.world-terrain circle{fill:#d5fa74;stroke:none;opacity:.65}.world-terrain .world-path{stroke:url(#opening-road);stroke-width:2.5}.world-horizon{opacity:var(--world-unfold,0)}.world-near-light{position:absolute;width:70%;height:35%;left:15%;top:43%;background:radial-gradient(ellipse,#5d784d18,transparent 65%)}.world-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 52% 56%,transparent 0 16%,#070b09 54%);opacity:calc(1 - var(--world-unfold,0));pointer-events:none}.world-actor{position:absolute;width:290px;height:230px;transform:translate(-50%,-100%);z-index:4;pointer-events:none}.world-body{display:block;position:absolute;inset:0;transform-origin:50% 95%}.world-shadow{position:absolute;left:10%;width:80%;height:15px;bottom:-8px;background:radial-gradient(ellipse,#0009,transparent 70%);border-radius:50%;z-index:-1}.world-bond{position:absolute;bottom:-5px;left:30%;width:40%;height:12px;border-radius:50%;border:1px solid #d5fa7466;box-shadow:0 0 24px #d5fa7433;opacity:var(--bond-opacity,0)}.world-beginning{position:absolute;left:12px;right:12px;bottom:4.5%;text-align:center;z-index:5}.world-beginning p{font-size:23px;letter-spacing:.08em;margin:0 0 18px;color:#e3e9d7}.world-beginning .journey-primary{margin:0 auto;min-height:52px}.world-beginning small{display:block;color:#9eaf95;font-size:12px;margin:12px 0}.task-entrance-companion{width:70px;height:52px;margin:4px 0 14px}.task-selection-screen .task-selection-intro{margin-bottom:20px}
@media(max-width:700px){.encounter-screen{padding:20px 12px;min-height:100svh}.encounter-copy{height:82px}.encounter-copy h1{font-size:19px;margin-bottom:6px}.encounter-copy p{font-size:14px}.encounter-stage{height:300px}.encounter-stage .partner-scene{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 26px;padding:5px 12px 18px}.encounter-stage .companion-motion{height:106px}.encounter-stage .scene-companion{padding:0 6px 6px}.encounter-stage .scene-companion-name{font-size:13px;margin-top:7px}.encounter-stage .landing-platform{height:10px;margin-top:0}.encounter-floor-light{height:60px;bottom:25px;left:0;right:0}.encounter-response{height:228px}.encounter-promise{font-size:13px;line-height:1.8}.encounter-response h2{font-size:24px;margin-top:10px}.encounter-response .journey-primary{max-width:310px;min-height:50px;font-size:16px;margin-top:10px}.encounter-response .binding-notice{max-width:270px;font-size:11px;margin-top:8px}.encounter-back{font-size:12px;min-height:38px}.encounter-screen .journey-options{right:7px;top:5px}.world-opening-screen{min-height:580px}.world-opening-screen .journey-options{right:6px;top:6px;gap:3px}.world-beginning{bottom:7%}.world-beginning p{font-size:17px;letter-spacing:.03em;margin-bottom:20px}.world-beginning .journey-primary{max-width:300px;font-size:17px}.task-entrance-companion{height:36px;width:48px;margin:0 0 10px}.task-selection-screen .journey-kicker{margin-bottom:8px}.task-selection-screen .task-selection-intro{font-size:13px;margin-bottom:16px}}
@media(max-width:900px){.journey-task-list{max-width:660px;grid-template-columns:repeat(2,minmax(0,1fr))}.journey-task{min-height:235px}.task-diagram{height:80px;margin-bottom:8px}}
@media(max-width:700px){.task-selection-screen h1{font-size:25px;line-height:1.4}.task-selection-intro{font-size:14px;margin-bottom:20px}.journey-task-list{gap:10px}.journey-task{padding:16px 12px 18px;min-height:215px;border-radius:14px}.journey-task strong{font-size:19px;margin:5px 0}.task-chapter{font-size:10px;letter-spacing:0}.task-description{font-size:12px;line-height:1.7}.task-diagram{height:66px;margin-bottom:8px}.task-choice-mark{right:10px;top:10px;font-size:16px}.task-selection-screen>.journey-primary{margin-top:22px}.selected-task-back{font-size:12px;padding:8px 0}.partner-screen .journey-kicker{margin-top:4px}}
/* Same original ledger balances; missing source is explicit on mobile too. */
.lab-stepbar{display:flex;gap:12px;list-style:none;padding:0;margin:22px 0}.lab-stepbar li{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:13px 16px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:#121b16}.lab-stepbar li>span{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:1px solid #56634d;border-radius:50%;font-size:13px}.lab-stepbar .current{color:var(--lime);border-color:#a6c35b;background:#242e1e}.lab-stepbar .current>span{background:var(--lime);color:#192011;border-color:var(--lime)}.lab-stepbar .done{color:#c4d2b9}.lab-stepbar .done>span{border-color:#9ead77;color:var(--lime)}
.lab-layout.guided-learning{grid-template-columns:minmax(280px,.82fr) minmax(0,1.3fr);grid-template-areas:"prediction experiment" "verification experiment";align-items:start;gap:24px}.guided-learning>.lab-question{grid-area:prediction}.guided-learning>.guided-experiment{grid-area:experiment;min-width:0}.guided-learning>.lab-validation{grid-area:verification;min-width:0}.guided-learning .lab-question,.guided-learning .lab-validation{padding:28px}.guided-learning .lab-question h2,.guided-learning .lab-validation h2{font-size:25px;margin:8px 0 20px}.guided-learning .prediction-saved{margin:24px 0 12px}.guided-learning .lab-prompt{font-size:24px;line-height:1.55}.guided-learning .choice-list{margin-top:22px}.lab-operation-guide{padding:20px 24px 14px}.lab-operation-guide p{font-size:18px;line-height:1.65;margin:0 0 8px;color:#eef2df}.lab-operation-guide small{display:block;line-height:1.7;color:var(--muted)}.lab-stage .lab-primary-controls{padding:16px 24px 20px;border-top:0;background:#263120;border-bottom:1px solid #53613d}.lab-primary-controls .lab-control{margin:0 0 14px}.lab-primary-controls .lab-control:last-child{margin-bottom:0}.lab-primary-controls input[type=range]{cursor:ew-resize}.lab-primary-controls .control-targets{margin-top:6px}.lab-operation-next{padding:20px 24px}.lab-other-controls{border-top:1px solid var(--line)}.lab-other-controls>summary{padding:16px 24px;color:var(--muted);cursor:pointer;min-height:48px}.lab-demonstration{margin-top:20px;padding:20px 24px}.lab-demonstration>summary{font-size:17px;color:#c4d2b9;cursor:pointer;min-height:28px}.lab-demonstration[open]>summary{margin-bottom:20px}.lab-demonstration h2{font-size:22px}.lab-demonstration .lab-demo{margin-top:16px}.guided-learning #lab-experiment,.guided-learning #lab-validation{scroll-margin-top:100px}.guided-learning .lab-validation>.button{margin-top:20px}.guided-learning .lab-validation>details{margin-top:18px}.guided-experiment>.sources{padding:14px 6px;color:var(--muted)}
@media(max-width:1050px){.lab-layout.guided-learning{grid-template-columns:minmax(0,1fr);grid-template-areas:"prediction" "experiment" "verification";gap:20px}.lab-stepbar{gap:8px}.lab-stepbar li{padding:11px 12px;font-size:14px}}
@media(max-width:700px){.lab-stepbar{gap:5px;margin:16px 0}.lab-stepbar li{gap:5px;padding:10px 6px;font-size:12px;white-space:nowrap}.lab-stepbar li>span{width:22px;height:22px;flex-basis:22px;font-size:11px}.guided-learning .lab-question,.guided-learning .lab-validation{padding:20px 16px}.guided-learning .lab-question h2,.guided-learning .lab-validation h2{font-size:21px}.guided-learning .lab-prompt{font-size:20px}.lab-operation-guide{padding:16px}.lab-operation-guide p{font-size:16px}.lab-stage .lab-primary-controls{padding:14px 16px 18px}.lab-operation-next{padding:16px}.lab-other-controls>summary{padding:14px 16px}.lab-demonstration{padding:16px}.guided-learning .stage-toolbar{padding:14px 16px}.guided-learning #lab-experiment,.guided-learning #lab-validation{scroll-margin-top:130px}}
.wallet-strip>span{min-width:0;overflow-wrap:anywhere}.wallet-strip>span>small{display:block;font-size:11px}.wallet-strip .wallet-read-status{font-size:12px;color:var(--muted)}.wallet-records{overflow-wrap:anywhere}@media(max-width:700px){.wallet-strip>span>small{display:block}.wallet-strip .wallet-read-status{width:100%;order:4}.wallet-strip{gap:6px 12px}.wallet-strip strong{font-size:14px}.wallet-strip .text-button{padding:6px}.wallet-dialog .wallet-strip{position:static}.wallet-dialog .wallet-grid{grid-template-columns:minmax(0,1fr)}.wallet-grid strong{overflow-wrap:anywhere}}
