:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #172643;--muted: #697182;--paper: #f5f1e8;--card: #fffdf8;--line: #ded8cb;--blue: #1b315b;--accent: #d49b2d;--signal-1: #e4ac38;--signal-2: #398c79;--signal-3: #d56850;--signal-4: #41648e;--danger: #a8473c}*{box-sizing:border-box}body{margin:0;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(#d9d0bf .65px,transparent .65px);background-size:21px 21px}button,select{color:inherit;font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible{outline:3px solid #6385ba;outline-offset:3px}.app-shell{max-width:1100px;min-height:100vh;margin:0 auto;padding:0 24px;display:flex;flex-direction:column}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.brand{border:0;padding:4px 0;background:none;display:flex;gap:10px;align-items:center;text-align:left}.brand-mark{width:28px;height:28px;display:grid;grid-template-columns:1fr 1fr;gap:2px;transform:rotate(-8deg)}.brand-mark i:nth-child(1){background:var(--signal-1);border-radius:7px 2px 2px}.brand-mark i:nth-child(2){background:var(--signal-2);clip-path:polygon(50% 0,100% 100%,0 100%)}.brand-mark i:nth-child(3){background:var(--signal-3);border-radius:2px 2px 2px 7px}.brand-mark i:nth-child(4){background:var(--signal-4);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.brand small,.brand strong{display:block}.brand small{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.brand strong{font-size:17px;line-height:1.2}.language-picker select{min-height:44px;min-width:58px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-weight:700}.tabs{display:flex;gap:8px;padding:12px 0 6px}.tabs button,.quiet-button{min-height:44px;padding:0 14px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);font-size:14px;font-weight:700}.tabs button[aria-current=page]{color:#fff;background:var(--blue)}.tabs button:hover,.quiet-button:hover{background:#1b315b14}main{flex:1}.page{padding:27px 0 44px}.page-heading,.game-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1,.game-heading h1,.help-page h1,.ending-page h1{margin:3px 0 7px;font-size:clamp(29px,5vw,43px);letter-spacing:-.04em;line-height:1.08}.page-heading p:not(.eyebrow){max-width:540px;color:var(--muted);margin:0}.eyebrow{margin:0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.progress-badge{flex:none;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:#fffdf8bf;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.level-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.level-card{min-height:142px;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fffdf8eb;text-align:left;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 3px #1726430b;transition:transform .15s ease,box-shadow .15s ease}.level-card:hover{transform:translateY(-2px);box-shadow:0 5px #17264314}.level-card.is-cleared{border-color:#91a78a}.level-card-number{font:800 25px ui-monospace,SFMono-Regular,Menlo,monospace}.mini-glyphs{display:flex;gap:7px}.mini-glyphs span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--paper)}.level-card-foot{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.level-card-foot strong{font-size:13px}.level-card-foot small{color:var(--muted);font-size:10px}.primary-button{min-height:48px;padding:0 18px;border:0;border-radius:9px;color:#fff;background:var(--blue);font-weight:750;transition:transform .12s ease,background .12s ease}.primary-button:hover{background:#294675}.primary-button:active{transform:scale(.98)}.map-continue{margin-top:20px}.game-heading{align-items:center}.game-layout{display:grid;grid-template-columns:minmax(0,1fr)}.play-card{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:17px 22px;padding:20px;border:1px solid var(--line);border-radius:19px;background:var(--card);box-shadow:0 4px #1726430a}.rule-block{grid-row:span 4;display:flex;flex-direction:column;gap:18px}.rule-block>div>strong{display:block;margin-top:4px;font-size:22px}.mapping-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;list-style:none;padding:0;margin:7px 0 0}.mapping-list li{min-height:38px;padding:5px 8px;display:flex;align-items:center;gap:8px;border:1px solid #eee8dc;border-radius:8px;background:#faf7f0;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace}.phase-message{align-self:center;min-height:20px;margin:0;color:var(--muted);font-size:14px}.signal-stage{position:relative;min-height:192px;padding:18px;border-radius:15px;background:var(--blue);display:grid;place-items:center;overflow:hidden}.signal-row{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.signal-cell{min-height:104px;display:grid;place-content:center;justify-items:center;gap:9px;border:2px solid rgba(255,255,255,.2);border-radius:13px;opacity:.32;color:#fff;transition:background .12s ease,opacity .12s ease}.signal-cell b{font:750 19px ui-monospace,SFMono-Regular,Menlo,monospace}.signal-cell.is-lit{opacity:1;background:#fffdf8;color:var(--ink)}.stage-placeholder{color:#ffffff8c;font:700 18px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2em}.sequence-progress{position:absolute;bottom:10px;display:flex;gap:5px}.sequence-progress span{width:22px;height:5px;border-radius:999px;background:#ffffff38}.sequence-progress span.is-seen{background:var(--accent)}.answer-area{align-self:end}.answer-area h2{margin:0 0 7px;font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.answer-list{min-height:37px;list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0;padding:0}.answer-list li:not(.empty-answer){min-height:34px;padding:5px 9px;display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font:700 14px ui-monospace,SFMono-Regular,Menlo,monospace}.empty-answer{color:var(--muted);font-size:13px}.destination-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.destination-grid button{min-height:62px;border:2px solid var(--line);border-radius:11px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:750 15px ui-monospace,SFMono-Regular,Menlo,monospace}.destination-grid button:enabled{border-color:var(--signal-1)}.destination-grid button:disabled{opacity:.55;cursor:not-allowed}.game-actions{grid-column:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.game-actions .quiet-button{border-color:var(--line)}.game-actions button:disabled{opacity:.48;cursor:not-allowed}.result{grid-column:2;padding:12px 14px;border:1px solid;border-radius:10px;font-size:14px}.result p{margin:5px 0 0;font-size:12px}.result-error{color:#74362e;border-color:#d8a59f;background:#fbefed}.result-success{color:#28543e;border-color:#a7c1a9;background:#eef5eb}.help-page{max-width:820px}.help-list{list-style:none;display:grid;gap:10px;padding:0;margin:26px 0}.help-list li{display:grid;grid-template-columns:38px 1fr;gap:13px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.help-list li>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-weight:750}.help-list p{margin:2px 0 0;line-height:1.55}.shape-legend{display:flex;flex-wrap:wrap;gap:14px;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:#fffdf8cc}.shape-legend div{display:flex;align-items:center;gap:7px;font-size:13px}.ending-page{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ending-mark{display:flex;gap:5px;margin-bottom:23px}.ending-mark svg:nth-child(1){color:var(--signal-1)}.ending-mark svg:nth-child(2){color:var(--signal-2)}.ending-mark svg:nth-child(3){color:var(--signal-3)}.ending-mark svg:nth-child(4){color:var(--signal-4)}.ending-page h1{max-width:700px}.ending-copy{max-width:520px;color:var(--muted);line-height:1.55}.ending-page .progress-badge{margin:10px 0 20px}.notice{padding:10px 12px;border-radius:9px;color:#604b23;background:#f7ebca;font-size:13px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}footer{min-height:54px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font:12px ui-monospace,SFMono-Regular,Menlo,monospace}@media(max-width:700px){.app-shell{padding:0 15px}.topbar{min-height:66px}.tabs{position:sticky;top:0;z-index:3;background:var(--paper)}.tabs button{flex:1;padding:0 7px}.page{padding-top:19px}.page-heading{align-items:start;flex-direction:column;gap:12px}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.level-card{min-height:128px;padding:12px}.play-card{grid-template-columns:1fr;gap:14px;padding:14px}.rule-block{grid-row:auto;display:grid;grid-template-columns:1fr;gap:10px}.rule-block>div>strong{font-size:20px}.mapping-list{grid-template-columns:repeat(4,minmax(0,1fr))}.mapping-list li{justify-content:center;gap:3px;padding:4px}.mapping-list li svg{width:17px;height:17px}.signal-stage{min-height:152px;padding:12px}.signal-row{gap:5px}.signal-cell{min-height:86px;gap:5px}.signal-cell svg{width:30px;height:30px}.destination-grid{gap:6px}.destination-grid button{min-height:56px}.game-actions,.result{grid-column:1}.game-heading{align-items:end}.quiet-button{padding:0 10px}}@media(max-width:360px){.brand strong{font-size:15px}.mapping-list li{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
