:root{--surface-page:#fff;--border-muted:#bbb;--text-muted:#666;--text-secondary:#64748b;--text-success:#1f5134;--indicator-pursuit:#a33;--indicator-escape:#376f4d;--overlay-shadow:#0003;--clone-U:#e66a1f;--clone-V:#2b6eb0;--clone-W:#3a8f3a;--clone-X:#666;--clone-Y:#7b4fa0;--clone-Z:#b8860b;--launch-code-U:#ff8a4c;--launch-code-V:#001fe8;--launch-code-W:#008b1a;--launch-code-X:#8c8c8c;--launch-code-Y:#8b0b7d;--launch-code-Z:#ffeb00;--indicator-legal:#008c95;--indicator-legal2:#c2185b;--indicator-selected:#d32f2f;--indicator-legal-bg:#e1f5f5;--indicator-legal-shadow:#008c9566;--indicator-legal2-bg:#fce4ec;--indicator-legal2-shadow:#c2185b66;--indicator-warning:#c44;--indicator-danger:#800;--action-escape-bg:#fff0f0;--indicator-legal2-40:#c2185b66;--indicator-legal2-60:#c2185b99;--indicator-confirm:#a0a}.color-u{color:var(--clone-U)}.color-v{color:var(--clone-V)}.color-w{color:var(--clone-W)}.color-x{color:var(--clone-X)}.color-y{color:var(--clone-Y)}.color-z{color:var(--clone-Z)}.command-hand{flex-wrap:wrap;justify-content:center;align-self:flex-start;gap:.8rem;width:720px;padding:1.2rem;display:flex;position:relative}.improvise-controls{white-space:nowrap;align-items:center;gap:.65rem;display:flex;position:absolute;top:-2.6rem;left:50%;transform:translate(-50%)}.improvise-controls button{border:1px solid var(--indicator-legal2);color:inherit;font:inherit;cursor:pointer;background:#fff;border-radius:6px;padding:.6rem 1rem;font-weight:700}.improvise-controls button:focus-visible,.command-card:focus-visible{outline:3px solid var(--indicator-legal2);outline-offset:3px}.command-card-slot{position:relative}.command-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:8px;width:155px;height:216px;padding:0;transition:box-shadow .15s,opacity .15s;display:block;position:relative;overflow:hidden}.command-card:hover:not(.inert){box-shadow:0 0 12px var(--indicator-legal2-40)}.command-card.selected{box-shadow:0 0 16px var(--indicator-legal2-60);outline:3px solid var(--indicator-legal2);outline-offset:2px}.command-card.inert{cursor:default;opacity:.5}.command-card.inert.selected{opacity:1}.command-card-face{object-fit:contain;pointer-events:none;border-radius:8px;width:100%;height:100%;display:block}.card-undo{z-index:5;cursor:pointer;color:#b22;white-space:nowrap;background:#fdd;border:1px solid #c88;border-radius:4px;margin-top:4px;padding:4px 14px;font-size:13px;font-weight:700;position:absolute;top:100%;left:50%;transform:translate(-50%)}.card-undo:hover{background:#fcc;border-color:#b22}.card-face-img{object-fit:contain;border-radius:8px;width:155px;height:216px;display:block}.location-ring{flex-direction:column;align-items:center;width:900px;margin:0 auto;display:flex}.ring-container{width:900px;height:720px;position:relative}.ring-hud{z-index:5;pointer-events:none;flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;width:180px;padding-top:16px;display:flex;position:absolute;top:0;bottom:0;right:0}.ring-hud>*{pointer-events:auto}.ring-hud .encounter-picker{max-height:700px;overflow-y:auto}.location{cursor:default;-webkit-user-select:none;user-select:none;background:0 0;border:2px solid #0000;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;width:160px;height:162px;margin-top:-81px;margin-left:-80px;padding-top:6px;font-family:monospace;font-size:18px;display:flex;position:absolute}.location.legal-char1{border-color:var(--indicator-legal);background:var(--indicator-legal-bg);box-shadow:0 0 12px var(--indicator-legal-shadow);cursor:pointer}.location.legal-char2{border-color:var(--indicator-legal2);background:var(--indicator-legal2-bg);box-shadow:0 0 12px var(--indicator-legal2-shadow);cursor:pointer}.turn-step-indicator{text-align:center;z-index:3;position:absolute;bottom:2.5rem;left:1.5rem}.turn-step-caption{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:.9rem;font-weight:600;display:block}.turn-step-indicator ol{color:var(--text-secondary);text-transform:uppercase;grid-template-columns:repeat(3,max-content);gap:3px 8px;margin:4px 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.turn-step-indicator li.active{color:var(--text-success);text-underline-offset:3px;font-weight:800;text-decoration:underline}.location.improvise-legal{border-color:var(--indicator-legal2);background:var(--indicator-legal2-bg);box-shadow:0 0 12px var(--indicator-legal2-shadow);cursor:pointer}.location.improvise-legal:focus-visible{outline:3px solid var(--indicator-legal2);outline-offset:4px}.location.inert{opacity:.3}.loc-tiles{width:152px;height:152px;position:relative}.loc-tile{background:#fff;border:1px solid #0000001f;border-radius:4px;position:absolute}.loc-cubes{left:calc(50% + var(--character-x));top:calc(50% + var(--character-y));z-index:4;flex-wrap:wrap;justify-content:center;gap:3px;width:120px;display:flex;position:absolute;transform:translate(-50%,-50%)}.cube{position:relative}.cube-img{object-fit:contain;border:2px solid var(--clone-X);background:#fff;border-radius:50%;width:57px;height:57px;padding:8px;display:block}.cube.selectable{outline:2px solid var(--indicator-legal);outline-offset:2px;cursor:pointer;transform:scale(1.25)}.cube.selectable.active-char{outline-color:var(--indicator-selected);outline-width:3px}.location.selected-char{outline:2px solid var(--indicator-selected);outline-offset:4px}.played-card{border:2px solid var(--indicator-legal2);background:#eef;border-radius:8px;flex-direction:column;align-items:center;gap:4px;margin-bottom:.4rem;padding:8px 16px;display:flex;position:relative}.card-undo-btn{cursor:pointer;color:var(--indicator-danger);background:#fdd;border:1px solid #c88;border-radius:4px;padding:2px 12px;font-family:monospace;font-size:13px;font-weight:700}.card-undo-btn:hover{background:#faa}.move-info{text-align:center;width:100%;min-height:1.4em;margin-bottom:.4rem;font-family:monospace;font-size:18px;line-height:1.25}.move-char-icon{object-fit:contain;vertical-align:middle;border-radius:3px;width:24px;height:24px}.dir-popup{z-index:10;white-space:nowrap;background:#fff;border:1px solid #999;border-radius:6px;flex-direction:column;gap:3px;padding:6px;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.dir-popup button{cursor:pointer;color:#333;background:#f5f5f5;border:1px solid #ccc;border-radius:4px;padding:4px 12px;font-family:monospace;font-size:16px}.dir-popup button:hover{background:var(--indicator-legal-bg);border-color:var(--indicator-legal);color:var(--indicator-legal)}.observe-container{display:inline-block;position:relative}.obs-pair-icon{object-fit:contain;vertical-align:middle;width:24px;height:24px;margin:0 2px;display:inline-block}.obs-pair-blocked{opacity:.4;cursor:not-allowed!important}.obs-pair-popup button.obs-pair-blocked:hover{color:#333;background:#f5f5f5;border-color:#ccc}.obs-pair-discarded-label{color:#999;margin-top:2px;font-size:11px;display:block}.undo-btn{cursor:pointer;margin-bottom:.8rem;padding:.4rem 1.2rem;font-size:18px}.undo-btn:disabled{opacity:.5;cursor:default}.escape-section{flex-direction:column;align-items:center;gap:8px;margin:10px 0;display:flex}.escape-btn{background:var(--action-escape-bg);border:2px solid var(--indicator-warning);color:var(--indicator-danger);padding:8px 24px;font-size:1.1em;font-weight:700}.escape-blocked{color:#999;font-size:14px;font-style:italic}.rank-container{position:relative}.rank-picker{z-index:20;background:#fff;border:2px solid #555;border-radius:6px;gap:10px;padding:10px;display:flex;position:absolute;box-shadow:0 5px 16px #0003}.rank-picker section{min-width:120px}.rank-picker h4{margin:0 0 6px;font-size:.85rem}.rank-picker section button{cursor:pointer;background:#fff;border:1px solid #888;align-items:center;gap:4px;width:100%;min-height:44px;margin-bottom:4px;display:flex}.rank-picker img{object-fit:contain;width:26px;height:26px}.rank-picker-cancel{align-self:flex-end;min-height:44px}.encounter-picker{z-index:20;pointer-events:auto;background:#0000007a;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0;overflow-y:auto}.encounter-picker-card{background:#fff;border:2px solid #aaa;border-radius:12px;flex-direction:column;gap:.8rem;width:min(680px,100%);max-height:100%;padding:1.2rem;display:flex;overflow-y:auto;box-shadow:0 12px 32px #0000004d}.encounter-title{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin-bottom:.3rem;font-family:monospace;font-size:18px;font-weight:700;display:flex}.encounter-clone-icon{object-fit:contain;vertical-align:middle;width:24px;height:24px}.encounter-section{background:#fafafa;border:1px solid #ddd;border-radius:6px;flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.encounter-section-label{color:#555;margin-bottom:.2rem;font-family:monospace;font-size:14px;font-weight:700}.encounter-option{cursor:pointer;white-space:nowrap;background:#fff;border:2px solid #ccc;border-radius:6px;padding:.4rem .8rem;font-family:monospace;font-size:15px}.encounter-option:hover:not(:disabled){border-color:#666}.encounter-option:disabled{opacity:.4;cursor:default}.encounter-option.selected{border-color:var(--indicator-warning);background:#fff0f0;box-shadow:0 0 6px #cc44444d}.encounter-unavailable{color:#999;font-family:monospace;font-size:14px;font-style:italic}.encounter-obs-grid{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.obs-option{text-align:center;align-items:center;gap:3px;min-width:44px;display:flex}.confirm-obs{border-color:var(--indicator-confirm);color:var(--indicator-confirm);font-weight:700}.confirm-obs:not(:disabled):hover{background:#fef}.encounter-hand-grid{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.hand-option{align-items:center;gap:.4rem;display:flex}.hand-option .card-face-img{width:70px;height:98px}.confirm-burn{border-color:var(--indicator-warning);color:var(--indicator-warning);font-weight:700}.confirm-burn:not(:disabled):hover{background:#fff0f0}.escape-controls{z-index:4;border:2px solid var(--indicator-escape);background:var(--surface-page);width:250px;box-shadow:0 3px 12px var(--overlay-shadow);text-align:center;border-radius:8px;gap:7px;padding:14px;display:grid;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.escape-controls p,.escape-controls span{margin:0;font-size:12px}.escape-attempt{border-color:var(--indicator-escape);font-weight:700}.pursuit-panel{z-index:2;align-items:center;gap:8px;display:flex;position:absolute;top:50%;left:360px;transform:translate(-50%,-50%)}.pursuit-panel.pursuit-resolving{z-index:6}.pursuit-pile,.pursuit-discard{justify-content:center;align-items:center;gap:3px;min-width:58px;min-height:58px;display:flex}.pursuit-pile{position:relative;overflow:hidden}.pursuit-pile img,.pursuit-result img{object-fit:contain;width:58px;height:58px}.pursuit-discard{width:68px;height:68px;color:var(--text-muted);font-size:10px;position:relative}.pursuit-discard img{object-fit:contain;width:58px;height:58px;transform:translate(calc(var(--pursuit-discard-offset) * 2px), calc(var(--pursuit-discard-offset) * -1px));position:absolute;top:5px;left:0}.pursuit-discard-placeholder{border:1px solid var(--border-muted);border-radius:4px;width:58px;height:58px}.pursuit-result{border:2px solid var(--indicator-pursuit);background:var(--surface-page);width:156px;box-shadow:0 3px 12px var(--overlay-shadow);border-radius:8px;flex-direction:column;align-items:center;gap:10px;padding:14px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pursuit-result img{width:120px;height:120px}.pursuit-result button{border:1px solid var(--indicator-pursuit);background:var(--surface-page);width:120px;font:inherit;cursor:pointer;border-radius:4px;padding:6px 12px;font-weight:700}.memory-overlay{z-index:100;cursor:pointer;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.memory-overlay-card{flex-direction:column;align-items:center;gap:.8rem;display:flex}.memory-overlay-card svg{border-radius:12px;display:block}.memory-overlay-hint{color:#888;font-size:18px;font-style:italic}.obs-overlay{z-index:100;cursor:pointer;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.obs-overlay-card{cursor:default;border-radius:8px;flex-direction:column;align-items:center;display:flex}.obs-overlay-svg{display:block}.obs-overlay-card p{color:#ccc;font-size:18px}.obs-overlay-hint{color:#888;text-align:center;margin-top:4px;font-size:14px;font-style:italic}.rank-overlay{z-index:100;cursor:pointer;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rank-overlay-card{cursor:default;border-radius:8px;flex-direction:column;align-items:center;gap:12px;display:flex}.rank-overlay-svg{display:block}.rank-overlay-card p{color:#ccc;font-size:18px}.rank-overlay-hint{color:#888;text-align:center;font-size:14px;font-style:italic}.rank-confirm-btn{color:#fff;background:var(--indicator-confirm);cursor:pointer;border:none;border-radius:6px;padding:8px 28px;font-family:inherit;font-size:16px;font-weight:600}.rank-confirm-btn:hover{filter:brightness(1.2)}.solution-grid{background:0 0;outline:1px solid #888;grid-template-rows:repeat(6,48px);grid-template-columns:repeat(6,48px);gap:0;display:grid}.solution-grid-row{display:contents}.pg-cell{background:#ffffff94;border:1px solid #ccc;justify-content:center;align-items:center;font-size:12px;display:flex;position:relative}.pg-cell.pg-diagonal{background:#f0f0f0b8}.pg-clone-label{background:color-mix(in srgb, var(--clone-color) 20%, white);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.pg-clone-label img{object-fit:contain;width:34px;height:34px}.pg-cell.pg-upper{background:#f8f9fb94}.pg-cell.pg-lower{background:#ffffff94}.pg-zero{color:#999;font-size:20px;font-weight:300}.pg-lockout{color:var(--indicator-selected);text-shadow:0 0 1px var(--indicator-danger);font-size:34px;font-weight:900;line-height:1}.pg-symbols{width:100%;height:100%;position:relative}.pg-symbol{object-fit:contain;width:22px;height:22px;position:absolute}.pg-symbol:first-child:last-child{top:50%;left:50%;transform:translate(-50%,-50%)}.pg-symbol:first-child:nth-last-child(2){top:2px;left:2px}.pg-symbol:nth-child(2):last-child{bottom:2px;right:2px}.pg-symbol:first-child:nth-last-child(3){top:2px;left:2px}.pg-symbol:nth-child(2):nth-last-child(2){bottom:50%;right:50%;transform:translate(50%,50%)}.pg-symbol:nth-child(3):last-child{bottom:2px;right:2px}.pg-gap-text{color:#555;text-align:center;padding:2px;font-family:monospace;line-height:1.2}.pg-gap-arrow{font-size:28px;font-weight:900;line-height:1}.pg-gap-distance{font-size:17px;font-weight:700}.identity-solver{flex-direction:column;align-items:center;display:flex;position:relative}.identity-solver h3{color:#333;margin:0 0 .4rem}.identity-solver-grid{background:0 0;border:1px solid #888;grid-template-columns:44px repeat(6,48px) 112px;display:grid}.identity-solver-corner,.identity-solver-header,.identity-solver-result-header,.identity-solver-row-label,.identity-solver-result{box-sizing:border-box;border:1px solid #bbb;min-height:48px}.identity-solver-header,.identity-solver-row-label,.identity-solver-result-header,.identity-solver-result{justify-content:center;align-items:center;font-weight:700;display:flex}.identity-solver-header{flex-direction:column;font-size:.7rem}.identity-solver-header img{object-fit:contain;width:26px;height:26px}.identity-solver-row-label{background:color-mix(in srgb, var(--clone-color) 20%, white)}.identity-solver-exclusion{cursor:pointer;padding:0;position:relative}.identity-solver-exclusion.excluded{color:#b4232d;box-shadow:inset 0 0 0 3px #b4232d}.identity-solver-exclusion.excluded span{font-size:1rem;font-weight:900;position:absolute;bottom:0;right:2px}.identity-solver-row-label.excluded,.identity-solver-cell-wrap.row-excluded,.identity-solver-result.row-excluded{border-top:3px solid #b4232d;border-bottom:3px solid #b4232d}.identity-solver-exclusion.excluded{border-left:3px solid #b4232d}.identity-solver-result.row-excluded{border-right:3px solid #b4232d}.identity-solver-row-label img{object-fit:contain;width:34px;height:34px}.identity-solver-result-header{padding:0 6px}.identity-solver-row{display:contents}.identity-solver-cell-wrap{width:48px;height:48px;position:relative}.identity-solver-cell{color:#777;cursor:pointer;background:#ffffff94;border:1px solid #bbb;width:100%;height:100%;font-size:1.2rem}.identity-solver-cell.must{color:#111;background:#eef5ff;font-weight:800}.identity-solver-cell.cannot{color:#555;background:#f4f4f4}.identity-solver-cell.implied{color:#777;background:repeating-linear-gradient(135deg,#fff,#fff 5px,#eee 5px 10px);font-style:italic}.identity-solver-cell:focus-visible,.solver-popover button:focus-visible{outline-offset:-3px;outline:3px solid #111}.identity-solver-result{text-align:center;flex-wrap:wrap;gap:3px;padding:0 4px;font-size:.72rem}.identity-solver-result-traits{gap:2px;display:inline-flex}.identity-solver-result-traits img{object-fit:contain;width:24px;height:24px}.identity-solver-result.unique{border:3px double #111}.identity-solver-result.ambiguous{border-style:dashed}.solver-popover{z-index:20;background:#fff;border:2px solid #555;border-radius:6px;width:210px;padding:8px;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);box-shadow:0 5px 16px #0003}.solver-popover-reason{margin:0 0 8px;font-size:.78rem}.solver-popover-actions{gap:4px;display:flex}.solver-popover.icon-only{width:150px}.solver-popover.icon-only .solver-popover-actions button{min-width:40px;font-size:1.1rem;font-weight:800}.solver-popover.icon-only .solver-choice-must{color:#237a3b}.solver-popover.icon-only .solver-choice-cannot{color:#b4232d}.solver-popover.icon-only .solver-choice-clear{color:#2463a6}.solver-popover button{color:#222;cursor:pointer;background:#fafafa;border:1px solid #777;border-radius:4px;flex:1;min-height:38px;font-size:.7rem}.solver-popover button:disabled{color:#999;cursor:not-allowed}.identity-solver-tibbs-icon{font-size:1rem}.launch-code-solver{flex-direction:column;align-items:center;display:flex;position:relative}.launch-code-solver h3{color:#333;margin:0 0 .4rem}.launch-code-grid{background:0 0;border:1px solid #888;grid-template-columns:44px repeat(6,48px) 56px;display:grid}.launch-code-corner,.launch-code-header,.launch-code-resolved-header,.launch-code-position-label,.resolved-code-cell{box-sizing:border-box;border:1px solid #bbb;min-height:48px}.launch-code-color-column{background:color-mix(in srgb, var(--clone-color) 20%, white)}.launch-code-header img,.resolved-code-cell img{object-fit:contain;width:32px;height:32px}.launch-code-header,.launch-code-resolved-header,.launch-code-position-label,.resolved-code-cell{justify-content:center;align-items:center;font-weight:700;display:flex}.launch-code-resolved-header{text-align:center;padding:0 2px;font-size:.65rem;line-height:1.05}.launch-code-position-row{display:contents}.launch-code-cell-wrap{width:48px;height:48px;position:relative}.launch-code-cell{color:#777;cursor:pointer;background:0 0;border:1px solid #bbb;width:100%;height:100%;font-size:1.2rem}.launch-code-cell.must{color:#111;background:#eef5ff;font-weight:800}.launch-code-cell.cannot{color:#555;background:#f4f4f4}.launch-code-cell.implied{color:#777;background:repeating-linear-gradient(135deg,#fff,#fff 5px,#eee 5px 10px);font-style:italic}.launch-code-color-column .launch-code-cell.must{background:color-mix(in srgb, var(--clone-color) 38%, white)}.launch-code-color-column .launch-code-cell.cannot{background:color-mix(in srgb, var(--clone-color) 12%, white)}.launch-code-color-column .launch-code-cell.implied{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--clone-color) 8%, white), color-mix(in srgb, var(--clone-color) 8%, white) 5px, color-mix(in srgb, var(--clone-color) 20%, white) 5px, color-mix(in srgb, var(--clone-color) 20%, white) 10px)}.launch-code-cell:focus-visible{outline-offset:-3px;outline:3px solid #111}.resolved-code-cell{font-size:1.1rem}.captain-log{isolation:isolate;background:#fcfbf5;border-radius:14px;min-width:max-content;padding:.8rem;position:relative}.captain-log-background{z-index:0;object-fit:fill;pointer-events:none;border-radius:14px;width:calc(100% + 44px);height:100%;position:absolute;inset:0 0 0 -44px}.captain-log>h2{z-index:1;margin:0 0 .75rem;position:relative}.captain-log-surface{z-index:1;grid-template-rows:max-content max-content;grid-template-columns:max-content max-content;align-items:start;gap:.75rem;display:grid;position:relative}.captain-log-notes{box-sizing:border-box;width:390px;min-width:390px;max-width:390px;min-height:132px;margin:1rem 0 0 -44px;display:block}.captain-log-solution{grid-area:1/1}.captain-log-solution .solution-grid{margin:48px 0 0 -44px}.captain-log-identity{grid-area:1/2;margin-left:-16px}.captain-log-launch{grid-area:2/1;justify-self:start}.captain-log-sudoku{grid-area:2/2}.captain-log-launch .launch-code-solver{align-items:flex-start}.captain-log-launch .launch-code-grid{margin-left:-44px}.log-section{flex-direction:column;align-items:center;display:flex;position:relative}.log-section h3{color:#333;margin:0 0 .4rem;font-size:1.3rem}.sudoku-header-row{align-items:center;gap:12px;margin-bottom:.4rem;display:flex}.sudoku-header-row h3{margin:0}.sudoku-grid{background-color:#fff;background-image:url(/captain-crash-digital/assets/sudoku-background-BfuxND0j.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;border:2px solid #000;grid-template-rows:repeat(6,64px);grid-template-columns:repeat(6,64px);gap:0;display:grid}.sudoku-cell{font:inherit;background:#ffffffad;border:1px solid #999;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.sudoku-icon{object-fit:contain;width:42px;height:42px}.sudoku-cell.target:before{content:"";pointer-events:none;border:2px dashed #000;position:absolute;inset:2px}.sudoku-cell.block-right{border-right:2px solid #000}.sudoku-cell.block-bottom{border-bottom:2px solid #000}.sudoku-cell.revealed{color:#1a6e1a;background:#e8f5e8d6;font-weight:700}.sudoku-cell.deduced{color:#1a4a9e;cursor:pointer;background:#e8eef5d6}.sudoku-cell.empty{color:#bbb;cursor:pointer}.sudoku-cell.duplicate{border-color:#c33}.sudoku-cell.deduced.duplicate{color:#c33;background:#ffe0e0}.sudoku-cell.deduced.duplicate .sudoku-icon{filter:brightness(0)invert(25%)sepia(60%)saturate(3200%)hue-rotate(350deg)brightness(90%)contrast(95%)}.sudoku-cell.revealed.duplicate{color:#1a6e1a;background:#e8f5e8;border-color:#c33}.palette-popover{z-index:10;background:#fff;border:1px solid #999;border-radius:8px;gap:6px;margin-top:6px;padding:12px;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000026}.palette-btn{cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:6px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.palette-icon{object-fit:contain;width:36px;height:36px}.palette-btn:hover{background:#e0e0e0;border-color:#999}.palette-clear{color:#c33;font-size:22px}.tibbs-traits-row{align-items:center;gap:6px;margin-top:8px;display:flex}.tibbs-traits-label{color:#555;white-space:nowrap;font-size:16px;font-weight:600}.tibbs-trait-cell{background:#fafafa;border:1px solid #999;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.clear-sudoku-btn{color:#c33;cursor:pointer;background:#fff;border:1px solid #c33;border-radius:4px;padding:4px 12px;font-family:monospace;font-size:13px}.clear-sudoku-btn:hover{background:#ffe0e0}.clear-sudoku-btn.confirm{color:#fff;background:#c33;border-color:#911;font-weight:700}.clear-sudoku-btn.confirm:hover{background:#911}.notes-area{color:#333;resize:vertical;box-sizing:border-box;background:#fff;border:1px solid #ccc;border-radius:4px;width:100%;max-width:280px;min-height:96px;margin-top:12px;padding:10px;font-family:monospace;font-size:18px}.notes-area:focus{border-color:#666;outline:none}.notes-area::placeholder{color:#bbb}.auto-added{z-index:2;outline:3px solid var(--indicator-legal);outline-offset:-4px;box-shadow:inset 0 0 0 999px var(--indicator-legal-shadow);position:relative}.td-observation-section{position:relative}.td-observation-section.is-open{z-index:50}.td-observation-trigger{appearance:none;color:inherit;cursor:pointer;padding:0}.td-observation-trigger:hover,.td-observation-trigger:focus-visible{outline-offset:2px;outline:3px solid #5f4a34}.td-observation-hint{color:#62594f;font:10px/1.2 system-ui,sans-serif}.td-observation-fan{z-index:50;background:#fcfbf5;border:2px solid #9a8b76;border-radius:10px;width:380px;max-width:calc(100vw - 2rem);max-height:calc(100vh - 1.5rem);padding:.7rem;position:absolute;bottom:2.25rem;left:calc(100% + .75rem);overflow:auto;box-shadow:0 8px 22px #2d231947}.td-observation-fan[hidden]{display:none}.td-observation-fan-header{color:#38332d;justify-content:space-between;align-items:baseline;gap:.5rem;margin:0 0 .55rem;font-family:system-ui,sans-serif;display:flex}.td-observation-fan-header h3{margin:0;font-size:.95rem;line-height:1.25}.td-observation-fan-header>span{color:#62594f;flex:none;font-size:.75rem;font-weight:700}.td-observation-fan-grid{grid-template-columns:repeat(5,66px);grid-auto-rows:76px;gap:.35rem 0;padding:.15rem .2rem .25rem;display:grid}.td-observation-fan-tile{width:76px;min-width:0;height:76px;transform:rotate(var(--tile-tilt,0deg));background:#fff;border:1px solid #b6aa99;border-radius:5px;margin-right:-10px;position:relative;overflow:hidden;box-shadow:0 2px 3px #2d231933}.td-observation-fan-tile:nth-child(5n+1){--tile-tilt:-4deg;z-index:1}.td-observation-fan-tile:nth-child(5n+2){--tile-tilt:-2deg;z-index:2;translate:0 1px}.td-observation-fan-tile:nth-child(5n+3){z-index:3}.td-observation-fan-tile:nth-child(5n+4){--tile-tilt:2deg;z-index:4;translate:0 1px}.td-observation-fan-tile:nth-child(5n){--tile-tilt:4deg;z-index:5}.td-observation-fan-tile img{object-fit:cover;width:100%;height:100%;display:block}.td-observation-fan-tile>span{color:#38332d;text-align:center;justify-content:center;align-items:center;width:100%;height:100%;padding:.25rem;font:600 .65rem/1.2 system-ui,sans-serif;display:flex}.td-observation-empty{color:#62594f;text-align:center;margin:0;padding:1.5rem .5rem;font:.85rem/1.4 system-ui,sans-serif}.tile-display{flex-direction:column;gap:1rem;min-width:160px;padding:.5rem;font-family:monospace;display:flex}.td-section{flex-direction:column;align-items:center;gap:2px;display:flex}.td-label{color:#888;font-size:14px;font-weight:700}.td-card{border:2px solid var(--border-muted);background:#fafafa;border-radius:6px;justify-content:center;align-items:center;width:100px;height:70px;font-size:16px;font-weight:700;display:flex;position:relative;overflow:hidden}.td-card-square{width:120px;height:120px}.card-back{border-color:#999}.card-back-img{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.td-card-deck{width:70px;height:97px}.tile-friend{background:#fef8ee}.tile-img{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.tile-tibbs{background:#eff}.tile-identity{background:#fef}.tile-obs{background:#eef}.go-reveal{border-top:1px solid #ddd;margin-top:.8rem;margin-bottom:.3rem;padding-top:.65rem}.go-reveal h3{color:#333;margin:0 0 .8rem;font-size:1.2rem}.go-reveal-body{justify-content:center;align-items:flex-start;gap:1.2rem;display:flex}.go-reveal-tile{flex-direction:column;align-items:center;gap:.4rem;display:flex}.go-reveal-tile-label{color:#888;font-size:.8rem;font-weight:700}.go-tile-frame{border:2px solid #ccc;border-radius:8px;display:inline-block;position:relative;overflow:hidden}.go-tile-img{object-fit:cover;width:240px;height:240px;display:block}.go-target-rect{pointer-events:none;background:#ff88002e;border:3px solid #e80;border-radius:2px;position:absolute;box-shadow:inset 0 0 0 2px #ff88004d}.go-tibbs-summary{border:3px solid #ccc;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;margin-top:1rem;padding:.4rem 1rem;display:flex}.go-tibbs-summary.go-tibbs-win{background:#e8f5e9;border-color:#2a7d2a}.go-tibbs-summary.go-tibbs-loss{background:#fff0f0;border-color:#c44}.go-label{color:#555;font-size:.9rem}.go-sudoku-icon{object-fit:contain;width:24px;height:24px}.go-clone-char{object-fit:contain;border-radius:3px;width:28px;height:28px}.go-tile-deduction{color:#666;justify-content:center;align-items:center;gap:.3rem;min-height:1.8rem;font-size:.7rem;display:flex}.go-compact-value{align-items:center;gap:.15rem;display:flex}.go-result-mark{font-size:.6rem;font-weight:700}.go-result-mark.correct{color:#216e39}.go-result-mark.incorrect{color:#b42318}.go-unknown,.go-incomplete{color:#777;font-size:.7rem}.go-launch-deduction{flex-direction:column;gap:.2rem}.go-code-dots{gap:.45rem;display:flex}.go-code-result{display:inline-flex;position:relative}.go-code-dot{background:var(--clone-color);border:1px solid #555;border-radius:50%;width:14px;height:14px}.go-code-dot.unknown{background:#fff;border-style:dashed}.go-mini-correct,.go-mini-incorrect{text-shadow:0 0 2px #fff,0 0 2px #fff;font-size:.55rem;font-weight:800;position:absolute;bottom:-6px;right:-5px}.go-mini-correct{color:#216e39}.go-mini-incorrect{color:#b42318}.app,.app *{box-sizing:border-box}.screenshot-capture .temporarily-hidden,.screenshot-capture .ring-hud,.screenshot-capture .improvise-controls,.screenshot-capture .pursuit-result button,.screenshot-capture .escape-controls button,.screenshot-capture .encounter-picker button,.screenshot-capture .rank-confirm-btn,.screenshot-capture .rank-picker-cancel,.screenshot-capture .card-undo,.screenshot-capture .card-undo-btn,.screenshot-capture .dir-popup{display:none!important}.screenshot-toast{z-index:1000;color:#222;background:#fff;border:1px solid #777;border-radius:.5rem;max-width:min(32rem,100vw - 2rem);padding:.75rem 1rem;font:600 .9rem/1.3 system-ui,sans-serif;position:fixed;bottom:1rem;right:1rem;box-shadow:0 3px 12px #00000038}html,body,#root{background:#fff;min-width:100%;height:100%;margin:0;overflow:hidden}.app{background:#fff;flex-direction:column;align-items:flex-start;gap:.75rem;width:100vw;max-width:none;height:100vh;margin:0;padding:.75rem;font-family:system-ui,sans-serif;display:flex;overflow:auto}.app-body{grid-template-columns:160px 900px max-content;justify-content:flex-start;align-items:flex-start;gap:.35rem;width:max-content;display:grid}.app-left{flex-direction:column;align-items:center;gap:.8rem;display:flex}.app-center{flex-direction:column;align-items:center;gap:.75rem;width:900px;display:flex}.app-right{flex-direction:column;align-items:center;min-width:max-content;margin-top:-3.25rem;display:flex}.app h1{text-align:center;margin:0;font-size:1.9rem}.app-header{align-items:center;gap:1.2rem;display:flex;position:sticky;left:0}.new-game-btn{cursor:pointer;color:#333;background:#f5f5f5;border:1px solid #999;border-radius:4px;padding:.3rem .9rem;font-family:inherit;font-size:1rem}.new-game-btn:hover{background:#e0e0e0;border-color:#666}.card-back-count{color:#fff;background:#000000b3;border-radius:3px;padding:1px 5px;font-size:12px;font-weight:700;line-height:1.3;position:absolute;bottom:2px;right:4px}.game-over-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:auto}.game-over-card{text-align:center;transform-origin:50%;background:#fff;border-radius:12px;max-width:900px;padding:2rem 3rem;transform:scale(1.6);box-shadow:0 8px 32px #0000003d}.game-over-card.win{border:3px solid #2a7d2a}.game-over-card.loss{border:3px solid #c44}.game-over-card h2{margin:0 0 .35rem;font-size:1.8rem}.game-over-card.win h2{color:#2a7d2a}.game-over-card.loss h2{color:#c44}.loss-reason{background:#fff0f0;border-radius:6px;margin-bottom:.3rem;padding:.25rem .8rem;font-size:1.1rem}.game-over-card p{color:#555;margin:.25rem 0 .5rem;line-height:1.4}.game-over-card .new-game-btn{padding:.5rem 1.4rem;font-size:1.1rem}
