@import"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:DM Sans,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-glass);border-radius:4px}::-webkit-scrollbar-thumb{background:#9898a04d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9898a080}::selection{background:#ff2d784d;color:inherit}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button{font-family:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.video-player{position:relative;width:100%;height:100%;background:var(--bg-deep);overflow:hidden;display:flex;align-items:center;justify-content:center}.video-player video{width:100%;height:100%;object-fit:contain;display:block}.video-player video.video-offscreen{position:absolute;width:1px;height:1px;left:-9999px;opacity:0;pointer-events:none}.scrub-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;pointer-events:none;z-index:20;animation:scrubPulse .5s ease-out forwards}@keyframes scrubPulse{0%{opacity:1;transform:scale(.6)}15%{opacity:.2;transform:scale(.85)}30%{opacity:1;transform:scale(1)}45%{opacity:.2;transform:scale(1.05)}55%{opacity:1;transform:scale(1.1)}70%{opacity:.3;transform:scale(1.15)}85%{opacity:.8;transform:scale(1.2)}to{opacity:0;transform:scale(1.3)}}.voice-control{display:flex;flex-direction:column;align-items:center;gap:12px}.voice-button-container{position:relative;display:flex;flex-direction:column;align-items:center}.voice-button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;border:2px solid var(--accent-primary);background:linear-gradient(135deg,#ff2d781a,#ff6b9d1a);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.voice-button:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent 30%,rgba(255,45,120,.1) 70%);opacity:0;transition:opacity .3s ease}.voice-button:hover:before{opacity:1}.voice-button:hover{transform:scale(1.05);box-shadow:0 0 30px var(--accent-glow)}.voice-button.active{background:linear-gradient(135deg,#ff2d784d,#ff6b9d4d);animation:pulse 2s infinite}.voice-button.listening{border-color:var(--success);box-shadow:0 0 20px #22c55e66}.voice-button.processing{border-color:var(--warning);box-shadow:0 0 20px #eab30866}.voice-button.speaking{border-color:var(--accent-secondary);box-shadow:0 0 20px #ff6b9d66}.voice-button.hearing{border-color:var(--success);box-shadow:0 0 25px #22c55e99}.vad-indicator{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px;padding:8px 12px;border-radius:12px;background:#1a1a1dcc;border:1px solid var(--border-medium);min-width:120px;transition:all .2s ease}.vad-indicator.active{background:#22c55e26;border-color:#22c55e80;box-shadow:0 0 12px #22c55e4d}.vad-bar-container{width:100%;height:8px;background:#5c5c634d;border-radius:4px;position:relative;overflow:hidden}.vad-bar{height:100%;background:linear-gradient(90deg,var(--success),#4ade80);border-radius:4px;transition:width .1s ease}.vad-indicator.active .vad-bar{background:linear-gradient(90deg,var(--success),#86efac);box-shadow:0 0 8px #22c55e99}.vad-threshold{position:absolute;top:0;bottom:0;width:2px;background:#ef4444cc}.vad-score{font-size:14px;font-weight:700;font-family:SF Mono,Fira Code,monospace;color:var(--text-secondary);transition:color .2s ease}.vad-indicator.active .vad-score{color:var(--success)}.vad-label{font-size:13px;font-weight:700;color:var(--success);text-transform:uppercase;letter-spacing:.8px;animation:pulse-text 1s infinite}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.7}}.voice-button:disabled{opacity:.6;cursor:not-allowed}@keyframes pulse{0%,to{box-shadow:0 0 20px var(--accent-glow)}50%{box-shadow:0 0 40px #ff2d7899}}.voice-icon{font-size:24px;margin-bottom:2px}.voice-status{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.transcription-display{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;background:#111113cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;border:1px solid var(--border-subtle);max-width:340px}.transcription-label{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.transcription-text{font-size:17px;color:var(--text-primary);text-align:center}.voice-error{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;font-size:14px;color:var(--error)}.voice-error button{background:none;border:none;color:var(--error);cursor:pointer;font-size:16px;padding:0;line-height:1}.camera-feed{width:100%;height:100%;background:var(--bg-primary);overflow:hidden;display:flex;align-items:center;justify-content:center}.camera-video{height:100%;width:100%;object-fit:cover;transform:scaleX(-1)}.camera-error{padding:20px;text-align:center;color:var(--error);font-size:14px}.tutor-orb{position:relative;display:flex;align-items:center;justify-content:center;border-radius:42% 58% 55% 45%/50% 42% 58% 50%;background:linear-gradient(135deg,var(--bg-glass-hover),var(--bg-glass));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-medium);box-shadow:0 4px 24px #00000026,inset 0 1px 2px var(--border-subtle);transition:width var(--morph-duration, .6s) var(--morph-easing, cubic-bezier(.4, 0, .2, 1)),height var(--morph-duration, .6s) var(--morph-easing, cubic-bezier(.4, 0, .2, 1)),opacity .4s ease-out;animation:blobMorph 8s ease-in-out infinite;overflow:visible}.tutor-orb__emoji{display:block;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));-webkit-user-select:none;user-select:none;pointer-events:none;will-change:transform;transition:font-size var(--morph-duration, .6s) var(--morph-easing, cubic-bezier(.4, 0, .2, 1))}.tutor-orb--hero{width:340px;height:340px}.tutor-orb--large{width:260px;height:260px}.tutor-orb--pip{width:200px;height:200px}@media(max-width:768px){.tutor-orb--hero{width:260px;height:260px}.tutor-orb--large{width:200px;height:200px}.tutor-orb--pip{width:120px;height:120px}}.tutor-orb--disconnected{transform:scale(.95);opacity:.35}.tutor-orb--idle{animation:blobMorph 8s ease-in-out infinite,orbBreathe 4s ease-in-out infinite}.tutor-orb--speaking,.tutor-orb--listening,.tutor-orb--thinking{animation:blobMorph 8s ease-in-out infinite}.tutor-orb--thinking .tutor-orb__emoji{animation:orbBlink .6s ease-in-out infinite}.tutor-orb--observing{opacity:.5;animation:blobMorph 8s ease-in-out infinite,orbObserve 5s ease-in-out infinite}@keyframes blobMorph{0%,to{border-radius:42% 58% 55% 45%/50% 42% 58% 50%}25%{border-radius:55% 45% 48% 52%/42% 55% 45% 58%}50%{border-radius:48% 52% 42% 58%/55% 48% 52% 45%}75%{border-radius:45% 55% 58% 42%/48% 52% 42% 55%}}@keyframes orbBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes orbBlink{0%,to{opacity:1}50%{opacity:.3}}@keyframes orbObserve{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.start-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,rgba(255,45,120,.06) 0%,transparent 50%),radial-gradient(circle at 30% 80%,rgba(255,107,157,.04) 0%,transparent 40%),linear-gradient(170deg,var(--bg-deep) 0%,#130a10 50%,var(--bg-primary) 100%);z-index:1000}.start-screen:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");opacity:.5;pointer-events:none}.start-screen:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.5) 100%);pointer-events:none}.start-content{position:relative;z-index:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;max-width:500px;padding:0 24px}.start-orb{margin-bottom:8px}.start-song{font-family:var(--font-display);font-size:var(--text-hero);font-weight:400;color:var(--text-primary);line-height:1.1;margin:0}.start-artist{font-family:var(--font-body);font-size:var(--text-label-10ft);color:var(--text-secondary);margin:0}.routine-selector{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.routine-selector button{padding:12px 20px;font-size:16px;color:var(--text-secondary);background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:12px;cursor:pointer;transition:all .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.routine-selector button:hover{background:var(--bg-glass-hover)}.routine-selector button.active{color:var(--accent-primary);border-color:var(--accent-primary);background:#ff2d781f}.start-name-input{width:100%;max-width:360px;padding:16px 24px;font-family:var(--font-body);font-size:24px;color:var(--text-primary);background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-medium);border-radius:16px;text-align:center;outline:none;transition:border-color .3s,background .3s}.start-name-input::placeholder{color:var(--text-muted);opacity:.6}.start-name-input:focus{border-color:var(--accent-primary);background:var(--bg-glass-hover)}.start-button{padding:20px 64px;font-family:var(--font-body);font-size:22px;font-weight:600;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;border-radius:16px;cursor:pointer;transition:all .3s;margin-top:8px}.start-button:hover:not(:disabled){transform:scale(1.04);box-shadow:0 8px 32px var(--accent-glow)}.start-button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.start-song{font-size:40px}.start-artist{font-size:18px}.start-name-input{font-size:18px;padding:14px 20px}.start-button{font-size:18px;padding:16px 48px}}.full-demo-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-deep)}.full-demo-container video{max-width:100%;max-height:100%;object-fit:contain;transition:opacity 1.2s ease-out}.full-demo-container--fading video{opacity:0}.dev-panel{min-width:320px;max-width:380px;height:100%;background:#111113f2;border-left:1px solid var(--border-medium);display:flex;flex-direction:column;padding:12px;gap:12px;overflow-y:auto}.dev-panel-header{display:flex;align-items:center;gap:8px}.dev-badge{background:var(--error);color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:1px;text-transform:uppercase;flex-shrink:0}.dev-phase-info{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev-nav{display:flex;gap:6px;align-items:center}.dev-nav-btn{padding:4px 10px;font-size:12px;font-weight:600;border:1px solid var(--border-medium);border-radius:6px;background:var(--bg-glass-hover);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.dev-nav-btn:hover:not(:disabled){background:var(--border-medium);color:var(--text-primary)}.dev-nav-btn:disabled{opacity:.3;cursor:not-allowed}.dev-nav-select{flex:1;min-width:0;padding:4px 6px;font-size:12px;font-family:var(--font-mono);border:1px solid var(--border-medium);border-radius:6px;background:#111113cc;color:var(--text-primary);cursor:pointer}.dev-text-input-section{flex-shrink:0}.dev-text-input{display:flex;flex-direction:column;gap:6px}.dev-text-input-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.dev-text-input-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.dev-text-input-target{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.dev-text-input-target--connected{background:#22c55e26;color:var(--success)}.dev-text-input-target--disconnected{background:#ef444426;color:var(--error)}.dev-text-input-row{display:flex;gap:6px}.dev-text-input-field{flex:1;min-width:0;padding:6px 10px;font-size:12px;font-family:var(--font-mono);border:1px solid var(--border-medium);border-radius:6px;background:#111113cc;color:var(--text-primary);outline:none;transition:border-color .15s ease}.dev-text-input-field:focus{border-color:#9898a066}.dev-text-input-field:disabled{opacity:.5;cursor:not-allowed}.dev-text-input-field::placeholder{color:var(--text-muted)}.dev-text-input-btn{padding:6px 12px;font-size:12px;font-weight:600;border:1px solid rgba(255,45,120,.3);border-radius:6px;background:#ff2d7826;color:var(--accent-primary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.dev-text-input-btn:hover:not(:disabled){background:#ff2d7840;border-color:#ff2d7880}.dev-text-input-btn:disabled{opacity:.3;cursor:not-allowed}.dev-log{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:4px 0;font-size:11px;font-family:var(--font-mono)}.dev-log-entry{display:flex;gap:6px;padding:2px 4px;border-radius:3px;line-height:1.4}.dev-log-label{flex-shrink:0;font-weight:700;font-size:10px;text-transform:uppercase;min-width:38px}.dev-log-text{color:var(--text-secondary);word-break:break-word}.dev-log-entry--user .dev-log-label{color:var(--success)}.dev-log-entry--user{background:#22c55e0f}.dev-log-entry--agent .dev-log-label{color:var(--accent-primary)}.dev-log-entry--agent{background:#ff2d780f}.dev-log-entry--tool .dev-log-label{color:var(--warning)}.dev-log-entry--tool{background:#eab3080f}.dev-log-entry--message .dev-log-label{color:#38bdf8}.dev-log-entry--message{background:#38bdf80f}.dev-log-entry--mode .dev-log-label{color:var(--accent-secondary)}.dev-log-entry--mode{background:#ff6b9d0f}.play-pause-btn{position:absolute;bottom:32px;left:50%;transform:translate(-50%);z-index:120;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid var(--border-medium);border-radius:50%;background:#09090bb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);font-size:20px;cursor:pointer;opacity:.6;transition:opacity .3s ease,transform .15s ease;pointer-events:auto}.play-pause-btn:hover{opacity:1;background:#09090bd9;transform:translate(-50%) scale(1.08)}.play-pause-btn:active{transform:translate(-50%) scale(.95)}.ob-dev-panel{min-width:320px;max-width:380px;border-left:1px solid var(--border-medium);flex-shrink:0}.ob-dev-transcript{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0}.ob-dev-transcript-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.ob-dev-log{flex:1;min-height:80px;max-height:none;overflow-y:auto}.ob-dev-empty{color:var(--text-muted);font-style:italic;font-size:11px}.ob-dev-skip-section{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ob-dev-skip-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.ob-dev-skip-btn{padding:4px 6px;font-size:10px;font-family:var(--font-mono);font-weight:500;border:1px solid var(--border-medium);border-radius:4px;background:var(--bg-glass-hover);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;text-align:left;white-space:nowrap;min-width:0}.ob-dev-skip-btn:hover:not(:disabled){background:#ff2d7826;border-color:#ff2d784d;color:var(--accent-primary)}.ob-dev-skip-btn:disabled{opacity:.3;cursor:not-allowed}.ob-dev-test-bar{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.ob-dev-test-actions{display:flex;align-items:center;gap:6px}.ob-dev-test-all-btn,.ob-dev-test-stop-btn,.ob-dev-test-clear-btn{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid var(--border-medium);border-radius:4px;cursor:pointer;transition:all .15s ease}.ob-dev-test-all-btn{background:#ff2d7826;border-color:#ff2d784d;color:var(--accent-primary)}.ob-dev-test-all-btn:hover{background:#ff2d7840}.ob-dev-test-stop-btn{background:#ef444426;border-color:#ef44444d;color:var(--error)}.ob-dev-test-stop-btn:hover{background:#ef444440}.ob-dev-test-clear-btn{background:var(--bg-glass-hover);color:var(--text-muted)}.ob-dev-test-clear-btn:hover{color:var(--text-secondary)}.ob-dev-test-progress{font-size:11px;font-family:var(--font-mono);color:var(--text-secondary)}.ob-dev-results-section{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ob-dev-results-summary{font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);padding:4px 0}.ob-dev-results-table{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto}.ob-dev-result-row{border:1px solid var(--border-medium);border-radius:4px;overflow:hidden}.ob-dev-result-pass{border-color:#22c55e40;background:#22c55e0d}.ob-dev-result-fail{border-color:#ef444440;background:#ef44440d}.ob-dev-result-header{display:flex;align-items:center;gap:6px;padding:4px 6px;cursor:pointer;font-size:10px;font-family:var(--font-mono)}.ob-dev-result-header:hover{background:var(--bg-glass-hover)}.ob-dev-result-status{font-weight:700;font-size:9px;min-width:28px}.ob-dev-result-pass .ob-dev-result-status{color:var(--success)}.ob-dev-result-fail .ob-dev-result-status{color:var(--error)}.ob-dev-result-combo{flex:1;color:var(--text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-dev-result-time{color:var(--text-muted);flex-shrink:0}.ob-dev-result-details{padding:4px 6px;font-size:10px;color:var(--text-secondary);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.ob-dev-result-phases{word-break:break-all}.ob-dev-reasoning{font-style:italic;color:var(--text-muted);max-height:120px;overflow-y:auto}.ob-dev-result-errors ul{margin:2px 0 0 16px;padding:0;color:var(--error)}.ob-dev-result-errors li{margin-bottom:1px}.coach-layout{position:fixed;inset:0;display:grid;grid-template:1fr / 1fr;overflow:hidden;background:var(--bg-primary)}.orb-stage,.video-stage,.camera-stage{grid-area:1 / 1;min-width:0;min-height:0}.atmosphere{grid-area:1 / 1;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 30% 70%,rgba(255,45,120,.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 30%,rgba(255,107,157,.04) 0%,transparent 50%),linear-gradient(170deg,var(--bg-deep) 0%,var(--bg-primary) 100%)}.atmosphere:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");opacity:.5;pointer-events:none}.atmosphere:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.4) 100%);pointer-events:none}.orb-stage{position:absolute;z-index:100;display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:none;transition:top var(--morph-duration) var(--morph-easing),left var(--morph-duration) var(--morph-easing),right var(--morph-duration) var(--morph-easing),transform var(--morph-duration) var(--morph-easing)}.orb-stage>*{pointer-events:auto}.coach-layout[data-layout-mode=face] .orb-stage{top:50%;left:50%;right:auto;transform:translate(-50%,-55%)}.coach-layout[data-layout-mode=demo] .orb-stage{top:24px;left:calc(100% - 24px);right:auto;transform:translate(-100%)}.coach-layout[data-layout-mode=practice] .orb-stage{top:24px;left:50%;right:auto;transform:translate(-50%)}.coach-status{font-family:var(--font-display);font-size:var(--text-title);color:var(--text-primary);opacity:.6;text-align:center;margin:0;white-space:nowrap;transition:opacity .4s ease}.video-stage{z-index:10;display:flex;align-items:center;justify-content:center;transition:opacity var(--morph-duration) var(--morph-easing),transform var(--morph-duration) var(--morph-easing),filter var(--morph-duration) var(--morph-easing)}.coach-layout[data-layout-mode=face] .video-stage{opacity:0;transform:scale(.95);pointer-events:none}.coach-layout[data-layout-mode=demo] .video-stage{opacity:1;transform:scale(1)}.coach-layout[data-layout-mode=practice] .video-stage{opacity:0;transform:scale(.95);pointer-events:none}.camera-stage{z-index:5;transition:opacity var(--morph-duration) var(--morph-easing)}.coach-layout[data-layout-mode=face] .camera-stage,.coach-layout[data-layout-mode=demo] .camera-stage{opacity:0;pointer-events:none}.coach-layout[data-layout-mode=practice] .camera-stage{opacity:1}@media(max-width:768px){.coach-status{font-size:24px}.coach-layout[data-layout-mode=demo] .orb-stage{top:16px;left:calc(100% - 16px)}}:root{--bg-deep: #09090b;--bg-primary: #111113;--bg-secondary: #1a1a1d;--bg-tertiary: #232326;--text-primary: #ededf0;--text-secondary: #9898a0;--text-muted: #5c5c63;--accent-primary: #ff2d78;--accent-secondary: #ff6b9d;--accent-glow: rgba(255, 45, 120, .35);--success: #22c55e;--warning: #eab308;--error: #ef4444;--bg-glass: rgba(255, 255, 255, .05);--bg-glass-hover: rgba(255, 255, 255, .09);--border-subtle: rgba(255, 255, 255, .07);--border-medium: rgba(255, 255, 255, .12);--font-display: "Instrument Serif", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--text-hero: 64px;--text-title: 48px;--text-body-10ft: 32px;--text-label-10ft: 24px;--morph-duration: .6s;--morph-easing: cubic-bezier(.4, 0, .2, 1)}.app{height:100vh;overflow:hidden;position:relative}.app.error{display:flex;align-items:center;justify-content:center}.error-content{text-align:center;padding:40px;background:var(--bg-secondary);border-radius:16px;border:1px solid rgba(239,68,68,.2)}.error-icon{font-size:48px;display:block;margin-bottom:16px}.error-content h2{color:var(--error);margin-bottom:8px}.error-content p{color:var(--text-secondary);margin-bottom:20px}.error-content button{padding:10px 24px;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.error-content button:hover{background:var(--accent-secondary)}
