:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1d1d1f;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,a{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}h1,h2,p{margin-top:0}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:#fff}.topbar{width:min(100%,1160px);margin:0 auto;padding:26px 36px}.brand{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:650;letter-spacing:-.025em}.brand-mark{width:28px;height:28px;display:grid;place-items:center}.main-content{flex:1;width:min(100%,800px);margin:0 auto;padding:0 28px}.home-shell .main-content{display:flex;align-items:center;justify-content:center;padding-top:28px;padding-bottom:90px}.landing{width:100%;max-width:650px;margin:0 auto;text-align:center}.landing h1{max-width:630px;margin:0 auto 19px;font-size:clamp(38px,6vw,62px);font-weight:700;letter-spacing:-.055em;line-height:1.08}.hero-copy{max-width:475px;margin:0 auto 39px;color:#55555b;font-size:18px;line-height:1.5}.landing-steps{counter-reset:step;list-style:none;max-width:490px;margin:0 auto 33px;padding:0;text-align:left;border-top:1px solid #e5e5e7}.landing-steps li{display:flex;align-items:center;gap:19px;min-height:61px;padding:12px 4px;border-bottom:1px solid #e5e5e7;color:#3a3a3c;font-size:16px;line-height:1.4}.landing-steps li:before{counter-increment:step;content:counter(step);width:18px;flex:none;color:#66666b;font-size:14px;font-weight:600;text-align:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;min-width:180px;padding:12px 21px;border:1px solid transparent;border-radius:13px;font-size:16px;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;transition:background .16s ease,transform .16s ease,border-color .16s ease}.button:active:not(:disabled){transform:scale(.98)}.button-primary{color:#fff;background:#1d1d1f}.button-primary:hover:not(:disabled){background:#38383c}.button-secondary{color:#1d1d1f;background:#fff;border-color:#c9c9ce}.button-secondary:hover:not(:disabled){background:#f5f5f7}.button:focus-visible,.text-button:focus-visible,.icon-button:focus-visible{outline:3px solid #5a9ef8;outline-offset:3px}.hero-button{min-width:204px}.join-card{max-width:480px;margin:min(13vh,100px) auto 70px;text-align:center}.join-card h1{margin-bottom:18px;font-size:clamp(38px,6vw,52px);letter-spacing:-.055em;line-height:1.08}.join-card p{margin-bottom:31px;color:#55555b;font-size:18px;line-height:1.5}.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 0;border:0;background:none;color:#55555b;font-size:15px;font-weight:500;text-decoration:none}.text-button:hover:not(:disabled){color:#1d1d1f;text-decoration:underline}.join-card .text-button{display:flex;margin:17px auto 0}.workspace{width:100%;max-width:620px;margin:0 auto;padding:66px 0 70px}.workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.workspace-head h1{margin-bottom:11px;font-size:clamp(38px,5vw,48px);letter-spacing:-.055em;line-height:1.08}.workspace-head p{max-width:470px;margin:0;color:#55555b;font-size:16px;line-height:1.5}.timer-chip{flex:none;margin-top:7px;padding:9px 12px;border:1px solid #e5e5e7;border-radius:10px;color:#55555b;font-size:14px;font-variant-numeric:tabular-nums}.status-panel{display:flex;align-items:flex-start;gap:15px;margin:32px 0 13px;padding:19px 20px;border-radius:15px;background:#f5f5f7}.status-indicator{flex:none;width:10px;height:10px;margin-top:6px;border-radius:50%;background:#8a8a8f}.status-ready .status-indicator{background:#21885a}.status-text strong{display:block;font-size:17px;font-weight:650}.status-text p{margin:5px 0 0;color:#55555b;font-size:14px;line-height:1.45}.session-section{padding:28px 0 31px;border-bottom:1px solid #e5e5e7}.session-section h2{margin-bottom:8px;font-size:23px;font-weight:650;letter-spacing:-.035em}.session-section p{max-width:530px;margin-bottom:18px;color:#55555b;font-size:15px;line-height:1.5}.invite-url{overflow:hidden;max-width:100%;margin-bottom:15px;padding:14px 15px;border:1px solid #e5e5e7;border-radius:11px;background:#f9f9fa;color:#3a3a3c;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.invite-actions{display:flex;flex-wrap:wrap;gap:10px}.invite-actions .button{flex:1 1 180px}.session-section .inline-hint{margin:11px 0 0;font-size:14px}.fallback-panel .text-button{display:flex;margin-top:10px}.session-footer{padding-top:19px}.session-footer .text-button{color:#6e6e73}.loading-screen{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:60vh;gap:14px;color:#55555b}.loading-screen p{margin:0;font-size:15px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:20;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;width:min(calc(100vw - 32px),510px);min-height:56px;padding:11px 13px 11px 17px;border:1px solid #d9d9dd;border-radius:13px;background:#fff;box-shadow:0 12px 36px #0000001f;color:#1d1d1f;font-size:14px;line-height:1.45}.toast-error{border-color:#b85656}.toast span{flex:1}.toast button,.icon-button{display:grid;place-items:center;flex:none;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:#55555b}.toast button:hover,.icon-button:hover{background:#f5f5f7}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:16px;background:#14141799}.scanner-card{width:min(100%,490px);padding:20px;border-radius:20px;background:#fff;box-shadow:0 24px 70px #0003}.scanner-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.scanner-heading{margin:0;font-size:24px;font-weight:650;letter-spacing:-.035em}.scanner-tip{margin:3px 0 17px;color:#55555b;font-size:15px;line-height:1.45}.camera-window{position:relative;overflow:hidden;max-height:62vh;border-radius:13px;background:#111;aspect-ratio:4 / 5}.camera-window video{display:block;width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;top:17%;right:17%;bottom:17%;left:17%;pointer-events:none}.scan-frame span{position:absolute;width:35px;height:35px;border-color:#fff;border-style:solid;filter:drop-shadow(0 1px 4px rgba(0,0,0,.6))}.scan-frame span:nth-child(1){top:0;left:0;border-width:4px 0 0 4px;border-radius:9px 0 0}.scan-frame span:nth-child(2){top:0;right:0;border-width:4px 4px 0 0;border-radius:0 9px 0 0}.scan-frame span:nth-child(3){bottom:0;left:0;border-width:0 0 4px 4px;border-radius:0 0 0 9px}.scan-frame span:nth-child(4){bottom:0;right:0;border-width:0 4px 4px 0;border-radius:0 0 9px}.camera-message{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;padding:28px;background:#f5f5f7;color:#1d1d1f;text-align:center}.camera-message p{max-width:330px;margin:0;font-size:15px;line-height:1.5}@media(max-width:700px){.topbar{padding:22px 24px}.main-content{padding:0 24px}.home-shell .main-content{padding-top:30px;padding-bottom:64px}.landing h1{font-size:clamp(38px,10vw,49px)}.hero-copy{margin-bottom:32px;font-size:16px}.landing-steps{margin-bottom:30px}.landing-steps li{min-height:60px;font-size:15px}.join-card{margin-top:9vh}.join-card p{font-size:16px}.workspace{padding-top:38px;padding-bottom:60px}.workspace-head h1{font-size:38px}.session-section .button{width:min(100%,350px)}}@media(max-width:460px){.workspace-head{flex-direction:column;gap:13px}.timer-chip{margin-top:0}.status-panel{margin-top:26px}.session-section h2{font-size:21px}.scanner-overlay{padding:0}.scanner-card{display:flex;flex-direction:column;width:100%;height:100%;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));border-radius:0;box-shadow:none}.camera-window{flex:1;min-height:0;max-height:none;aspect-ratio:auto}}@media(prefers-reduced-motion:reduce){.button{transition:none}.spin{animation:none}}
