:root{--bg: oklch(.99 .004 240);--bg-2: oklch(.965 .009 235);--surface: oklch(.995 .003 240);--surface-2: oklch(.945 .013 235);--border: oklch(.88 .015 235);--border-strong: oklch(.78 .02 235);--text: oklch(.26 .03 250);--text-dim: oklch(.47 .026 246);--text-faint: oklch(.63 .018 240);--accent: oklch(.7 .11 222);--accent-soft: oklch(.7 .11 222 / .13);--accent-strong: oklch(.56 .13 226);--deep: oklch(.4 .085 252);--deep-soft: oklch(.4 .085 252 / .1);--on-accent: oklch(.99 .004 240);--danger: oklch(.62 .19 25);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-2);color:var(--text);font-family:Noto Sans JP,Hiragino Sans,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}@media (min-width: 520px){body{min-height:100vh;background:radial-gradient(circle at 50% 0%,oklch(.7 .11 222 / .08),transparent 60%),var(--bg-2)}}button,input,textarea{font-family:inherit;color:inherit}.serif{font-family:Shippori Mincho,serif}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.app-shell{width:100%;max-width:480px;margin:0 auto;height:100dvh;background:var(--bg);position:relative;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 60px -20px #334a6240}@media (min-width: 520px){.app-shell{margin:28px auto;height:min(860px,calc(100vh - 56px));border-radius:28px;box-shadow:0 30px 70px -24px #334a6259,0 0 0 1px var(--border)}}.shell-root{min-height:100dvh}.sidebar-nav{display:none}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg);animation:screen-in .28s ease both;overflow:hidden}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.screen{animation:none}}.topbar{display:flex;align-items:center;gap:10px;padding:calc(var(--safe-top) + 14px) 18px 12px 18px;flex-shrink:0}.icon-btn{background:none;border:none;padding:4px;display:flex;align-items:center;cursor:pointer;color:var(--text)}.eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.12em;color:var(--text-faint);text-transform:uppercase}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.btn{border-radius:999px;font-weight:700;font-family:Noto Sans JP,sans-serif;border:none;cursor:pointer;transition:transform .12s ease,opacity .12s ease;font-size:14.5px;padding:14px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-deep{background:var(--deep);color:var(--on-accent)}.btn-outline{background:transparent;color:var(--text);border:1px solid var(--border-strong)}.btn-link{background:none;border:none;color:var(--accent-strong);font-weight:700;font-family:JetBrains Mono,monospace;font-size:11.5px;cursor:pointer;padding:6px}input[type=text],textarea{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:14px;resize:none;outline:none}input[type=text]:focus,textarea:focus{border-color:var(--accent)}.entry-card{padding:16px;display:flex;flex-direction:column;gap:10px}.entry-card-title{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700}.stack-list{display:flex;flex-direction:column;gap:8px}.rank-row{display:flex;align-items:center;gap:9px;padding:10px 11px}.rank-badge{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.tabbar{display:flex;justify-content:space-around;align-items:center;padding:10px 0 calc(var(--safe-bottom) + 10px) 0;border-top:1px solid var(--border);flex-shrink:0}.tabs{display:flex;gap:6px;background:var(--surface-2);border-radius:999px;padding:4px}.tab-btn{flex:1;text-align:center;padding:9px 0;border-radius:999px;border:none;background:none;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:700;color:var(--text-faint);cursor:pointer}.tab-btn.active{background:var(--accent);color:var(--on-accent)}.room-code{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:18px 24px}.pulse-dot{width:7px;height:7px;border-radius:999px;background:var(--accent);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.chat-header{padding:calc(var(--safe-top) + 14px) 16px 12px 16px;border-bottom:1px solid var(--border);background:var(--bg-2);flex-shrink:0}.chat-scroll{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.bubble-row{display:flex;gap:7px;align-items:flex-end;max-width:86%}.bubble-row.me{align-self:flex-end;flex-direction:row-reverse}.avatar{width:22px;height:22px;border-radius:999px;color:var(--on-accent);font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:JetBrains Mono,monospace}.avatar.op{background:var(--deep)}.avatar.me{background:var(--accent)}.bubble{padding:10px 13px;border-radius:14px;font-size:13px;line-height:1.6}.bubble.op{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.me{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:4px}.judge-cta{text-align:center;padding:8px 16px 0;flex-shrink:0}.judge-cta button{background:none;border:1px solid var(--accent);color:var(--accent-strong);border-radius:999px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:11px;cursor:pointer}.judge-cta button:disabled{border-color:var(--border);color:var(--text-faint);cursor:not-allowed}.composer-wrap{padding:10px 16px calc(var(--safe-bottom) + 16px) 16px;flex-shrink:0}.composer{display:flex;align-items:flex-end;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:18px;padding:8px 8px 8px 14px}.composer textarea{flex:1;background:none;border:none;padding:4px 0;font-size:13.5px;line-height:1.5;max-height:90px;min-height:20px}.composer textarea:focus{border:none}.send-btn{width:28px;height:28px;border-radius:999px;background:var(--accent);border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;color:var(--on-accent)}.send-btn:disabled{background:var(--border-strong);cursor:not-allowed}.count-ring{flex-shrink:0}.radar-wrap{position:relative;width:176px;height:176px}.radar-pct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.check-row{display:flex;align-items:center;gap:10px;font-size:12.5px}.check-icon{width:20px;height:20px;border-radius:999px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.check-icon.done{background:var(--accent-soft)}.check-icon.active{border:2px solid var(--deep);border-top-color:transparent;animation:spin .9s linear infinite}.check-icon.pending{border:1.5px solid var(--border)}@keyframes spin{to{transform:rotate(360deg)}}.score-bar-track{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.score-bar-fill{height:100%;border-radius:999px;transition:width .6s ease}.toast{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + 90px);transform:translate(-50%);background:var(--text);color:var(--bg);font-size:12.5px;padding:10px 18px;border-radius:999px;box-shadow:0 8px 24px -8px #0f171f66;animation:toast-in .2s ease both;white-space:nowrap;z-index:20}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.watermark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 22px;pointer-events:none;-webkit-user-select:none;user-select:none}.watermark span{font-weight:700;line-height:1.16;letter-spacing:-.01em;color:var(--deep);opacity:.15;font-size:40px}@media (min-width: 520px){.watermark span{font-size:54px}}@media (min-width: 960px){.watermark span{font-size:74px}}.content-layer{position:relative;z-index:1;height:100%;overflow-y:auto;display:flex;flex-direction:column}.coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 28px;text-align:center;flex:1}.coming-soon-badge{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;padding:5px 14px}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px}.google-g{width:18px;height:18px;border-radius:999px;background:var(--surface);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--text-dim);font-family:JetBrains Mono,monospace}.avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.avatar-option{aspect-ratio:1;border-radius:14px;border:2px solid transparent;cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center}.avatar-option.selected{border-color:var(--accent)}@media (min-width: 960px){.shell-root{display:flex;height:100dvh;background:var(--bg-2)}.sidebar-nav{display:flex;flex-direction:column;width:248px;flex-shrink:0;height:100%;padding:26px 18px;border-right:1px solid var(--border);background:var(--surface);overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px;margin-bottom:26px}.sidebar-cta{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--deep);color:var(--on-accent);border:none;border-radius:12px;padding:13px 14px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:22px;transition:opacity .12s ease}.sidebar-cta:active{opacity:.85}.sidebar-nav-list{display:flex;flex-direction:column;gap:3px}.sidebar-nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;border-radius:10px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--text-faint)}.sidebar-nav-item.active{background:var(--accent-soft);color:var(--accent-strong)}.sidebar-nav-item:not(.active):hover{background:var(--surface-2);color:var(--text)}.sidebar-footer{margin-top:auto;padding:0 8px;font-size:9px;letter-spacing:.06em;color:var(--text-faint)}.app-shell{margin:0;max-width:none;width:auto;flex:1;height:100dvh;border-radius:0;box-shadow:none}.screen{left:40px;right:40px}.screen>*:not(.toast){width:100%;max-width:760px;margin-left:auto;margin-right:auto}.tabbar{display:none}.stack-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}}
