:root{--ink:#263f46;--teal:#276e69;--paper:#fffef7;--line:#c5d0c5;--gold:#e9af3d}*{box-sizing:border-box}body{margin:0;background:#f4f1e4;color:var(--ink);font-family:system-ui,sans-serif;line-height:1.7}main{max-width:1120px;margin:auto;padding:24px 18px 50px}h1{font-size:clamp(2.8rem,7vw,4.6rem);line-height:1.25;margin:24px 0}h2{line-height:1.5;font-size:1.35rem}button,select{font:inherit;min-height:48px;padding:10px 16px;border:1px solid #95afa1;border-radius:12px;background:var(--paper);color:var(--ink);cursor:pointer}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #ae581b;outline-offset:3px}.primary,[aria-pressed=true]{background:var(--teal);color:white}.wide{width:100%}[hidden]{display:none!important}.eyebrow{font-weight:700;color:var(--teal)}.lead{font-size:1.2rem}.small{font-size:.84rem}.mode-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.mode-cards article,.scene-card,.tools{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px}.mode-cards button{display:block;width:100%;margin:10px 0}.hero-art{position:absolute;top:165px;margin-left:620px;width:270px;height:160px}.hero-art span{position:absolute;font-size:4rem;left:0;top:0;color:#b4790c}.hero-art i{position:absolute;left:110px;top:45px;width:16px;height:90px;background:var(--teal)}.hero-art b{position:absolute;top:132px;left:114px;width:150px;height:16px;background:#34414a;transform:skew(-35deg)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row button{flex:1;min-width:110px}#counter{margin-left:auto;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:18px}.scene-card{padding:12px;min-width:0}.legend{font-size:.82rem;margin:0}.legend span{white-space:nowrap;margin-right:8px}#viewer{height:390px;width:100%;background:linear-gradient(#f8f7ee,#eeead4);border-radius:12px;margin-top:10px}canvas{display:block;width:100%;height:100%}.notice{padding:12px 16px;background:#e4efe3;border-left:4px solid var(--teal);border-radius:10px}.notice.wrong{background:#fff0d9;border-color:#a56521}.tools>.row,.tools>button{margin-top:10px}.tools p{margin:8px 0}.answers{margin-bottom:12px}.answers button{font-size:1.2rem}#feedback{font-size:1.05rem}#result-list{display:grid;gap:12px;margin:18px 0}.result-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.result-card button{margin-top:8px}.bar-row{display:flex;align-items:center;gap:8px;font-size:.8rem;min-height:24px}.bar{display:inline-block;background:#34414a;height:9px;max-width:65%}.bar.before{background:none;border:2px dashed #316fc0;height:10px}#comparison{padding:8px;background:#f8f7ee}footer{max-width:1120px;margin:auto;padding:22px;font-size:.85rem}footer a{margin-left:20px}a{color:var(--teal)}#save-panel{margin-top:18px}#save-panel a{display:inline-block;padding:10px}.correct-flash{animation:pop .5s ease-out}@keyframes pop{50%{transform:scale(1.025)}}@media(max-width:800px){.hero-art{display:none}.workspace{grid-template-columns:1fr}.tools{padding:14px}#viewer{height:300px}.mode-cards{grid-template-columns:1fr}main{padding:16px 12px}.tools .row button{min-width:110px}#question{font-size:1.18rem}}@media(max-width:380px){#viewer{height:275px}.row button{padding:9px 8px}.legend{font-size:.75rem}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}

#back{flex:0 0 auto}.scene-move{margin:10px 0 0}.scene-position{font-size:.82rem;margin:4px 0}

#viewer{position:relative}
.light-badge,.light-handle{position:absolute;transform:translate(-50%,-50%);width:56px;height:56px}
.light-badge{pointer-events:none;z-index:1}
.light-badge svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 1px #9b621e25)}
.light-caption{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);padding:2px 10px;border:1.5px solid #cb9538;border-radius:20px;background:#fffdf4;color:#62400f;font-size:15px;font-weight:800;line-height:1.4;white-space:nowrap;box-shadow:0 2px 0 #e7cd91}
.light-handle{z-index:2;min-height:56px;padding:0;border:2px solid transparent;border-radius:50%;background:transparent;touch-action:none;cursor:grab;user-select:none}
.light-handle:hover{border-color:#e8ac3c}
.light-handle.dragging{cursor:grabbing;border-color:#c78316;box-shadow:0 0 0 4px #f6c34440}
.caption-left .light-caption{top:50%;left:-8px;transform:translate(-100%,-50%)}.caption-right .light-caption{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}

.scene-label{position:absolute;z-index:1;transform:translate(-50%,-50%);padding:2px 9px;border:1px solid #b5c7b6;border-radius:8px;background:#fffef7;color:#264e51;font-size:15px;font-weight:800;line-height:1.4;white-space:nowrap;pointer-events:none}.destination-label{border:1.5px dashed #b76216;color:#85420e;background:#fff7e8}

.answer-feedback{padding:18px 22px;border:2px solid #78a896;border-radius:18px;background:#e9f5e9}
#feedback-outcome{display:block;font-size:clamp(1.6rem,4vw,2.15rem);line-height:1.4;color:#216458;letter-spacing:.04em}
.answer-feedback.wrong{border-color:#bc883f;background:#fff4e3}.answer-feedback.wrong #feedback-outcome{color:#87531f;font-size:clamp(1.25rem,3.5vw,1.75rem)}
#feedback-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,300px);column-gap:24px;align-items:center}
#feedback-choice{grid-column:1;margin:8px 0 0;font-size:.9rem}#feedback-answer{grid-column:1;font-size:clamp(1.2rem,3vw,1.5rem);font-weight:800;margin:4px 0 12px}
.answer-direction,.answer-length{grid-column:2;grid-row:1 / 3;background:#fffef9;border:1px solid #c4d5c5;border-radius:14px;padding:10px 14px}
.answer-direction{display:grid;grid-template-columns:1fr 32px 1fr;align-items:center;text-align:center}.answer-direction small{display:block;font-size:14px;font-weight:700}.answer-direction b{display:block;line-height:1;font-size:42px}.answer-shadow{color:#235b55}.answer-lamp{color:#9c6815}.answer-rod{font-size:30px;line-height:1;color:#276e69}
.answer-length>div{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:6px;min-height:34px}.answer-length span{font-size:14px;font-weight:700}.answer-length i{display:block;height:15px;border-radius:3px;background:#285f58}#answer-before-bar{border:2px dashed #316fc0;background:transparent}
#feedback-reason{grid-column:1 / -1;font-size:.9rem;line-height:1.7;margin:10px 0 0}.answer-feedback.checking #feedback-outcome{font-size:1.25rem}.answer-feedback:focus-visible{outline:2px solid #276e69;outline-offset:3px}
@media(max-width:600px){.answer-feedback{padding:14px 16px}#feedback-detail{grid-template-columns:1fr}.answer-direction,.answer-length{grid-column:1;grid-row:auto}#feedback-answer{margin-bottom:10px}}

.destination-arrow{position:absolute;width:24px;height:24px;pointer-events:none;z-index:2}.destination-arrow svg{display:block;width:100%;height:100%;overflow:visible}.destination-arrow path{fill:none;stroke:#b76216;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}

/* Keep the next action in reach while leaving explanations and observations scrollable. */
@media(max-width:700px),(max-height:500px) and (max-width:1000px){
  #lab:has(#next:not([hidden])){padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  #lab :is(#next:not([hidden])){position:fixed;z-index:20;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));width:auto;margin:0;min-height:52px;box-shadow:0 0 0 6px #fffdf7,0 -4px 18px #073e7d24}
}
