:root{color-scheme:dark;--accent:#9dd68d;--gold:#dbb576;--world:#112c26;--ink:#eef1df;--muted:#a2b5a4;--line:#cce2bf24;--board-size:560px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 30% 20%,var(--world),transparent 70%),#0d1918;font:13px/1.5 'Courier New',monospace;transition:background .5s}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:#ffffff04;border-radius:5px;min-height:40px;padding:8px 13px;touch-action:manipulation}button:hover{border-color:var(--accent);background:#ffffff0b}button:active{transform:translateY(1px)}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:3px}a{color:var(--ink);text-decoration:none}.app{width:min(1160px,100%);margin:auto;padding:0 28px}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:1.3px}.topbar a{display:flex;gap:13px;align-items:center}.edition{font-size:9px;color:var(--muted)}.edition i{font-style:normal;color:var(--gold);margin:0 10px}.top-actions{display:flex;gap:8px}.top-actions button{font-size:9px;letter-spacing:.5px;min-height:34px}.top-actions button:last-child{font-size:21px;padding:1px 9px}.title-row{display:flex;justify-content:space-between;align-items:center;padding:25px 0 23px}.eyebrow{font-size:9px;color:var(--accent);letter-spacing:2px;margin:0 0 6px}h1{font:normal clamp(28px,3.1vw,41px)/1.1 Georgia,serif;letter-spacing:-1px;margin:0}h1 em{font-weight:normal;color:var(--accent)}h1 span{display:inline-block;color:var(--gold);font-size:22px;margin-left:15px;vertical-align:top}.intro{font:italic 13px/1.7 Georgia,serif;color:#aab5a6;text-align:right;margin:0}.layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:43px;align-items:start}.play-area{min-width:0}.world-heading{display:flex;align-items:center;gap:12px;margin-bottom:13px}.world-number{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:39px;height:39px;font:italic 22px Georgia,serif;color:var(--gold)}.world-heading p{font-size:8px;letter-spacing:1.5px;color:var(--muted);margin:0 0 2px}.world-heading h2{font:normal 20px/1.2 Georgia,serif;margin:0}.small-button{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:1px;min-height:34px}.small-button span{font-size:17px}.board-surround{padding:0 13px;background:#06141099;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 60px #0003,inset 0 0 0 3px #ffffff03}.board-top,.board-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px;height:32px;font-size:8px;letter-spacing:1px;color:var(--muted)}.board-top span:first-child{color:var(--accent)}.board-shell{position:relative;width:min(100%,var(--board-size));margin:auto;background:var(--world);border:1px solid #d3e3b818;border-radius:3px;overflow:hidden;isolation:isolate}#board{width:100%;height:auto;display:block;image-rendering:pixelated;touch-action:none;user-select:none;-webkit-user-select:none}.board-bottom{height:34px;font-size:8px}.board-bottom b{color:var(--ink);font-weight:normal}.controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 3px 0}.utility{display:flex;gap:6px}.utility button{font-size:21px;padding:2px 10px;display:flex;gap:7px;align-items:center}.utility span{font-size:9px;letter-spacing:.8px}.dpad{display:grid;grid-template:42px 42px/42px 42px 42px;gap:4px}.dpad button{padding:0;font-size:23px;min-height:0;background:#b8dab00a;border-color:#b8dab038}.dpad .up{grid-column:2;grid-row:1}.dpad .left{grid-column:1;grid-row:2}.dpad .down{grid-column:2;grid-row:2}.dpad .right{grid-column:3;grid-row:2}.dpad .wait{grid-column:3;grid-row:1;font-size:28px;color:var(--gold);border-style:dashed}.status{font-size:10px;color:var(--muted);text-align:center;min-height:30px;margin:10px 0 0;line-height:1.5}.journal{border-top:1px solid var(--line);padding-top:15px;margin-top:3px}.journal-head{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;color:var(--muted)}.journal-head b{color:var(--gold);font-size:15px;font-weight:normal}#portrait{display:block;width:100px;height:84px;image-rendering:pixelated;margin:10px 0 5px}.journal-subtitle{font-size:9px;color:var(--accent);margin:0 0 8px}.journal h3{font:normal 29px/1.14 Georgia,serif;letter-spacing:-.5px;margin:0 0 13px}.journal>p:not(.journal-subtitle){font:13px/1.7 Georgia,serif;color:#b5beae;max-width:240px}.rules{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:20px;padding:3px 0}.rules p{display:flex;gap:13px;font-size:10px;line-height:1.6;color:var(--muted)}.rules i{font-style:normal;color:var(--gold);font-size:9px;padding-top:1px}.rules b{display:block;font-weight:normal;color:var(--ink)}.journey{padding-top:19px}.journey>div:first-child{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px}.journey strong{font-weight:normal;color:var(--gold)}.progress-dots{display:flex;gap:6px;margin:13px 0}.progress-dots i{height:5px;flex:1;border:1px solid var(--line)}.progress-dots i.done{background:var(--accent)}.progress-dots i.current{border-color:var(--gold)}.journey p{font-size:10px;color:var(--muted)}.keyboard-note{font-size:8px;line-height:2.3;color:var(--muted);margin-top:20px}kbd{font:9px monospace;border:1px solid var(--line);padding:2px 4px;border-radius:3px;color:var(--ink)}.keyboard-note small{display:block;margin-top:8px;font-size:9px;color:#7d9387}.page-footer{display:flex;justify-content:space-between;gap:15px;font-size:8px;letter-spacing:1px;color:#73897e;border-top:1px solid var(--line);padding:16px 0;margin-top:8px}.board-message{position:absolute;inset:0;background:#081713c9;backdrop-filter:blur(6px);display:grid;place-items:center;text-align:center;padding:20px;z-index:3}.board-message[hidden]{display:none}.board-message>div{max-width:330px}.board-message p:first-child{font-size:9px;letter-spacing:2px;color:var(--accent)}.board-message h3{font:normal 32px/1.1 Georgia,serif;margin:10px 0}.board-message p{font-size:11px;color:#bdccba}.board-message button{background:var(--accent);color:#12221b;border:0;min-height:44px;font-weight:bold;font-size:11px;display:block;margin:18px auto 0;padding:10px 20px}.board-message .quiet{background:transparent;color:var(--muted);min-height:36px;margin-top:3px;font-weight:normal;font-size:9px}dialog{color:var(--ink);width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 28px);padding:25px;border:1px solid #d6e8bd40;border-radius:12px;background:#12231f;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#030a09c9;backdrop-filter:blur(7px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.dialog-head h2{font:normal 28px Georgia,serif;margin:0}.dialog-head>button{font-size:24px;min-width:40px;padding:0}.world-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.world-tile{text-align:left;min-height:100px;position:relative;border-color:color-mix(in srgb,var(--tile-color) 30%,transparent);background:color-mix(in srgb,var(--tile-color) 6%,transparent);padding:14px}.world-tile strong{font:normal 17px/1.2 Georgia,serif;display:block;color:var(--tile-color);margin:7px 0}.world-tile span{font-size:9px;color:var(--muted)}.world-tile b{position:absolute;right:12px;top:10px;color:var(--gold);font-weight:normal}.dialog-note{font-size:10px;color:var(--muted);margin:20px 0 0}.help-copy{font:14px/1.7 Georgia,serif;color:#c4d1c0}.help-copy b{color:var(--accent)}.dialog-buttons{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}#restart-dialog{max-width:440px}#restart-dialog>p{color:var(--muted)}#confirm-restart{background:var(--accent);color:#11251c}.rainbow h1 em{background:linear-gradient(100deg,#ffa4cb,#ffe9a1,#9affd5,#a7dbff,#d4b6ff);background-clip:text;-webkit-background-clip:text;color:transparent}
@media(min-width:821px) and (max-height:850px){.topbar{height:46px}.title-row{padding:16px 0}.world-heading{margin-bottom:10px}.board-shell{width:min(100%,calc((100dvh - 335px)*var(--aspect,1)))}.journal>p:not(.journal-subtitle){margin-top:8px}.journal h3{font-size:25px}#portrait{height:60px;width:72px;margin:5px 0}.rules{margin-top:12px}.keyboard-note{margin-top:10px}}
@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 240px;gap:25px}.utility{gap:4px}.utility button{padding:3px 8px}.utility span{font-size:8px}.intro{font-size:12px}}
@media(max-width:820px){.app{padding:0 18px;max-width:650px}.topbar{height:48px}.edition,.intro,.journal,.page-footer{display:none}.title-row{padding:16px 0 18px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:32px}.layout{display:block}.world-heading h2{font-size:19px}.board-shell{width:min(100%,calc((100dvh - 325px)*var(--aspect,1)))}.board-surround{padding:0 9px}.controls{padding-top:10px}.utility button{flex-direction:column;gap:0;min-width:46px;min-height:48px;line-height:1.1}.utility span{font-size:7px;margin-top:3px}.status{font-size:9px;margin-top:7px;min-height:27px}.top-actions button{min-height:32px}.dpad{grid-template:42px 42px/44px 44px 44px}.board-top{font-size:7px;height:27px}.board-bottom{height:28px;font-size:8px}.world-heading{margin-bottom:10px}.world-number{width:34px;height:34px;font-size:20px}.small-button{font-size:8px}.board-message h3{font-size:26px}.board-message p{font-size:10px}}
@media(max-width:380px){.app{padding:0 10px}h1{font-size:28px}.topbar{font-size:8px}.top-actions button{font-size:8px;padding:6px}.utility{gap:3px}.utility button{min-width:40px;padding:2px 5px}.dpad{grid-template:40px 40px/40px 40px 40px}.world-heading h2{font-size:17px}.world-grid{grid-template-columns:1fr}.board-message{padding:12px}.board-message h3{font-size:22px}}
@media(max-height:560px) and (orientation:landscape){.app{max-width:none;padding:0 14px}.topbar{height:34px}.title-row{display:none}.layout{display:block}.play-area{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:0 15px;max-width:840px;margin:10px auto}.world-heading{grid-column:1/3;margin:0 0 8px}.board-surround{grid-column:1;grid-row:2/4}.board-shell{width:min(100%,calc((100dvh - 150px)*var(--aspect,1)))}.controls{grid-column:2;grid-row:2;flex-wrap:wrap;justify-content:center;align-content:center;gap:12px}.utility{order:2}.dpad{order:1;width:142px}.status{grid-column:2;grid-row:3;align-self:start}.journal,.page-footer,.edition{display:none}.world-number{width:28px;height:28px}.world-heading h2{font-size:16px}.world-heading p{font-size:7px}.board-top,.board-bottom{height:24px}.board-message h3{font-size:20px}.board-message p{font-size:9px;margin:7px 0}.board-message button{margin-top:8px;min-height:32px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(min-width:821px){.board-shell{width:min(100%,560px,calc((100dvh - 470px)*var(--aspect,1)))}}
@media(max-width:820px) and (orientation:portrait){.board-shell{width:min(100%,calc((100dvh - 390px)*var(--aspect,1)))}}

.dpad .pull{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9px;line-height:1.1;letter-spacing:-.3px}.dpad .pull>span:first-child{font-size:20px;line-height:18px}.dpad .pull[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#10241f;box-shadow:0 0 0 2px #ffffff15}.pull-note{font-size:9px;line-height:1.5;color:var(--accent);text-align:center;margin:0 0 6px;min-height:14px}
@media(max-height:560px) and (orientation:landscape){.pull-note{grid-column:2;grid-row:4;font-size:8px;margin-top:3px}}
