@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap";:root{--ink: rgb(236, 238, 241);--ink-muted: rgb(164, 170, 180);--ink-faint: rgb(118, 124, 134);--bg-base: rgb(8, 10, 14);--bg-elev: rgb(11, 14, 20);--card-fill: rgba(18, 22, 30, .72);--card-stroke: rgba(255, 255, 255, .08);--card-highlight: rgba(255, 255, 255, .06);--accent: rgb(180, 58, 51);--accent-hover: rgb(158, 46, 40);--focus-ring: rgba(180, 58, 51, .35);--warm-tint: rgba(246, 238, 232, .1);--warm-heart: rgb(255, 214, 214);--radius-card: 22px;--radius-pill: 999px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;min-height:100%;color:var(--ink);font-family:Inter,Avenir Next,Trebuchet MS,sans-serif}#root{min-height:100svh}body{position:relative;min-height:100svh;transition:background .6s ease;background:radial-gradient(1100px 720px at 20% 0%,rgba(50,20,20,.12),transparent 60%),linear-gradient(175deg,rgb(11,14,20) 0%,var(--bg-base) 100%)}body[data-gate-theme=valentine]{background:radial-gradient(980px 620px at 14% 8%,rgba(255,214,214,.2),transparent 62%),radial-gradient(960px 640px at 88% 90%,rgba(214,180,166,.12),transparent 66%),linear-gradient(175deg,#eee5dc,#e4d8cd)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.05;background-image:radial-gradient(rgba(255,255,255,.9) .45px,transparent .45px);background-size:3px 3px}body:after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 55%,rgba(0,0,0,.42) 100%)}body[data-gate-theme=valentine]:after{background:radial-gradient(circle at center,transparent 58%,rgba(85,45,38,.16) 100%)}h1,h2{margin:0;font-family:Fraunces,Iowan Old Style,Baskerville,Times New Roman,serif}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:600;color:var(--ink-muted)}.landing,.session-shell{width:min(920px,92vw);margin:clamp(16px,5vh,60px) auto;border:1px solid var(--card-stroke);border-radius:var(--radius-card);box-shadow:0 30px 90px #0009;backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);position:relative;z-index:1}.landing{min-height:clamp(360px,50vh,500px);padding:clamp(30px,4vw,56px);overflow:hidden;animation:card-in .32s ease both;background:linear-gradient(180deg,var(--card-highlight),transparent 30%),linear-gradient(145deg,rgba(27,33,44,.88),var(--card-fill));transition:background .6s ease,border-color .6s ease}.landing.theme-valentine{background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 30%),linear-gradient(145deg,#221b23e6,#141118d1),linear-gradient(0deg,var(--warm-tint),var(--warm-tint));border-color:#ffd7d724}.title-block{max-width:760px}.op-headline{margin:0;font-family:Fraunces,Iowan Old Style,serif;font-size:clamp(56px,7vw,72px);line-height:.95;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}.gate-title{position:relative;margin-top:10px;min-height:clamp(44px,5vw,58px)}.title-layer{position:absolute;inset:0 auto auto 0;width:100%;font-size:clamp(30px,3.8vw,34px);line-height:1.08;font-weight:500;color:color-mix(in srgb,var(--ink) 78%,#000);opacity:0;transform:translateY(8px);transition:opacity .32s ease,transform .32s ease}.title-layer.is-visible{opacity:1;transform:translateY(0)}.subhead{margin:28px 0 0;font-size:16px;line-height:1.5;max-width:620px;color:var(--ink-muted)}.phrase-gate{margin-top:28px;display:grid;gap:10px;max-width:520px}.phrase-gate label{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.phrase-input{height:48px;border:1px solid rgba(255,255,255,.1);border-radius:13px;padding:0 14px;font:inherit;font-size:16px;color:var(--ink);background:#00000038;transition:border-color .16s ease,box-shadow .16s ease}.phrase-input::placeholder{color:#eceef173}.phrase-input:focus{outline:none;border-color:#b43a338c;box-shadow:0 0 0 4px #b43a332e}.phrase-input.denied{border-color:#d77171bf}button{font:inherit}.primary-button{height:48px;border:1px solid transparent;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .13s ease,background .13s ease,opacity .13s ease}.primary-button:hover:enabled{background:var(--accent-hover);transform:translateY(-1px)}.primary-button:disabled{opacity:.7;cursor:default}.phrase-gate.shake .phrase-input{animation:gate-shake .32s ease}.hint-row{margin-top:12px;max-width:540px;display:grid;gap:8px}.hint-button{justify-self:start;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);background:#0000002e;color:var(--ink-muted);padding:8px 12px;cursor:pointer}.hint-button.secondary{border-color:#ffd6d642;color:#f5d8d8}.hint-copy{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0003}.hint-copy.secondary{border-color:#ffd6d642;background:#f6eee814}.hint-copy p{margin:0;font-size:15px;line-height:1.5;color:var(--ink)}.gate-feedback{margin-top:12px;min-height:120px}.success-panel{margin-bottom:10px;padding:14px 14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.11);background:#0003}.success-stamp{width:fit-content;margin:0 0 10px auto;border:1px solid rgba(236,238,241,.18);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#eceef173;transform:scale(.97);opacity:0;transition:opacity .18s ease,transform .18s ease}.success-stamp.visible{opacity:1;transform:scale(1)}.declass-line{margin:0;font-size:19px;color:var(--ink-muted)}.processing-line{margin:0;font-size:14px;color:var(--ink-faint)}.processing-row{margin-top:10px;display:inline-flex;align-items:center;gap:9px}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(236,238,241,.24);border-top-color:#eceef1d9;animation:spin 1s linear infinite}.success-celebration{position:relative;margin-top:10px;padding-bottom:90px;min-height:142px}.success-main{margin:0;font-size:clamp(22px,2.6vw,26px);font-family:Fraunces,Iowan Old Style,serif;color:var(--ink)}.success-sub{margin:6px 0 0;font-size:15px;color:var(--ink-muted)}.heart-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.heart-confetti span{position:absolute;bottom:-12%;font-size:clamp(9px,1.6vw,14px);color:#ffd6d6b3;opacity:0;animation-name:heart-rise;animation-timing-function:ease-out;animation-iteration-count:1;animation-fill-mode:forwards}.error-line{margin:0;color:#f39d9d;font-size:14px}.attempts-line,.lockout-line{margin:8px 0 0;color:var(--ink-muted);font-size:14px}.footer-note{margin:4px 0 0;font-size:13px;color:var(--ink-faint)}.session-scene{position:relative;width:min(920px,92vw);margin:clamp(16px,5vh,60px) auto;z-index:1;min-height:100svh;display:flex;align-items:center}.hearts-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.hearts-layer span{position:absolute;bottom:-8%;color:#7e3434d1;opacity:0;animation:session-heart-float linear infinite;text-shadow:0 3px 11px rgba(76,26,26,.26)}.session-shell{width:100%;margin:0;padding:16px;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:14px;min-height:clamp(640px,92svh,920px);z-index:1;border-color:#fff1e829;background:linear-gradient(180deg,rgba(246,238,232,.07),transparent 34%),linear-gradient(145deg,#2e2422d4,#1f1918cc)}.session-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 4px 0}.session-header h2{font-size:clamp(24px,4vw,34px);line-height:1.08}.status{margin:8px 0 0;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.valentine-tag{width:fit-content;margin:7px 0 0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#ffd6d6d9;border:1px solid rgba(255,214,214,.22);border-radius:var(--radius-pill);padding:5px 9px;background:#f6eee814}.dot{width:8px;height:8px;border-radius:50%;background:#36bc72;box-shadow:0 0 0 4px #36bc7229}.header-actions{display:flex;align-items:center;gap:8px}.ghost{border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);background:#0003;color:var(--ink);padding:10px 14px;cursor:pointer}.mode-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.modes-heading{margin:2px 0 -2px;text-align:center;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#eceef19e}.mode-pill{border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);background:#0000002e;color:var(--ink);text-transform:capitalize;padding:10px 14px;cursor:pointer}.mode-pill:hover{border-color:#ffffff47}.mode-pill.active{background:#65343175;border-color:#b43a3380;position:relative;padding-left:26px}.mode-pill.active:before{content:"";position:absolute;left:12px;top:50%;width:6px;height:6px;border-radius:50%;background:#d26861f2;transform:translateY(-50%)}.topic-refresh{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:76px}.topic-refresh-icon{line-height:1;font-size:15px}.topic-refresh-label{line-height:1}.messages{border:1px solid rgba(255,255,255,.14);border-radius:16px;background:linear-gradient(180deg,rgba(246,238,232,.08),transparent 42%),#14111252;padding:14px;overflow-y:auto;display:grid;align-content:start;grid-auto-rows:max-content;gap:10px}.bubble{width:fit-content;max-width:min(78%,720px);border-radius:14px;padding:10px 12px 8px;border:1px solid rgba(255,255,255,.12);background:#231f20b8}.bubble p{margin:0;white-space:pre-wrap;line-height:1.4}.bubble span{display:block;margin-top:7px;font-size:11px;color:var(--ink-faint)}.bubble.me{margin-left:auto;background:#723a3694;border-color:#ce716a61}.bubble.typing{font-style:italic;color:var(--ink-muted)}.composer{display:grid;grid-template-columns:1fr auto;gap:10px}.composer input{border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px;font:inherit;background:#00000038;color:var(--ink)}.composer input::placeholder{color:#e9ecf473}.composer input:focus{outline:2px solid rgba(180,58,51,.25);outline-offset:1px}.composer button{border:1px solid transparent;border-radius:var(--radius-pill);background:var(--accent);color:#fff;padding:10px 16px;font-weight:600;cursor:pointer}.composer button:disabled{opacity:.6;cursor:default}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes gate-shake{0%,to{transform:translate(0)}25%{transform:translate(-9px)}50%{transform:translate(9px)}75%{transform:translate(-7px)}}@keyframes heart-rise{0%{transform:translateY(0) translate(0) scale(.72);opacity:0}14%{opacity:.72}to{transform:translateY(-100px) translate(14px) scale(1);opacity:0}}@keyframes session-heart-float{0%{transform:translateY(0) translate(0) scale(var(--heart-scale-start, .84));opacity:0}14%{opacity:.72}to{transform:translateY(-120vh) translate(var(--drift, 8px)) scale(var(--heart-scale-end, 1));opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.hearts-layer,.heart-confetti{display:none}.spinner{animation:none}}@media(max-width:720px){body[data-gate-theme=valentine]{background:radial-gradient(980px 620px at 14% 8%,rgba(255,214,214,.24),transparent 62%),radial-gradient(960px 640px at 88% 90%,rgba(214,180,166,.16),transparent 66%),linear-gradient(175deg,#efe5db,#e4d8cd)}.landing{width:95vw;margin:12px auto;border-radius:18px}.session-scene{width:96vw;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 6px max(24px,env(safe-area-inset-bottom));min-height:100svh;align-items:stretch}.session-shell{border-radius:18px;min-height:calc(100svh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 48px);padding:14px;background:linear-gradient(180deg,rgba(246,238,232,.06),transparent 34%),linear-gradient(145deg,#2d2322db,#1e1818d6)}.hearts-layer span{--heart-scale-start: .92;--heart-scale-end: 1.1}.landing{padding:30px 22px}.op-headline{font-size:clamp(44px,12vw,56px)}.title-layer{font-size:clamp(24px,7.5vw,30px)}.subhead{margin-top:22px;font-size:15px}.header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.header-actions .ghost{width:100%;padding:9px 8px;font-size:14px}.topic-refresh{min-width:44px;width:44px;padding:0}.topic-refresh-label{display:none}.modes-heading{margin-top:2px}.mode-row{justify-content:flex-start}.mode-pill{padding:9px 12px;font-size:14px}.session-header{flex-direction:column}}
