:root{--bg: #08080a;--surface: #111114;--surface-2: #19191e;--surface-3: #212127;--border: #2a2a32;--border-hover: #3a3a44;--text: #f0ece6;--text-2: #a09a94;--text-3: #625d58;--accent: #d4a24c;--accent-hover: #e0b05a;--accent-muted: rgba(212, 162, 76, .12);--accent-glow: rgba(212, 162, 76, .08);--accent-strong: rgba(212, 162, 76, .2);--success: #5ec96e;--success-muted: rgba(94, 201, 110, .12);--success-glow: rgba(94, 201, 110, .06);--danger: #e05a52;--danger-muted: rgba(224, 90, 82, .1);--font-display: "Syne", system-ui, sans-serif;--font-body: "Outfit", system-ui, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", "Fira Code", monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-xl: 20px;--r-pill: 999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-snap: cubic-bezier(.2, 0, 0, 1);--dur-fast: .12s;--dur-normal: .2s;--dur-slow: .4s;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 30px rgba(0,0,0,.5);--shadow-glow: 0 0 20px var(--accent-glow), 0 0 60px var(--accent-glow)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.screen{display:flex;flex-direction:column;height:100%;width:100%;padding:var(--sp-6);overflow:hidden}.screen--center{align-items:center;justify-content:center;gap:var(--sp-5)}.screen--overlay{position:fixed;inset:0;background:var(--bg);z-index:100}.loading-pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse-dot 1.8s var(--ease-out) infinite;box-shadow:0 0 12px var(--accent-muted)}.loading-text{color:var(--text-3);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}.error-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--danger-muted);color:var(--danger);font-size:20px}.error-title{font-family:var(--font-display);font-size:18px;font-weight:800;letter-spacing:-.03em}.error-message{color:var(--text-2);font-size:13px;text-align:center;max-width:260px;line-height:1.7}.screen--lobby{gap:0;padding:var(--sp-6)}.lobby-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--sp-5)}.app-title{font-family:var(--font-display);font-size:17px;font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,var(--text),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.participant-count{font-size:10px;color:var(--text-3);font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--surface);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--border)}.lobby-participants{flex:1;overflow-y:auto;scrollbar-width:none;margin:0 calc(-1 * var(--sp-2));padding:0 var(--sp-2)}.lobby-participants::-webkit-scrollbar{display:none}.lobby-settings{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) 0 var(--sp-3);border-top:1px solid var(--border)}.settings-label{font-size:9px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.14em;margin-top:var(--sp-2)}.lobby-actions{display:flex;gap:var(--sp-3);padding-top:var(--sp-3)}.ready-status{font-size:11px;color:var(--text-3);text-align:center;letter-spacing:.02em;padding-top:var(--sp-2)}.participant-list{list-style:none;display:flex;flex-direction:column;gap:2px}.participant-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease-out)}.participant-item:hover{background:var(--surface)}.participant-avatar-wrap{position:relative;flex-shrink:0}.participant-avatar{border-radius:50%;display:block;opacity:.92;border:1.5px solid var(--border)}.ready-dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;background:var(--surface-3);border:2px solid var(--bg);transition:all var(--dur-normal) var(--ease-out)}.ready-dot--on{background:var(--success);box-shadow:0 0 6px var(--success-glow)}.participant-name{flex:1;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.participant-you{color:var(--text-3);font-weight:400;font-size:11px}.ready-badge{font-size:9px;color:var(--text-3);font-weight:700;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border);transition:all var(--dur-normal) var(--ease-out)}.ready-badge--on{color:var(--success);background:var(--success-glow);border-color:var(--success-muted)}.segmented-control{display:flex;gap:2px;background:var(--surface);border-radius:var(--r-md);padding:3px;border:1px solid var(--border)}.segment-btn{flex:1;padding:var(--sp-2) var(--sp-3);border:none;border-radius:calc(var(--r-md) - 2px);background:transparent;color:var(--text-3);font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;position:relative}.segment-btn:hover{color:var(--text-2)}.segment-btn--active{background:var(--surface-3);color:var(--text);box-shadow:var(--shadow-sm)}.volume-wrap{display:flex;align-items:center;gap:var(--sp-2);flex:1}.volume-icon{font-size:12px;line-height:1;opacity:.7}.volume-slider{flex:1;accent-color:var(--accent);height:2px;cursor:pointer}.countdown-number{font-family:var(--font-display);font-size:96px;font-weight:800;color:var(--accent);letter-spacing:-.06em;animation:countdown-pop .4s var(--ease-snap);text-shadow:0 0 40px var(--accent-muted),0 0 80px var(--accent-glow)}.screen--session{align-items:center;justify-content:center;gap:var(--sp-6);position:relative}.session-status{display:flex;justify-content:center}.status-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;padding:5px var(--sp-4);border-radius:var(--r-pill);border:1px solid}.status-badge--focus{border-color:var(--accent-muted);color:var(--accent);background:var(--accent-glow);box-shadow:0 0 16px var(--accent-glow)}.status-badge--break{border-color:var(--success-muted);color:var(--success);background:var(--success-glow)}.session-timer{display:flex;justify-content:center}.circular-timer{display:flex;justify-content:center;filter:drop-shadow(0 0 40px var(--accent-glow))}.session-participants{text-align:center}.participants-label{font-size:10px;color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;font-weight:600}.session-controls{display:flex;align-items:center;gap:var(--sp-3);max-width:240px;width:100%}.pulse-wave{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);opacity:.4}.pulse-wave-label{font-size:9px;color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;font-weight:600}.screen--end{gap:var(--sp-5)}.end-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--success-glow);border:2px solid var(--success);color:var(--success);font-size:22px;font-weight:700;animation:fadeIn .5s var(--ease-out);box-shadow:0 0 24px var(--success-glow)}.end-title{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-.04em}.end-subtitle{color:var(--text-3);font-size:13px;letter-spacing:.02em}.end-actions{display:flex;flex-direction:column;gap:var(--sp-3);width:auto;min-width:180px;margin-top:var(--sp-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px var(--sp-5);border:1px solid transparent;border-radius:var(--r-md);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;width:auto;letter-spacing:.02em;position:relative;overflow:hidden}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--accent);color:var(--bg);border-color:var(--accent);box-shadow:0 2px 8px #d4a24c33}.btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 4px 16px #d4a24c4d;transform:translateY(-1px)}.btn--secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn--secondary:hover:not(:disabled){border-color:var(--border-hover);background:var(--surface-3);transform:translateY(-1px)}.btn--accent{background:linear-gradient(135deg,var(--accent),#e0b05a);color:var(--bg);border-color:transparent;box-shadow:0 2px 12px #d4a24c40;font-weight:700}.btn--accent:hover:not(:disabled){box-shadow:0 4px 20px #d4a24c59;transform:translateY(-1px)}.btn--ghost{background:transparent;color:var(--text-3);border-color:var(--border)}.btn--ghost:hover:not(:disabled){color:var(--text-2);border-color:var(--border-hover);background:var(--surface)}.btn--small{padding:6px var(--sp-4);font-size:11px;border-radius:var(--r-sm)}.lobby-actions .btn{flex:1}.end-actions .btn{width:100%}.toast-container{position:fixed;bottom:var(--sp-5);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--sp-2);z-index:200;pointer-events:none}.toast{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-4);font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--text);white-space:nowrap;animation:toastIn var(--dur-normal) var(--ease-out),toastOut var(--dur-normal) var(--ease-in) 1.8s forwards;pointer-events:auto;cursor:pointer;text-align:left;width:auto;box-shadow:var(--shadow-md);backdrop-filter:blur(8px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@keyframes pulse-dot{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.8)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes countdown-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes pulse-ring{0%{transform:scale(1);opacity:.7}50%{transform:scale(1.03);opacity:1}to{transform:scale(1);opacity:.7}}.screen--session .circular-timer svg{animation:pulse-ring 4s var(--ease-out) infinite}
