.name-mark.play-trigger{position:relative;align-self:end;display:flex;align-items:center;justify-content:center;width:100%;min-width:32px;height:88px;border:0;padding:0;background:none;color:var(--ink);margin:0 0 32px;cursor:pointer}.cursor-mark{display:block;width:100%;height:19px;background:currentColor;transform-origin:left;transition:transform .3s}.play-trigger:hover .cursor-mark,.play-trigger:focus-visible .cursor-mark{transform:scaleX(.6)}.play-trigger.is-complete .cursor-mark{height:42px;background:transparent;border:3px solid currentColor}.name-mark svg{display:none}.play-label{position:absolute;top:calc(50% + 22px);left:0;opacity:0;white-space:nowrap;font:12px var(--mono);color:var(--muted);transition:opacity .2s}.play-trigger:hover .play-label,.play-trigger:focus-visible .play-label{opacity:1}.secret-word{font:inherit;color:inherit;border:0;border-bottom:1px dotted #888;background:none;padding:0;cursor:pointer}.secret-word:hover{color:#fff;border-bottom-style:solid}
.arcade [hidden]{display:none!important}.arcade{width:min(1040px,calc(100% - 48px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #383838;background:#0a0a0a;overflow:auto;overscroll-behavior:contain}.arcade[open]{display:grid;grid-template-columns:180px minmax(0,1fr)}.arcade::backdrop{background:#000e}.arcade button{touch-action:manipulation}.arcade-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 26px;border-bottom:1px solid var(--line)}.arcade-head>.mono{font-size:12px;letter-spacing:.02em}.arcade-head-actions{display:flex;align-items:center;gap:24px}.sound-toggle{border:0;background:none;font:12px var(--mono);color:var(--muted);padding:10px 0}.sound-toggle span{color:var(--ink);margin-left:7px}.arcade-close{background:none;border:0;font:32px/1 var(--mono);width:40px;height:40px;color:var(--muted)}.arcade-close:hover{color:var(--ink)}
.arcade-tabs{grid-column:1;grid-row:2;display:flex;flex-direction:column;align-self:stretch;gap:0;padding:22px 24px;border-right:1px solid var(--line)}.arcade-tabs button{background:none;border:0;position:relative;padding:17px 0;text-align:left;display:flex;flex-direction:column;gap:4px;color:#8b8b8b;font:16px var(--mono)}.arcade-tabs button span{font-size:12px;color:#777}.arcade-tabs button[aria-pressed=true]{color:var(--ink)}.arcade-tabs button[aria-pressed=true]:before{content:'';position:absolute;left:-25px;top:18px;width:3px;height:21px;background:var(--ink)}.arcade-tabs button:hover{color:var(--ink)}.game-view{grid-column:2;grid-row:2;min-width:0;padding:27px 38px 23px}.game-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px}.game-heading h2{font:450 46px/1.1 var(--sans);letter-spacing:-.06em;margin:0 0 12px}.game-heading p{font-size:14px;line-height:1.65;color:var(--muted);margin:0;max-width:380px}.game-era{font-size:12px;color:var(--muted);padding-top:5px}.game-meta{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);max-width:340px;margin:0 auto 12px}.game-meta b{color:var(--ink);font-weight:400;margin-left:4px}.canvas-wrap{width:min(100%,340px);aspect-ratio:1;position:relative;margin:0 auto;border:1px solid #323232;background:#080808}.canvas-wrap canvas{width:100%;height:100%;display:block;touch-action:none;outline-offset:4px}.board-overlay{position:absolute;inset:0;background:#080808d9;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;padding:22px}.board-overlay>span{font:800 43px/1.2 'Doto',var(--mono);letter-spacing:-.04em;color:var(--ink)}.board-overlay p{font:12px/1.7 var(--mono);color:var(--muted);margin:14px 0 0}.game-controls{display:flex;justify-content:center;gap:14px;align-items:center;flex-wrap:wrap;margin:18px auto 0;max-width:450px}.game-primary,.game-secondary{font:13px/1.6 var(--mono);min-height:44px;padding:10px 17px;border:0;background:none;color:var(--ink)}.game-primary{background:var(--ink);color:var(--bg)}.game-primary:hover{background:#ccc}.game-secondary{color:var(--muted)}.game-secondary:hover:not(:disabled){color:var(--ink);text-decoration:underline;text-underline-offset:5px}.game-secondary:disabled{opacity:.4;cursor:default}.game-secondary kbd{font:11px var(--mono);margin-left:8px;color:#777}.game-help{font-size:13px;line-height:1.7;color:var(--muted);text-align:center;max-width:440px;margin:14px auto 0;min-height:22px}.direction-pad{display:none;grid-template-columns:repeat(3,44px);grid-template-rows:44px 44px;gap:4px;justify-content:center;margin-top:15px}.direction-pad button{border:1px solid #444;background:#111;color:var(--ink);font:24px var(--mono)}.direction-pad button[data-direction=up]{grid-column:2}.direction-pad button[data-direction=left]{grid-column:1;grid-row:2}.direction-pad button[data-direction=down]{grid-column:2;grid-row:2}.direction-pad button[data-direction=right]{grid-column:3;grid-row:2}.direction-pad button:active{background:var(--ink);color:var(--bg)}.arcade-foot{grid-column:1/-1;grid-row:4;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 26px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.arcade-notice{grid-column:2;grid-row:3;margin:0 38px 24px;padding-top:14px;border-top:1px solid #666;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;line-height:1.5}.arcade-notice button{font:12px var(--mono);border:0;border-bottom:1px solid #888;background:none;padding:6px 0;white-space:nowrap}
.signal-board-wrap{position:relative;width:100%;max-width:340px;margin:0 auto;padding:0 20px}.signal-board{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.signal-tile{display:block;position:relative;aspect-ratio:1;min-width:0;border:1px solid #303030;background:transparent;padding:0;cursor:pointer}.signal-tile svg{display:block;width:100%;height:100%;pointer-events:none}.signal-tile .pipe{stroke:#707070;stroke-width:2;fill:none;stroke-linecap:square;transition:stroke .18s}.signal-tile .joint{fill:#999}.signal-tile.connected .pipe{stroke:#f4f4f4;stroke-width:3}.signal-tile.connected .joint{fill:#fff}.signal-tile .checkpoint-bg{fill:#0a0a0a;stroke:#888;stroke-width:1}.signal-tile text{fill:#ddd;font:14px var(--mono);text-anchor:middle;dominant-baseline:middle}.signal-tile.connected .checkpoint-bg{stroke:#fff}.signal-tile:hover{border-color:#a0a0a0}.signal-tile:focus-visible{outline:2px solid #ddd;outline-offset:0;z-index:2}.signal-tile.hinted{border-color:#ccc}.signal-port{position:absolute;font:20px/1 var(--mono);transform:translateY(-50%);color:var(--ink)}.signal-port.source{left:0}.signal-port.exit{right:0;color:#555}.signal-port.exit.connected{color:var(--ink)}.signal-legend{display:flex;justify-content:space-between;gap:10px;max-width:340px;margin:14px auto 0;font-size:12px;color:var(--muted);flex-wrap:wrap}.signal-legend>span:last-child{width:100%;text-align:center;color:#777;margin-top:0}.honesty-puzzle{padding:5px 0 0}.honesty-puzzle h3{font:450 30px/1.3 var(--sans);letter-spacing:-.045em;margin:20px 0 28px}.empty-context{border-left:1px solid #777;padding:0 0 0 18px}.empty-context>.mono{font-size:12px;color:var(--muted)}.empty-context p{font-size:16px;color:#bbb;line-height:1.8;margin:10px 0 0}.honesty-puzzle>p{font-size:16px;color:var(--muted);margin-top:26px}.honesty-choices{display:flex;flex-direction:column;gap:10px;margin:15px 0}.honesty-choices button{text-align:left;font:14px/1.65 var(--mono);padding:14px;border:1px solid #444;background:none;color:var(--ink)}.honesty-choices button:hover,.honesty-choices button.chosen{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.journal-view{padding-bottom:30px}.journal-entries{list-style:none;margin:25px 0 0;padding:0}.journal-entry{border-top:1px solid #333;padding:24px 0}.journal-entry h3{font-size:24px;font-weight:450;line-height:1.3;letter-spacing:-.035em;margin:15px 0 12px}.journal-entry p{font-size:16px;line-height:1.8;color:#b9b9b9;margin:0}.journal-date{font:12px var(--mono);display:flex;justify-content:space-between;gap:20px;color:var(--ink)}.journal-entry.locked .journal-date{color:#888}.journal-entry.locked p{font-size:14px;color:var(--muted)}.journal-entry button{font:13px var(--mono);border:0;border-bottom:1px solid #777;background:none;color:var(--ink);padding:8px 0;margin-top:14px}.journal-entry button:hover{color:var(--muted)}.journal-finale{margin:20px 0 0;padding:26px 0;border-top:1px solid #999}.journal-finale h3{font:450 48px/1.2 var(--sans);letter-spacing:-.055em;margin:12px 0 16px}.journal-finale p{font-size:18px;line-height:1.8;color:#bbb}.journal-cursor{color:var(--ink)}.journal-honesty{font:14px/1.8 var(--mono);padding:20px 0;color:#aaa;border-top:1px solid #333}.journal-storage{font:12px/1.8 var(--mono);color:var(--muted);margin:22px 0 0}
@media(pointer:coarse){.direction-pad{display:grid}.play-label{opacity:1}}
@media(max-width:760px){.name-mark.play-trigger{height:56px;margin:0}.cursor-mark{height:12px}.play-label{font-size:11px;top:calc(50% + 15px)}.arcade{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.arcade[open]{display:block}.arcade-head{padding:10px 20px}.arcade-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-right:0;border-bottom:1px solid var(--line);padding:0 20px;gap:15px}.arcade-tabs button{font-size:14px;padding:14px 0;gap:6px}.arcade-tabs button[aria-pressed=true]:before{top:auto;bottom:-1px;left:0;width:100%;height:2px}.arcade-tabs button span{font-size:11px}.game-view{padding:23px 22px}.game-heading{margin-bottom:20px}.game-heading h2{font-size:38px}.game-heading p{font-size:14px}.game-era{font-size:12px}.game-meta{font-size:12px}.canvas-wrap{max-width:310px}.arcade-notice{margin:0 22px 20px}.arcade-foot{padding:13px 20px;font-size:11px}.direction-pad{display:grid}.game-help{font-size:12px}.signal-legend{font-size:11px}.game-controls{gap:7px}.game-primary,.game-secondary{font-size:12px;padding:10px 12px}.game-secondary kbd{display:none}.journal-entry h3{font-size:22px}}
@media(max-width:420px){.arcade{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.arcade-head{padding:7px 16px}.arcade-tabs{padding:0 16px;gap:12px}.game-view{padding:20px 18px}.game-heading h2{font-size:34px}.game-heading p{font-size:13px}.game-heading{margin-bottom:17px}.canvas-wrap{max-width:270px}.direction-pad{margin-top:12px}.game-help{margin-top:12px}.board-overlay>span{font-size:37px}.arcade-foot{padding:12px 16px;font-size:11px}.sound-toggle{font-size:11px}.arcade-head-actions{gap:15px}.arcade-head>.mono{font-size:11px}.game-meta{font-size:11px}.arcade-notice{margin:0 18px 20px;display:block}.arcade-notice button{margin-top:8px}.honesty-puzzle h3{font-size:27px}}
@media(prefers-reduced-motion:reduce){.arcade *,.cursor-mark{animation:none!important;transition:none!important}}
