:root{--bg:#06060f;--bg-2:#0a0a18;--surface:#0f0e1f;--surface-2:#151428;--surface-3:#1c1a33;--surface-hi:#241f3f;--border:#221e3a;--border-lit:#3d3560;--border-glow:#7c3aed;--border-gold:#b45309;--text-1:#e2d9f3;--text-2:#a695c4;--text-3:#6b5b8a;--text-4:#352d50;--amber:#fbbf24;--amber-deep:#d97706;--amber-dim:#92400e;--amber-glow:#fbbf242e;--amber-glow-lg:#fbbf241a;--cyan:#a855f7;--cyan-deep:#7c3aed;--cyan-dim:#3b1f6e;--cyan-glow:#a855f72e;--magenta:#f472b6;--magenta-deep:#be185d;--danger:#f472b6;--danger-glow:#f472b62e;--success:#a3e635;--success-glow:#a3e63529;--gold:var(--amber);--gold-dim:var(--amber-deep);--gold-deep:var(--amber-dim);--gold-glow:var(--amber-glow);--gold-glow-lg:var(--amber-glow-lg);--purple:var(--cyan);--purple-mid:var(--cyan-deep);--purple-dim:var(--cyan-dim);--purple-glow:var(--cyan-glow);--rose:var(--magenta);--teal:var(--cyan);--green:var(--success);--green-glow:var(--success-glow);--font-display:"VT323", ui-monospace, monospace;--font-pixel:"Press Start 2P", ui-monospace, monospace;--font-heading:"Silkscreen", ui-monospace, monospace;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--text-xs:10px;--text-sm:12px;--text-base:14px;--text-md:16px;--text-lg:20px;--text-xl:clamp(24px, 3.5vw, 40px);--text-2xl:clamp(32px, 5vw, 60px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius-sm:2px;--radius:4px;--radius-lg:6px;--radius-xl:10px;--radius-pill:100px;--shadow-hard:3px 3px 0 0 #0009;--shadow-hard-lg:5px 5px 0 0 #0000008c;--shadow-amber:3px 3px 0 0 var(--amber-deep);--shadow-amber-lg:5px 5px 0 0 var(--amber-deep);--shadow-cyan:3px 3px 0 0 var(--cyan-dim);--shadow-card:2px 2px 0 0 #00000080;--shadow-modal:8px 8px 0 0 #000000b3;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-snap:cubic-bezier(.4, 0, .2, 1);--dur-snap:.12s;--dur-fast:.2s;--dur-base:.26s;--dur-slow:.4s;--dur-reveal:.54s;--touch-min:44px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{max-width:100%;overflow-x:hidden}body{background-color:var(--bg);color:var(--text-1);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 1px 1px,#e2d9f309 1px,#0000 1px),radial-gradient(70% 45% at 8% 0,#7c3aed1f 0%,#0000 65%),radial-gradient(60% 50% at 92% 100%,#fbbf2412 0%,#0000 65%);background-size:24px 24px,auto,auto;font-weight:400;line-height:1.65;overflow-x:hidden}body:after{content:"";z-index:9999;pointer-events:none;background:repeating-linear-gradient(#0000 0 3px,#00000021 3px 4px);position:fixed;inset:0}button{font-family:var(--font-heading);cursor:pointer;color:inherit;background:0 0;border:none}input{font-family:var(--font-body)}::selection{background:var(--amber);color:var(--bg)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-lit);border-radius:0}.app-root{min-height:100dvh;position:relative}.particle{pointer-events:none;z-index:0;will-change:transform, opacity;border-radius:50%;animation:linear infinite floatUp;position:fixed}@keyframes floatUp{0%{opacity:0;transform:translateY(100vh)scale(1)}8%{opacity:1}88%{opacity:.5}to{opacity:0;transform:translateY(-12vh)scale(.75)}}.main-content{z-index:1;min-height:100dvh;position:relative}.hero-section{text-align:center;padding:var(--sp-12) var(--sp-5) var(--sp-10);width:100%;max-width:100%}.hero-logo{width:clamp(110px,18vw,180px);height:auto;margin:0 auto var(--sp-3);image-rendering:auto;filter:drop-shadow(4px 4px #0006);-webkit-user-select:none;user-select:none;display:block}.hero-mirror{flex-direction:row;justify-content:center;align-items:center;gap:0;max-width:100%;animation:7s ease-in-out infinite heroFloat;display:flex;position:relative;overflow:visible}@keyframes heroFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.hero-mirror:before{content:"";z-index:0;pointer-events:none;filter:blur(10px);background:radial-gradient(55% 70% at 25%,#fbbf2424 0%,#0000 60%),radial-gradient(55% 70% at 75%,#a855f729 0%,#0000 60%),radial-gradient(30% 80%,#ffffff0f 0%,#0000 70%);animation:5.4s ease-in-out infinite heroHaloPulse;position:absolute;inset:-32% -8%}@keyframes heroHaloPulse{0%,to{opacity:.85}50%{opacity:1}}.hero-mirror-line{z-index:2;background:linear-gradient(#0000 0%,#a855f759 10%,#fbbf24e6 50%,#a855f759 90%,#0000 100%);flex-shrink:0;align-self:stretch;width:2px;margin:0 clamp(10px,2vw,28px);position:relative;box-shadow:0 0 8px 2px #fbbf248c,0 0 22px 4px #a855f74d,0 0 44px 8px #a855f71f}.hero-mirror-line:after{content:"";mix-blend-mode:screen;pointer-events:none;background:linear-gradient(#0000 0% 38%,#fff6d5d9 50%,#0000 62% 100%) 0 -130%/100% 260%;animation:3.6s ease-in-out infinite mirrorShimmer;position:absolute;inset:0}@keyframes mirrorShimmer{0%{background-position:0 -130%}to{background-position:0 130%}}.hero-mirror-glow{z-index:3;background:radial-gradient(circle,#fff7ed 0%,#fde68a 30%,#f59e0b 60%,#0000 100%);border-radius:50%;width:12px;height:12px;animation:2.6s ease-in-out infinite orbPulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px 3px #fbbf24d9,0 0 28px 8px #a855f773,0 0 52px 14px #a855f72e}@keyframes orbPulse{0%,to{filter:brightness()saturate();transform:translate(-50%,-50%)scale(1)}50%{filter:brightness(1.35)saturate(1.15);transform:translate(-50%,-50%)scale(1.35)}}.hero-brand{font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;z-index:2;background:linear-gradient(#fef9c3 0%,#fde68a 18%,#fbbf24 45%,#f59e0b 75%,#b45309 100%);color:#0000;-webkit-text-fill-color:transparent;filter:drop-shadow(3px 3px 0 var(--amber-dim)) drop-shadow(6px 6px 0 var(--bg-2)) drop-shadow(0 0 18px #fbbf248c);-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,12vw,120px);font-weight:400;line-height:.9;position:relative}.hero-reflection{font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;z-index:2;background:linear-gradient(#f5f3ff 0%,#d8b4fe 18%,#c084fc 45%,#a855f7 75%,#7c3aed 100%);color:#0000;-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px #7c3aed80)drop-shadow(0 0 16px #a855f78c);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,12vw,120px);font-weight:400;line-height:.9;display:block;position:relative;-webkit-mask-image:linear-gradient(90deg,#000000f2 0%,#000000a6 45%,#00000038 80%,#0000 100%);mask-image:linear-gradient(90deg,#000000f2 0%,#000000a6 45%,#00000038 80%,#0000 100%)}.hero-tagline{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--amber);margin-top:var(--sp-5);font-size:clamp(10px,1.2vw,13px);font-weight:400}.hero-tagline:before{content:"// ";color:var(--text-3)}.hero-desc{font-family:var(--font-body);font-size:var(--text-md);color:var(--text-2);margin-top:var(--sp-4);max-width:540px;margin-left:auto;margin-right:auto;line-height:1.7}.setup-page{max-width:920px;padding-bottom:var(--sp-4);margin:0 auto}.config-section{padding:0 var(--sp-8);margin-bottom:var(--sp-12)}.section-label{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--sp-5);font-weight:700}.section-label:before{content:"> ";color:var(--amber);font-weight:700}.howto-section{padding:var(--sp-6) var(--sp-8) var(--sp-12)}.howto-grid{gap:var(--sp-3);margin-top:var(--sp-5);grid-template-columns:repeat(4,1fr);display:grid}.howto-card{text-align:left;padding:var(--sp-5) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:relative}.howto-num{font-family:var(--font-display);color:var(--amber);margin-bottom:var(--sp-3);letter-spacing:.04em;font-size:18px;font-weight:700;display:block}.howto-num:before{content:"0";opacity:.4}.howto-icon{color:var(--cyan);margin-bottom:var(--sp-3);opacity:.85;display:flex}.howto-text{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-2);line-height:1.55;display:block}.field-group{margin-bottom:var(--sp-8)}.field-label{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.field-label svg{color:var(--amber);flex-shrink:0}.field-label span{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);font-weight:700}.oracle-key-input{width:100%;height:var(--touch-min);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);padding:0 var(--sp-4);font-family:var(--font-mono);font-size:var(--text-sm);transition:border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);outline:none}.oracle-key-input:focus{border-color:var(--amber);background:var(--surface-2);box-shadow:var(--shadow-amber);transform:translate(-1px,-1px)}.oracle-key-input::placeholder{color:var(--text-4);font-family:var(--font-mono)}.oracle-key-input:focus-visible{outline:none}.api-key-row{gap:var(--sp-2);align-items:stretch;display:flex}.api-key-row .oracle-key-input{flex:1;min-width:0}.api-key-clear{padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-3);font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast) var(--ease-snap), border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);flex-shrink:0;font-size:10px;font-weight:700}.api-key-clear:hover{color:var(--magenta);border-color:var(--magenta);background:#f472b60f}.api-key-clear:focus-visible{outline:2px solid var(--magenta);outline-offset:2px}.api-key-hint{font-family:var(--font-mono);color:var(--text-4);margin-top:var(--sp-2);font-size:10px;line-height:1.5}.cat-grid{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.cat-card{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5) var(--sp-4);min-height:var(--touch-min);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-3);cursor:pointer;text-align:left;transition:border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap), color var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap), transform var(--dur-fast) var(--ease-snap);flex-direction:column;display:flex;position:relative}.cat-card:hover{background:var(--surface-2);border-color:var(--border-lit);color:var(--text-1);box-shadow:var(--shadow-card);transform:translate(-1px,-1px)}.cat-card:active{box-shadow:none;transform:translate(0)}.cat-card.selected{border-color:var(--amber);background:var(--surface-2);color:var(--amber);box-shadow:var(--shadow-amber);transform:translate(-2px,-2px)}.cat-card:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.cat-card-icon{color:var(--cyan);transition:color var(--dur-fast);display:flex}.cat-card.selected .cat-card-icon{color:var(--amber)}.cat-card-label{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:inherit;font-weight:700;line-height:1.3}.cat-card-lore{font-family:var(--font-body);color:var(--text-3);transition:color var(--dur-fast);font-size:12px;line-height:1.45}.cat-card:hover .cat-card-lore,.cat-card.selected .cat-card-lore{color:var(--text-2)}.diff-row{gap:var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.diff-pill{justify-content:center;align-items:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-2);min-height:var(--touch-min);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-3);cursor:pointer;width:100%;min-width:0;transition:border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap), color var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap), transform var(--dur-fast) var(--ease-snap);flex-direction:column;display:flex;overflow:hidden}.diff-pill:hover{border-color:var(--border-lit);color:var(--text-1);background:var(--surface-2);box-shadow:var(--shadow-card);transform:translate(-1px,-1px)}.diff-pill.selected{background:var(--surface-2);border-color:var(--amber);color:var(--amber);box-shadow:var(--shadow-amber);transform:translate(-2px,-2px)}.diff-pill:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.diff-label{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:inherit;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:700;overflow:hidden}.diff-q{font-family:var(--font-mono);color:inherit;opacity:.55;letter-spacing:.04em;font-size:9px;font-weight:400}.diff-g{font-family:var(--font-mono);color:var(--amber);opacity:.7;letter-spacing:.04em;font-size:9px;font-weight:400}.btn-start{width:100%;max-width:420px;height:60px;margin:var(--sp-8) auto 0;background:var(--amber);border:2px solid var(--amber-deep);border-radius:var(--radius);color:var(--bg);font-family:var(--font-pixel);letter-spacing:.05em;text-transform:uppercase;justify-content:center;align-items:center;gap:var(--sp-3);box-shadow:var(--shadow-hard);transition:transform var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);font-size:11px;font-weight:400;display:flex}.btn-start:hover:not(:disabled){box-shadow:var(--shadow-hard-lg);transform:translate(-2px,-2px)}.btn-start:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}.btn-start:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.btn-start:disabled{background:var(--surface-2);border-color:var(--border);color:var(--text-3);cursor:not-allowed;box-shadow:none}.btn-start svg{color:inherit}.btn-custom-game{width:100%;max-width:420px;margin:var(--sp-4) auto 0;padding:14px var(--sp-4);border:1.5px dashed var(--cyan);border-radius:var(--radius);color:var(--text-1);cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast) var(--ease-snap);background:0 0;flex-direction:column;align-items:center;gap:4px;display:flex}.btn-custom-game-label{font-family:var(--font-heading);letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);font-size:12px;font-weight:700}.btn-custom-game-sub{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.02em;font-size:11px}.btn-custom-game:hover{border-color:var(--amber);background:#fbbf240a;transform:translateY(-1px)}.btn-custom-game:hover .btn-custom-game-label{color:var(--amber)}.btn-custom-game:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.loading-dots{align-items:center;gap:7px;display:flex}.loading-dots span{opacity:.25;background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite dotFlare}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.16s}.loading-dots span:nth-child(3){animation-delay:.32s}@keyframes dotFlare{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.setup-footer{text-align:center;padding:var(--sp-6) var(--sp-8) var(--sp-4);align-items:center;gap:var(--sp-4);flex-direction:column;display:flex}.setup-credit{font-family:var(--font-mono);color:var(--text-4);letter-spacing:.04em;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:11px;display:flex}.setup-about-link{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);cursor:pointer;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease-snap);font-weight:500}.setup-about-link:before{content:"?_ ";color:var(--text-4)}.setup-about-link:hover{color:var(--amber)}.setup-about-link:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.setup-sound-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-3);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast) var(--ease-snap), border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:10px;font-weight:600;display:inline-flex}.setup-sound-toggle:hover{color:var(--cyan);border-color:var(--cyan);background:#a855f70f}.setup-sound-toggle:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.setup-sound-toggle[aria-pressed=false]{color:var(--text-4)}.setup-sound-toggle[aria-pressed=false]:hover{color:var(--magenta);border-color:var(--magenta);background:#f472b60d}.custom-page{max-width:760px;padding:var(--sp-6) var(--sp-6) var(--sp-16);margin:0 auto}.custom-header{text-align:center;margin-bottom:var(--sp-8);position:relative}.custom-header .game-back{position:absolute;top:0;left:0}.custom-title{font-family:var(--font-display);color:var(--amber);letter-spacing:.04em;text-shadow:2px 2px 0 var(--amber-dim);margin-top:var(--sp-4);font-size:clamp(28px,5vw,44px);font-weight:400}.custom-subtitle{font-family:var(--font-body);color:var(--text-2);margin-top:var(--sp-2);max-width:520px;margin-left:auto;margin-right:auto;font-size:14px;line-height:1.55}.custom-step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-5);position:relative}.custom-step-label{align-items:center;gap:var(--sp-3);font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--sp-4);font-size:11px;font-weight:700;display:flex}.custom-step-num{border:1px solid var(--amber);width:22px;height:22px;color:var(--amber);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.custom-search-bar{position:relative}.custom-search-input{background:var(--bg-2);border:1px solid var(--border-lit);border-radius:var(--radius);width:100%;height:52px;color:var(--text-1);padding:0 var(--sp-5) 0 var(--sp-4);font-family:var(--font-mono);transition:border-color var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap);outline:none;font-size:16px}.custom-search-input:focus{border-color:var(--amber);box-shadow:var(--shadow-amber);transform:translate(-1px,-1px)}.custom-search-spinner{border:2px solid var(--border-lit);border-top-color:var(--amber);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite customSpin;position:absolute;top:50%;right:14px;transform:translateY(-50%)}@keyframes customSpin{to{transform:translateY(-50%)rotate(360deg)}}.custom-search-err{font-family:var(--font-mono);color:var(--magenta);margin-top:var(--sp-2);font-size:12px}.custom-results{margin-top:var(--sp-3);flex-direction:column;gap:8px;max-height:440px;display:flex;overflow-y:auto}.custom-result{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;transition:border-color var(--dur-fast), transform var(--dur-fast), background var(--dur-fast);display:flex}.custom-result:hover{border-color:var(--cyan);background:var(--surface-2);transform:translate(-1px,-1px)}.custom-result:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.custom-result-thumb{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border-lit);width:56px;height:56px;color:var(--text-3);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.custom-result-thumb img{object-fit:cover;width:100%;height:100%}.custom-result-meta{flex:1;min-width:0}.custom-result-title{font-family:var(--font-body);color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.custom-result-desc{font-family:var(--font-mono);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.custom-hint{font-family:var(--font-mono);color:var(--text-4);margin-top:var(--sp-4);font-size:11px;line-height:1.55}.custom-selected{align-items:center;gap:var(--sp-4);padding:var(--sp-3);background:var(--bg-2);border:1px solid var(--amber-dim);border-radius:var(--radius);margin-bottom:var(--sp-5);display:flex}.custom-selected-thumb{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border-lit);width:80px;height:80px;color:var(--text-3);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.custom-selected-thumb img{object-fit:cover;width:100%;height:100%}.custom-selected-meta{flex:1;min-width:0}.custom-selected-title{font-family:var(--font-display);color:var(--amber);text-shadow:1px 1px 0 var(--amber-dim);font-size:22px}.custom-selected-desc{font-family:var(--font-mono);color:var(--text-3);margin-top:2px;font-size:11px;line-height:1.4}.custom-selected-cat{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:nowrap;display:inline-flex;overflow:hidden}.custom-selected-cat-label{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);white-space:nowrap;flex-shrink:0;font-size:9px}.custom-selected-cat-value{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--cyan);border-radius:var(--radius-sm);transition:opacity var(--dur-fast);white-space:nowrap;background:#a855f714;padding:2px 8px;font-size:10px;font-weight:700}.custom-selected-cat-value.loading{opacity:.5;animation:.9s ease-in-out infinite catPulse}@keyframes catPulse{0%,to{opacity:.5}50%{opacity:1}}.custom-change{border:1px solid var(--border-lit);border-radius:var(--radius-sm);color:var(--text-2);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast);background:0 0;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:10px;font-weight:700;display:inline-flex}.custom-change:hover{color:var(--magenta);border-color:var(--magenta);background:#f472b60f}.custom-budget-row{gap:var(--sp-5);margin-bottom:var(--sp-5);grid-template-columns:1fr 1fr;display:grid}@media (width<=600px){.custom-budget-row{gap:var(--sp-4);grid-template-columns:1fr}}.custom-budget-label{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--sp-2);font-size:10px;display:block}.custom-budget-options{flex-wrap:wrap;gap:6px;display:flex}.custom-pill{border:1px solid var(--border-lit);border-radius:var(--radius-sm);background:var(--bg-2);min-width:44px;color:var(--text-2);font-family:var(--font-mono);cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast);padding:8px 14px;font-size:14px;font-weight:700}.custom-pill:hover{color:var(--text-1);border-color:var(--cyan)}.custom-pill.selected{color:var(--bg);border-color:var(--amber);background:var(--amber)}.custom-pill:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.custom-generate{border:2px solid var(--amber);border-radius:var(--radius);background:var(--amber);width:100%;color:var(--bg);font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:var(--sp-3);cursor:pointer;box-shadow:var(--shadow-amber);transition:transform var(--dur-fast), box-shadow var(--dur-fast);padding:14px;font-size:11px;font-weight:400;display:inline-flex}.custom-generate:hover:not(:disabled){box-shadow:var(--shadow-amber-lg);transform:translate(-2px,-2px)}.custom-generate:active{box-shadow:none;transform:translate(2px,2px)}.custom-generate:disabled{opacity:.6;cursor:not-allowed}.custom-build-err{font-family:var(--font-mono);color:var(--magenta);margin-top:var(--sp-3);font-size:12px}.custom-link-card{background:var(--bg-2);border:1px solid var(--amber);border-radius:var(--radius);padding:var(--sp-4);box-shadow:var(--shadow-amber)}.custom-link-row{gap:var(--sp-2);display:flex}.custom-link-input{background:var(--surface);border:1px solid var(--border-lit);border-radius:var(--radius-sm);height:44px;color:var(--text-1);padding:0 var(--sp-3);font-family:var(--font-mono);cursor:text;outline:none;flex:1;min-width:0;font-size:13px}.custom-link-input:focus{border-color:var(--amber)}.custom-link-copy{padding:0 var(--sp-4);background:var(--amber);border:1px solid var(--amber);border-radius:var(--radius-sm);height:44px;color:var(--bg);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);flex-shrink:0;font-size:11px;font-weight:700}.custom-link-copy:hover{background:var(--text-1);color:var(--bg)}.custom-link-meta{margin-top:var(--sp-3);flex-wrap:wrap;gap:6px;display:flex}.custom-link-pill{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);padding:4px 8px;font-size:9px;font-weight:700}.custom-link-pill.expiry{color:var(--magenta);border-color:var(--magenta);background:#f472b60f}.custom-link-actions{gap:var(--sp-3);margin-top:var(--sp-4);display:flex}.custom-share-btn{background:var(--surface);border:1px solid var(--border-lit);border-radius:var(--radius);color:var(--text-1);font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:var(--sp-2);cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast);flex:1;padding:12px;font-size:10px;font-weight:400;display:inline-flex}.custom-share-btn:hover{color:var(--amber);border-color:var(--amber)}.custom-share-btn.ghost{color:var(--text-3)}.custom-share-btn.ghost:hover{color:var(--cyan);border-color:var(--cyan)}.custom-link-foot{font-family:var(--font-mono);color:var(--text-3);margin-top:var(--sp-4);font-size:11px;line-height:1.6}@media (width<=600px){.custom-page{padding:var(--sp-5) var(--sp-5) var(--sp-14)}.custom-step{padding:var(--sp-4) var(--sp-5)}.custom-header{padding-top:40px}.custom-title{font-size:clamp(24px,7vw,36px)}.custom-selected{gap:var(--sp-3);flex-wrap:wrap}.custom-selected-title{font-size:clamp(16px,5vw,22px)}.custom-selected-cat-label{letter-spacing:.12em;font-size:8px}.custom-selected-cat-value{letter-spacing:.08em;padding:2px 6px;font-size:8px}.custom-change{margin-left:auto}.custom-link-actions,.custom-link-row{flex-direction:column}.custom-link-copy{width:100%}.custom-link-foot{word-break:break-word}}@media (width<=400px){.custom-page{padding:var(--sp-3) var(--sp-3) var(--sp-12)}.custom-step{padding:var(--sp-3) var(--sp-3)}.custom-selected-thumb{width:56px;height:56px}.custom-result-thumb{width:44px;height:44px}.custom-budget-options{gap:5px}.custom-pill{min-width:38px;padding:7px 10px;font-size:13px}.custom-search-input{font-size:15px}}.game-layout{flex-direction:column;height:100dvh;display:flex;overflow:hidden}@supports (height:100dvh){.game-layout{height:100dvh}}.back-confirm-banner{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);background:color-mix(in srgb, var(--magenta) 12%, var(--bg-2));border-bottom:1px solid color-mix(in srgb, var(--magenta) 40%, transparent);flex-shrink:0;display:flex}.back-confirm-label{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-1);font-weight:600}.back-confirm-btns{gap:var(--sp-2);display:flex}.back-confirm-yes,.back-confirm-no{border-radius:var(--radius-sm);font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);padding:5px 16px;font-weight:700}.back-confirm-yes{background:var(--magenta);border:1px solid var(--magenta);color:#fff}.back-confirm-yes:hover{background:color-mix(in srgb, var(--magenta) 80%, #fff)}.back-confirm-no{border:1px solid var(--border-lit);color:var(--text-2);background:0 0}.back-confirm-no:hover{border-color:var(--text-2);color:var(--text-1)}.game-status-bar{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--border);background:var(--bg-2);flex-shrink:0;grid-template-columns:auto 1fr auto;display:grid}.game-back{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);min-height:var(--touch-min);border-radius:var(--radius-sm);font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);transition:color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);font-weight:600;display:flex}.game-back:hover{color:var(--amber);background:var(--surface)}.game-back:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.game-context{gap:var(--sp-2);font-family:var(--font-heading);white-space:nowrap;justify-content:center;align-items:baseline;min-width:0;display:inline-flex;overflow:hidden}.game-context-cat,.game-context-diff{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.game-context-cat{color:var(--text-2)}.game-context-sep{color:var(--text-4);font-size:11px}.game-context-diff{color:var(--amber)}.game-chips{gap:var(--sp-4);align-items:center;display:flex}.stat-chip{align-items:center;gap:var(--sp-2);display:flex;position:relative}.stat-chip-icon{opacity:.5;align-items:center;display:flex}.stat-chip-icon svg{width:13px;height:13px}.stat-chip-q .stat-chip-icon{color:var(--cyan)}.stat-chip-guess .stat-chip-icon{color:var(--amber)}.stat-chip-readout{font-family:var(--font-display);align-items:baseline;gap:1px;display:flex;position:relative}.stat-chip-num{will-change:transform, opacity;font-size:24px;font-weight:700;line-height:1;display:block}.stat-chip-num.calm{color:var(--text-1)}.stat-chip-num.tense{color:var(--amber)}.stat-chip-num.critical{color:var(--magenta);animation:1.4s ease-in-out infinite criticalPulse}@keyframes criticalPulse{0%,to{opacity:1}50%{opacity:.45}}.stat-chip-total{font-family:var(--font-mono);color:var(--text-4);align-self:flex-end;padding-bottom:2px;font-size:10px;font-weight:400}.q-minus-chip{font-family:var(--font-mono);color:var(--magenta);pointer-events:none;white-space:nowrap;will-change:transform, opacity;font-size:12px;font-weight:700;position:absolute;top:0;left:50%}.game-stage{padding:var(--sp-8) var(--sp-6);flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.game-response-wrap{text-align:center;width:100%;max-width:720px}.stage-portrait{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.stage-portrait-frame{background:linear-gradient(135deg, var(--surface) 0%, var(--surface-2) 100%);border:1.5px solid var(--border-lit);width:64px;height:64px;box-shadow:var(--shadow-card);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.stage-portrait-silhouette{color:var(--text-3);opacity:.55;filter:blur(.4px);animation:3.6s ease-in-out infinite silhouettePulse;display:flex}.stage-portrait-shimmer{pointer-events:none;background:linear-gradient(115deg,#0000 30%,#a855f72e 48%,#fbbf241f 56%,#0000 72%) 100% 0/220% 100%;animation:3.6s linear infinite silhouetteShimmer;position:absolute;inset:0}.stage-portrait-q{font-family:var(--font-display);color:var(--amber);opacity:.75;text-shadow:0 0 12px var(--amber-glow);font-size:38px;line-height:1;animation:3.6s ease-in-out infinite silhouetteQ;position:absolute}.stage-portrait-label{font-family:var(--font-heading);letter-spacing:.22em;text-transform:uppercase;color:var(--text-3);font-size:9px;font-weight:700}@keyframes silhouettePulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}@keyframes silhouetteShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes silhouetteQ{0%,to{opacity:.75;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}.stage-divider{justify-content:center;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);display:flex}.stage-line{background:var(--border-lit);opacity:.6;flex:1;max-width:60px;height:1px}.stage-gem{color:var(--amber);opacity:.7;line-height:1;display:flex}.response-text{font-family:var(--font-body);color:var(--text-1);text-align:center;letter-spacing:-.005em;min-height:2em;font-size:clamp(17px,2.4vw,26px);font-weight:400;line-height:1.7}.tw-cursor{background:var(--amber);vertical-align:text-bottom;width:8px;height:1em;margin-left:4px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.thinking-dots{justify-content:center;gap:var(--sp-2);margin-top:var(--sp-6);will-change:opacity;display:flex}.thinking-dots span{background:var(--cyan);border-radius:0;width:6px;height:6px;animation:1.2s ease-in-out infinite thinkPulse}.thinking-dots span:first-child{animation-delay:0s}.thinking-dots span:nth-child(2){animation-delay:.14s}.thinking-dots span:nth-child(3){animation-delay:.28s}.thinking-dots span:nth-child(4){animation-delay:.42s}.thinking-dots span:nth-child(5){animation-delay:.56s}@keyframes thinkPulse{0%,to{opacity:.15;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.game-history-section{border-top:1px solid var(--border);background:var(--bg-2);transition:max-height var(--dur-base) var(--ease-out-expo);flex-direction:column;flex-shrink:0;display:flex}.game-history-section.open{max-height:180px}.game-history-section.collapsed{max-height:36px}.game-history-section.collapsed .history-list{display:none}.history-bar.history-toggle{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-6);border-bottom:1px dashed var(--border);cursor:pointer;text-align:left;width:100%;min-height:36px;transition:background var(--dur-fast) var(--ease-snap);background:0 0;border-top:none;border-left:none;border-right:none;font-family:inherit;display:flex}.game-history-section.collapsed .history-bar.history-toggle{border-bottom:1px solid #0000}.history-bar.history-toggle:hover{background:var(--surface)}.history-bar.history-toggle:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}.history-bar svg{color:var(--text-4);flex-shrink:0}.history-bar span{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);font-size:9px;font-weight:700}.history-count{background:var(--cyan);border-radius:var(--radius-pill);padding:1px 6px;line-height:1.4;font-family:var(--font-mono)!important;letter-spacing:0!important;text-transform:none!important;color:var(--bg)!important;font-size:10px!important;font-weight:700!important}.history-chevron{color:var(--text-3);transition:transform var(--dur-base) var(--ease-out-expo), color var(--dur-fast);align-items:center;margin-left:auto;display:inline-flex}.history-chevron.open{color:var(--text-2);transform:rotate(180deg)}.history-list{gap:var(--sp-2);padding:var(--sp-2) var(--sp-6) var(--sp-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.msg-user{text-align:left;font-family:var(--font-mono);color:var(--text-1);max-width:80%;padding-left:var(--sp-3);align-self:flex-end;font-size:12px;line-height:1.55}.msg-user:before{content:"> ";color:var(--cyan);font-weight:700}.msg-oracle{text-align:left;font-family:var(--font-body);color:var(--text-2);max-width:80%;padding-left:var(--sp-3);font-size:12px;line-height:1.55}.msg-oracle:before{content:"<= ";color:var(--amber);font-family:var(--font-mono)}.guess-tag{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:var(--bg);background:var(--amber);margin-right:var(--sp-2);border-radius:var(--radius-sm);padding:1px 5px;font-size:8px;font-weight:700}.starter-chips{gap:var(--sp-2);max-width:720px;margin:0 auto var(--sp-3);flex-wrap:wrap;justify-content:center;display:flex}.starter-chip{border:1px solid var(--border-lit);background:var(--surface);color:var(--text-2);border-radius:var(--radius-pill);font-family:var(--font-mono);letter-spacing:.01em;cursor:pointer;transition:color var(--dur-fast) var(--ease-snap), border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap), transform var(--dur-fast) var(--ease-snap);white-space:nowrap;padding:6px 12px;font-size:12px}.starter-chip:before{content:"> ";color:var(--cyan);font-weight:700}.starter-chip:hover{color:var(--text-1);border-color:var(--cyan);background:var(--surface-2)}.starter-chip:active{transform:translateY(1px)}.starter-chip:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@media (width<=480px){.starter-chips{margin-bottom:var(--sp-2);gap:6px}.starter-chip{padding:5px 10px;font-size:11px}}.game-input-zone{padding:var(--sp-3) var(--sp-6) var(--sp-4);padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));padding-left:calc(var(--sp-6) + env(safe-area-inset-left));padding-right:calc(var(--sp-6) + env(safe-area-inset-right));border-top:1px solid var(--border);background:var(--bg-2);flex-shrink:0}.game-input-hint-row{justify-content:space-between;align-items:center;gap:var(--sp-3);max-width:720px;margin:0 auto var(--sp-2);min-height:22px;display:flex}.game-input-hint{gap:var(--sp-3);flex:1;justify-content:center;align-items:center;min-width:0;min-height:14px;display:flex}.btn-give-up{align-items:center;gap:var(--sp-1);padding:4px var(--sp-2);border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-3);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast) var(--ease-snap), border-color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);background:0 0;flex-shrink:0;font-size:9px;font-weight:700;display:inline-flex}.btn-give-up:hover:not(:disabled){color:var(--magenta);border-color:var(--magenta);background:#f472b60f}.btn-give-up:focus-visible{outline:2px solid var(--magenta);outline-offset:2px}.btn-give-up:disabled{opacity:.35;cursor:not-allowed}.btn-give-up svg{color:currentColor}.btn-give-up.locked{color:var(--text-4);border-color:var(--border);cursor:not-allowed;opacity:.5;pointer-events:none;background:0 0}.btn-give-up.locked:hover{color:var(--text-4);border-color:var(--border);background:0 0}.game-input-hint-ask,.game-input-hint-guess{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;font-size:9px;font-weight:600}.game-input-hint-ask{color:var(--text-3)}.game-input-hint-sep{color:var(--text-4);font-size:11px}.game-input-hint-guess{color:var(--amber)}.game-input-hint-count{font-family:var(--font-mono);color:var(--text-4);letter-spacing:.06em;font-size:10px}.game-input-err{font-family:var(--font-mono);color:var(--magenta);letter-spacing:.02em;font-size:11px}.game-input-err:before{content:"!! ";font-weight:700}.guess-confirm-row{align-items:center;gap:var(--sp-2);display:flex}.guess-confirm-label{font-family:var(--font-mono);color:var(--amber);letter-spacing:.04em;font-size:11px}.guess-confirm-btn{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;border:1px solid;padding:2px 8px;font-size:9px;transition:opacity .12s}.guess-confirm-btn:hover{opacity:.8}.guess-confirm-yes{background:var(--amber-glow);border-color:var(--amber);color:var(--amber)}.guess-confirm-no{border-color:var(--border-lit);color:var(--text-2);background:0 0}.game-input-bar{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);max-width:720px;transition:border-color var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap);margin:0 auto;display:flex;overflow:hidden}.game-input-bar:focus-within{border-color:var(--amber);box-shadow:var(--shadow-amber);transform:translate(-1px,-1px)}.game-input{height:50px;color:var(--text-1);padding:0 var(--sp-4);font-family:var(--font-mono);font-size:var(--text-base);background:0 0;border:none;outline:none;flex:1}.game-input::placeholder{color:var(--text-3)}.game-input:disabled{opacity:.4}.btn-ask,.btn-guess{height:50px;min-width:var(--touch-min);padding:0 var(--sp-4);border-left:1px solid var(--border);font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:var(--sp-2);transition:color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);flex-shrink:0;font-weight:700;display:flex}.btn-ask{background:var(--surface);color:var(--text-2)}.btn-ask:hover:not(:disabled){color:var(--cyan);background:var(--surface-2)}.btn-guess{background:var(--amber);color:var(--bg);border-left-color:var(--amber-deep)}.btn-guess:hover:not(:disabled){background:var(--text-1)}.btn-ask:disabled,.btn-guess:disabled{opacity:.3;cursor:not-allowed}.btn-ask:focus-visible,.btn-guess:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}.end-screen{text-align:center;min-height:100dvh;padding:var(--sp-12) var(--sp-6);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.result-badge{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;margin-bottom:var(--sp-6);border-radius:var(--radius-sm);align-items:center;gap:var(--sp-2);border:1.5px solid;padding:6px 16px;font-weight:700;display:inline-flex}.result-badge.revealed{border-color:var(--success);color:var(--success);background:#a3e6350f}.result-badge.veiled{border-color:var(--magenta);color:var(--magenta);background:#ff5e870f}.end-portrait{width:180px;height:180px;margin-bottom:var(--sp-6);border:2px solid var(--border-lit);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-hard);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.end-portrait.state-ready{border-color:var(--amber)}.end-portrait.state-ready,.end-portrait.state-failed,.end-portrait.state-error{box-shadow:var(--shadow-amber)}.end-portrait-img{object-fit:contain;image-rendering:auto;background:var(--bg);width:100%;height:100%;display:block}.end-portrait-skeleton{background:linear-gradient(100deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);width:100%;height:100%;position:relative;overflow:hidden}.skeleton-shimmer{background:linear-gradient(100deg,#0000 0%,#f3e9d20d 50%,#0000 100%);animation:1.4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.end-portrait-fallback{background:repeating-linear-gradient(45deg, var(--surface), var(--surface) 6px, var(--surface-2) 6px, var(--surface-2) 12px);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.end-portrait-locked{background:radial-gradient(at 50% 40%,#7c3aed1f 0%,#0000 70%);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.end-portrait-silhouette{font-family:var(--font-display);color:var(--text-3);opacity:.4;-webkit-user-select:none;user-select:none;filter:blur(1px);font-size:96px;line-height:1}.end-portrait-initial{font-family:var(--font-display);color:var(--amber);text-shadow:3px 3px 0 var(--amber-dim);z-index:1;font-size:96px;font-weight:700;line-height:1;position:relative}.end-portrait-hatch{border:1.5px dashed var(--border-lit);pointer-events:none;position:absolute;inset:8px}.end-reveal-label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-3);margin-bottom:var(--sp-3);letter-spacing:.06em}.end-char-name{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:.01em;margin-bottom:var(--sp-5);word-break:break-word;max-width:100%;font-weight:700;line-height:1.1}.end-char-name.revealed{color:var(--amber);text-shadow:3px 3px 0 var(--amber-dim)}.end-char-name.veiled{color:var(--text-1);text-shadow:3px 3px 0 var(--text-4)}.end-desc{font-family:var(--font-body);font-size:var(--text-md);color:var(--text-2);max-width:540px;margin-bottom:var(--sp-4);line-height:1.7}.end-stats{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-3);letter-spacing:.06em;margin-bottom:var(--sp-8)}.end-stats:before{content:"> ";color:var(--text-4)}.end-actions{gap:var(--sp-3);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.btn-play-again{padding:0 var(--sp-8);height:56px;min-width:var(--touch-min);background:var(--amber);border:2px solid var(--amber-deep);border-radius:var(--radius);color:var(--bg);font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:var(--sp-3);box-shadow:var(--shadow-hard);transition:transform var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap);font-size:10px;font-weight:400;display:inline-flex}.btn-play-again:hover{box-shadow:var(--shadow-hard-lg);transform:translate(-2px,-2px)}.btn-play-again:active{box-shadow:none;transform:translate(2px,2px)}.btn-play-again:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.btn-share{padding:0 var(--sp-6);height:56px;min-width:var(--touch-min);border:2px solid var(--border-lit);border-radius:var(--radius);color:var(--text-2);font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:var(--sp-3);box-shadow:var(--shadow-hard);transition:transform var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap), border-color var(--dur-fast), color var(--dur-fast);background:0 0;font-size:10px;font-weight:400;display:inline-flex}.btn-share:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:var(--shadow-hard-lg);transform:translate(-2px,-2px)}.btn-share:active{box-shadow:none;transform:translate(2px,2px)}.btn-share:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.btn-challenge{padding:0 var(--sp-6);height:56px;min-width:var(--touch-min);border:2px solid var(--amber-deep);border-radius:var(--radius);color:var(--amber);font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:var(--sp-3);box-shadow:var(--shadow-amber);transition:transform var(--dur-fast) var(--ease-snap), box-shadow var(--dur-fast) var(--ease-snap), border-color var(--dur-fast), color var(--dur-fast);background:0 0;font-size:10px;font-weight:400;display:inline-flex}.btn-challenge:hover:not(:disabled){color:var(--bg);background:var(--amber);box-shadow:var(--shadow-amber-lg);transform:translate(-2px,-2px)}.btn-challenge:active{box-shadow:none;transform:translate(2px,2px)}.btn-challenge:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.btn-challenge:disabled{opacity:.55;cursor:not-allowed}.end-share-error{margin-top:var(--sp-3);font-family:var(--font-mono);color:var(--magenta);font-size:11px}.share-challenge-banner{text-align:center;justify-content:center;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);border:1px solid var(--amber-dim);border-radius:var(--radius-pill);background:#fbbf2414;padding:4px 12px;display:flex}.share-challenge-label{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--amber);font-size:9px;font-weight:700}.share-challenge-text{font-family:var(--font-mono);color:var(--text-2);text-align:center;font-size:11px;line-height:1.45}@media (width<=480px){.share-challenge-banner{flex-wrap:wrap;gap:4px 10px;padding:4px 10px}.share-challenge-text{font-size:10px}}.toast{bottom:var(--sp-8);background:var(--surface);border:1.5px solid var(--magenta);border-radius:var(--radius);color:var(--magenta);padding:var(--sp-3) var(--sp-5);font-family:var(--font-mono);font-size:var(--text-base);z-index:1000;cursor:pointer;box-shadow:4px 4px 0 0 var(--magenta-deep);white-space:nowrap;text-overflow:ellipsis;will-change:transform, opacity;max-width:calc(100vw - 32px);position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.toast:before{content:"!! ";font-weight:700}.toast.info{border-color:var(--cyan);color:var(--cyan);box-shadow:4px 4px 0 0 var(--cyan-dim)}.toast.info:before{content:"// "}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:200;background:#04040ee0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border:2px solid var(--amber);border-radius:var(--radius);padding:36px var(--sp-8) var(--sp-6);text-align:center;width:90%;max-width:420px;box-shadow:var(--shadow-amber-lg), var(--shadow-modal);position:relative}.modal-box.about-modal{text-align:left;flex-direction:column;width:92%;max-width:720px;max-height:88vh;padding:0;display:flex}.about-header{padding:var(--sp-6) var(--sp-8) var(--sp-4);text-align:center;border-bottom:1px dashed var(--border)}.about-tagline{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--cyan);margin-top:-2px;font-size:10px}.about-tagline:before{content:"// ";color:var(--text-3)}.about-scroll{padding:var(--sp-6) var(--sp-8);gap:var(--sp-6);flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.about-scroll::-webkit-scrollbar{width:6px}.about-scroll::-webkit-scrollbar-track{background:0 0}.about-scroll::-webkit-scrollbar-thumb{background:var(--border-lit);border-radius:0}.about-section{display:block}.about-section+.about-section{padding-top:var(--sp-5);border-top:1px solid var(--border)}.about-heading{align-items:center;gap:var(--sp-2);font-family:var(--font-heading);letter-spacing:.22em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--sp-3);font-size:11px;font-weight:700;display:flex}.about-heading svg{color:var(--cyan);flex-shrink:0}.about-section p{font-family:var(--font-body);color:var(--text-2);margin-bottom:var(--sp-3);font-size:14px;line-height:1.65}.about-section p:last-child{margin-bottom:0}.about-em{color:var(--amber);font-weight:700}.about-section em{color:var(--text-1);font-style:italic}.about-section strong{color:var(--text-1);font-weight:600}.about-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.about-list.ordered{counter-reset:step}.about-list.ordered li{counter-increment:step;padding-left:32px;position:relative}.about-list.ordered li:before{content:counter(step);border:1px solid var(--amber);width:22px;height:22px;color:var(--amber);font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:0;left:0}.about-list:not(.ordered) li{padding-left:18px;position:relative}.about-list:not(.ordered) li:before{content:"▹";color:var(--cyan);font-size:12px;position:absolute;top:0;left:0}.about-list li{font-family:var(--font-body);color:var(--text-2);font-size:14px;line-height:1.65}.about-list.compact li{font-size:13px;line-height:1.55}.about-defs{gap:var(--sp-3) var(--sp-5);grid-template-columns:repeat(2,1fr);display:grid}.about-defs>div{border-left:2px solid var(--cyan);padding-left:var(--sp-3)}.about-defs dt{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:var(--amber);margin-bottom:4px;font-size:10px}.about-defs dd{font-family:var(--font-body);color:var(--text-2);font-size:13px;line-height:1.55}.about-note{padding:var(--sp-3);border-left:2px solid var(--amber);color:var(--text-2);background:#fbbf240a;margin-bottom:var(--sp-4)!important;font-size:13px!important}.about-tiers{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.about-tiers li{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:auto 1fr auto;display:grid}.about-tier-name{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);text-align:center;white-space:nowrap;padding:3px 8px;font-size:10px;font-weight:700}.about-tier-name.calm{color:var(--success);border:1px solid var(--success);background:#a3e6350f}.about-tier-name.tense{color:var(--amber);border:1px solid var(--amber);background:#fbbf240f}.about-tier-name.critical{color:var(--magenta);border:1px solid var(--magenta);background:#f472b60f}.about-tier-detail{font-family:var(--font-body);color:var(--text-2);font-size:13px;line-height:1.45}.about-tier-q{font-family:var(--font-mono);color:var(--text-3);white-space:nowrap;font-size:11px}.about-answers{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.about-answers li{font-family:var(--font-body);color:var(--text-2);align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;font-size:13px;line-height:1.55;display:flex}.about-answers .ans{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;border-radius:var(--radius-sm);flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.ans.yes{color:var(--success);border:1px solid var(--success);background:#a3e6351a}.ans.no{color:var(--magenta);border:1px solid var(--magenta);background:#f472b61a}.ans.probably{color:var(--amber);border:1px solid var(--amber);background:#fbbf241a}.ans.probably-not{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border-lit)}.ans.unsure{color:var(--cyan);border:1px solid var(--cyan);background:#a855f714}.about-footer{border-top:1px dashed var(--border);padding:var(--sp-4) var(--sp-8) var(--sp-5);justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.about-modal .modal-version{margin-bottom:0}.about-modal .modal-close{margin-top:0}.modal-logo{margin-bottom:var(--sp-3);justify-content:center;display:flex}.modal-logo-img{object-fit:contain;width:clamp(48px,14vw,80px);height:auto;display:block}.modal-title{font-family:var(--font-display);color:var(--amber);margin-bottom:var(--sp-3);letter-spacing:.04em;text-shadow:2px 2px 0 var(--amber-dim);font-size:22px;font-weight:700}.modal-desc{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-2);margin-bottom:var(--sp-5);line-height:1.7}.modal-version{font-family:var(--font-mono);color:var(--text-4);margin-bottom:var(--sp-6);letter-spacing:.1em;font-size:10px}.modal-close{padding:9px var(--sp-6);min-height:var(--touch-min);border:1.5px solid var(--text-3);border-radius:var(--radius-sm);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-snap), color var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-snap);background:0 0;font-size:11px;font-weight:700}.modal-close:hover{border-color:var(--amber);color:var(--amber);background:var(--surface-2)}.modal-close:focus-visible{outline:2px solid var(--amber);outline-offset:2px}@media (width<=1024px){.hero-section{padding:var(--sp-12) var(--sp-5) var(--sp-8)}.howto-section{padding:var(--sp-6) var(--sp-5) var(--sp-12)}.howto-grid,.cat-grid{grid-template-columns:repeat(2,1fr)}.config-section{padding:0 var(--sp-5)}.game-status-bar{padding:var(--sp-2) var(--sp-4)}.game-stage{padding:var(--sp-6) var(--sp-4)}.game-history-section.open{max-height:140px}.history-bar,.history-list{padding:var(--sp-2) var(--sp-4)}.game-input-zone{padding:var(--sp-2) var(--sp-4) var(--sp-3)}.btn-ask span,.btn-guess span{display:none}.btn-ask,.btn-guess{padding:0 var(--sp-4)}}@media (width<=768px){.howto-section{padding:var(--sp-4) var(--sp-5) var(--sp-10)}.howto-grid{grid-template-columns:1fr 1fr}.diff-row{gap:var(--sp-2);grid-template-columns:repeat(2,1fr)}.cat-card-label{letter-spacing:.07em;font-size:9px}.game-back span{display:none}.game-back{padding:var(--sp-2)}.game-history-section.open{max-height:120px}.msg-user,.msg-oracle{max-width:95%}.end-portrait{width:150px;height:150px}.end-portrait-initial{font-size:80px}}@media (width<=480px){.hero-section{padding:var(--sp-8) var(--sp-4) var(--sp-6)}.howto-section{padding:var(--sp-4) var(--sp-4) var(--sp-8)}.config-section{padding:0 var(--sp-4)}.hero-brand,.hero-reflection{letter-spacing:0;font-size:clamp(28px,10.5vw,56px)}.hero-tagline{letter-spacing:.22em}.hero-mirror-glow{width:8px;height:8px;box-shadow:0 0 6px 2px #fbbf24d9,0 0 14px 4px #a855f766,0 0 26px 7px #a855f729}.hero-mirror-line{box-shadow:0 0 5px 1px #fbbf2480,0 0 12px 2px #a855f740,0 0 22px 4px #a855f71a}.howto-grid,.cat-grid{grid-template-columns:1fr}.diff-row{gap:var(--sp-1);grid-template-columns:1fr}.diff-pill{padding:var(--sp-3) var(--sp-4)}.cat-card-label{font-size:var(--text-xs);letter-spacing:.12em}.game-context-cat,.game-context-diff{letter-spacing:.06em;font-size:8px}.game-context-sep{font-size:9px}.game-status-bar{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}.stat-chip{min-width:44px;padding:4px 8px 0}.stat-chip-num{font-size:17px}.stat-chip-label{font-size:7px}.game-stage{padding:var(--sp-4) var(--sp-3)}.game-input-zone{padding:var(--sp-2) var(--sp-3) var(--sp-3);padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom))}.game-input,.btn-ask,.btn-guess{height:46px;padding:0 var(--sp-3)}.btn-give-up span{display:none}.btn-give-up{padding:4px var(--sp-2);min-height:26px}.end-screen{padding:var(--sp-8) var(--sp-4)}.end-portrait{width:130px;height:130px}.end-portrait-initial{font-size:64px}.toast{padding:var(--sp-2) var(--sp-3);white-space:normal;font-size:12px}.modal-box.about-modal{width:95%;max-height:92vh}.about-header{padding:var(--sp-5) var(--sp-5) var(--sp-3)}.about-scroll{padding:var(--sp-4) var(--sp-5);gap:var(--sp-5)}.about-footer{padding:var(--sp-3) var(--sp-5) var(--sp-4)}.about-defs{grid-template-columns:1fr}.about-tiers li{grid-template-rows:auto auto;grid-template-columns:auto 1fr;row-gap:2px}.about-tier-name{letter-spacing:.04em;padding:2px 5px;font-size:8px}.about-tier-q{grid-column:2;font-size:10px}}@media (height<=700px){.game-stage{padding:var(--sp-4) var(--sp-6)}.response-text{min-height:1.6em;font-size:clamp(14px,2vw,20px)}.stage-divider{margin-bottom:var(--sp-3)}.thinking-dots{margin-top:var(--sp-3)}.game-history-section.open{max-height:110px}.game-input-zone{padding:var(--sp-2) var(--sp-6) var(--sp-3)}.stage-portrait{margin-bottom:var(--sp-2);gap:4px}.stage-portrait-frame{width:52px;height:52px}.stage-portrait-q{font-size:30px}}@media (height<=580px){.game-status-bar{padding:var(--sp-1) var(--sp-6)}.game-stage{padding:var(--sp-2) var(--sp-6)}.response-text{min-height:1.4em;font-size:clamp(13px,1.8vw,18px);line-height:1.5}.stage-divider{margin-bottom:var(--sp-2)}.thinking-dots{margin-top:var(--sp-2)}.game-history-section.open{max-height:80px}.history-bar{padding:var(--sp-1) var(--sp-6)}.game-input-zone{padding:var(--sp-1) var(--sp-6) var(--sp-2)}.game-input-hint{margin-bottom:var(--sp-1)}.game-input,.btn-ask,.btn-guess{height:42px}.stage-portrait{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.particle,body:after{display:none}.tw-cursor{opacity:1;animation:none}.loading-dots span{opacity:.7;animation:none}.thinking-dots span{opacity:.5;animation:none}.stat-chip-num.critical,.skeleton-shimmer,.stage-portrait-shimmer,.stage-portrait-silhouette,.stage-portrait-q,.hero-mirror,.hero-mirror:before,.hero-mirror-line:after,.hero-mirror-glow{animation:none}}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}:focus:not(:focus-visible){outline:none}
