/* The world moves between choices. Reading and controls stay in ordinary document flow. */
.journey{margin:18px 0 24px;border:1px solid var(--line);border-radius:24px;background:var(--paper);overflow:hidden;scroll-margin-top:12px}
.journey-header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 24px}
.journey-header h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(1.35rem,3vw,1.9rem)}
.journey-header .eyebrow{margin:0 0 3px}
.journey-viewport{position:relative;background:#9aaa89}
#journeyCanvas{display:block;width:100%;height:clamp(280px,39vw,430px)}
.journey-caption{position:static;max-width:none;margin:0;padding:10px 24px;background:var(--paper);color:var(--ink);font-size:.82rem;border-top:1px solid var(--line)}
.journey-footer{padding:12px 24px 16px}
.journey-footer .translation-note{margin:5px 0 0}
.journey-map{position:relative;padding:12px 0}
.journey-map svg{position:absolute;width:100%;height:48px;left:0;top:6px;fill:none;stroke:var(--line);stroke-width:2}
.journey-map ol{position:relative;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.journey-map li{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);background:var(--paper);border-radius:50%;font-size:.75rem}
.journey-map li:nth-child(4n+2){margin-top:7px}.journey-map .here{outline:3px solid var(--violet);outline-offset:2px}.journey-map .visited{background:var(--action);color:var(--on-action)}
.journey-controls{display:flex;flex-wrap:wrap;gap:8px}.journey-controls button{font-size:.8rem;padding:8px 12px}
.journey-controls [aria-pressed=true]{background:var(--action);color:var(--on-action)}
.guide-help{display:flex;flex-direction:column;gap:8px;margin-top:18px}.guide-help button{font-size:.8rem;padding:9px}
.character-card .character-mark{display:none}#guideCanvas{width:120px;height:120px;max-width:100%;display:block;margin:0 auto 12px}.stage-inner{grid-template-columns:180px minmax(0,1fr)}
.masthead{margin-bottom:16px}.page-shell{max-width:1280px}.mode-nav{margin-top:16px;margin-bottom:12px}
.world-options{margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.world-options>summary{padding:12px 18px;cursor:pointer;min-height:46px;font-size:.87rem;font-weight:600}
.world-options>.language-tools{border:0;border-radius:0 0 14px 14px}
.cube-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.cube-toolbar [aria-pressed=true]{background:var(--action);color:var(--on-action)}
.cube-help{font-size:.87rem;color:var(--muted);margin-bottom:16px}
.builder-word-model{overflow-wrap:anywhere}
.builder-sticky-model{margin:0;padding:6px 4px;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}
.builder-sticky-model strong{font-size:1.15em}
.cube-word-model{font-weight:700;font-size:1rem;line-height:1.4;margin:0 0 8px;overflow-wrap:anywhere}
@media(max-width:700px){:root[data-reading-size=largest] #activityPanel .builder-answer{position:static}}
@media(max-height:500px){#activityPanel .builder-answer{position:static}}
.cube-tray{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:14px;margin:18px 0}
.letter-cube-card{min-width:0;padding:12px 9px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:center}
.cube-number{font-size:.75rem;color:var(--muted)}
.cube-space{height:170px;display:grid;place-items:center;perspective:600px;touch-action:none;user-select:none;cursor:grab;border-radius:10px;background:var(--control);margin:8px 0 12px}
.cube-space.dragging{cursor:grabbing}.cube-space.dragging .letter-cube{transition:none}
.letter-cube-card.placed .cube-space{touch-action:pan-y;cursor:default}
.cube-space:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.letter-cube{position:relative;width:88px;height:88px;transform-style:preserve-3d;transition:transform .2s ease;transform:rotateX(-14deg) rotateY(-20deg)}
.letter-cube-face{position:absolute;inset:0;display:grid;place-items:center;border:2px solid #796a50;border-radius:5px;background:#e6d5b3;color:#343f37;font:bold 44px Arial,sans-serif;backface-visibility:hidden;box-shadow:inset 0 0 12px #9b7d4940}
.letter-cube-face:nth-child(1){transform:translateZ(44px)}
.letter-cube-face:nth-child(2){transform:rotateY(90deg) translateZ(44px);background:#d3bd94}
.letter-cube-face:nth-child(3){transform:rotateY(180deg) translateZ(44px)}
.letter-cube-face:nth-child(4){transform:rotateY(-90deg) translateZ(44px);background:#d3bd94}
.letter-cube-face:nth-child(5){transform:rotateX(90deg) translateZ(44px);background:#f3e6c9}
.letter-cube-face:nth-child(6){transform:rotateX(-90deg) translateZ(44px);background:#bba581}
.letter-cube-face span{display:block;transform:rotate(var(--letter-roll,0deg)) scaleX(var(--letter-mirror,1))}
.cube-caption{font-size:.82rem;min-height:2.8em;line-height:1.4;margin:0 0 8px}
.cube-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.cube-actions button{padding:8px 5px;font-size:.85rem;min-height:48px;white-space:normal;border-radius:8px}
.cube-actions .cube-place,.cube-actions .cube-upright{grid-column:1/-1}
.cube-letter-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}
.cube-letter-choice{min-width:44px;min-height:48px;padding:8px 4px;font-size:1.2rem;font-weight:700;color:var(--ink);background:var(--control);border:2px solid var(--line);border-radius:10px}
.cube-letter-choice[aria-pressed=true]{border-color:var(--action);box-shadow:inset 0 0 0 2px var(--action);font-weight:800}
.letter-cube-card>.cube-place{width:100%;min-height:48px;padding:10px 6px;margin:0 0 8px;white-space:normal}
.cube-turn-tools summary{min-height:44px;padding:10px 3px;cursor:pointer;line-height:1.4;font-size:.85rem}
.cube-tray{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
@media(max-width:700px){.cube-letter-choices{gap:10px}.cube-space{height:170px}}
.letter-cube-card.placed{border:2px solid var(--success-line)}
.letter-cube-card.placed .cube-space{opacity:.65}
.cube-slot{display:inline-block;padding:1px 8px}.cube-slot small{font-family:system-ui;font-size:.45em;color:var(--leaf);vertical-align:middle}
body[data-journey-still=true] .letter-cube{transition:none}
.flat-cubes .letter-cube{transform:none!important;transform-style:flat}
.flat-cubes .letter-cube-face{display:none;transform:none!important;box-shadow:none}
.flat-cubes .letter-cube-face.selected-face{display:grid}
@media(max-width:700px){.stage-inner{grid-template-columns:1fr}.character-rail{display:block;padding:15px}.character-card{display:flex;align-items:center;gap:14px;text-align:left}.character-mark{width:64px;height:64px;margin:0}.word-rack{display:none}.guide-help{flex-direction:row;flex-wrap:wrap;margin-top:12px}.guide-help button{flex:1 1 100px}.rail-note{display:none}.journey-header{align-items:flex-start;padding:16px;flex-direction:column}.journey-footer{padding:12px 16px}.journey-map li{width:26px;height:26px}.journey-caption{font-size:.75rem}.cube-tray{grid-template-columns:1fr}.session-seal{display:none}}
@media(max-width:360px){.cube-tray{grid-template-columns:1fr}.journey-map li{width:24px;height:24px}}
@media(forced-colors:active){#journeyCanvas{display:none}.journey-viewport{min-height:75px}.journey-caption{position:static;max-width:none}.letter-cube-face{border:2px solid CanvasText;color:CanvasText;background:Canvas;box-shadow:none}.journey-map .visited{border:3px double CanvasText}}
@media(prefers-reduced-motion:reduce){.letter-cube{transition:none}}
.quiet-company{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 20px;background:var(--surface);color:var(--ink)}
.quiet-company canvas{width:180px;height:120px;max-width:100%;flex:0 0 auto}
.quiet-company p{flex:1 1 150px;margin:0;line-height:1.6}
.quiet-company button{min-width:44px;min-height:44px}
@media(max-width:700px){.quiet-company{padding:12px 16px}.quiet-company canvas{width:144px;height:96px}.quiet-company button{flex:1 1 100%}}
@media(forced-colors:active){.quiet-company canvas{display:none}}
@media print{.journey{display:none}}

@media(max-width:400px){.character-card{flex-direction:column;align-items:center;text-align:center}.character-card>div{width:100%;min-width:0}#guideCanvas{flex:none;margin:0 auto 12px}}
