@font-face{font-family:Jost;src:url('../assets/fonts/Jost-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:Jost;src:url('../assets/fonts/Jost-SemiBold.ttf');font-weight:600;font-display:swap}
@font-face{font-family:Cormorant;src:url('../assets/fonts/CormorantGaramond-SemiBold.ttf');font-weight:600;font-display:swap}
:root{color-scheme:light;--paper:#f7f5f0;--sand:#eae4d8;--green:#4f5a47;--ink:#2e2a24;--bronze:#7a6448;--line:#c9c6bb;--split:50%;font:400 17px/1.6 Jost,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}img,video{display:block;max-width:100%}button,input,textarea{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--bronze);outline-offset:4px}h1,h2{font:600 clamp(2rem,5vw,3.2rem)/1.08 Cormorant,Georgia,serif;margin:0 0 20px}h1{font-size:clamp(2.7rem,6vw,4.6rem)}h3{font-size:1.12rem;margin:0 0 16px}p{margin:0 0 16px;max-width:68ch}small,.hint{font-size:.86rem;color:var(--green)}header{max-width:1200px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}header img{width:250px;height:auto}.badge{display:inline-block;border:1px solid var(--line);padding:7px 12px;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:var(--green)}main{max-width:1120px;margin:auto;padding:0 32px}.intro{padding:64px 0 32px}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;font-weight:600;color:var(--bronze);margin-bottom:18px}.lead{font-size:1.2rem;color:var(--green)}.notice{border-left:3px solid var(--bronze);padding:14px 20px;background:var(--sand);font-size:.95rem;max-width:800px}.steps{padding:20px 0 35px;display:flex;gap:32px;list-style:none;border-bottom:1px solid var(--line);font-size:.9rem}.steps span{color:var(--bronze);margin-right:8px}.panel{padding:42px 0;border-bottom:1px solid var(--line)}.section-head{margin-bottom:24px}.capture-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.capture-grid>*{min-width:0}.camera-frame{background:var(--sand);position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:6px}.camera-frame video{width:100%;height:100%;object-fit:contain;background:#242821}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;min-height:300px;height:100%;color:var(--green);gap:12px}.empty p{font:600 1.8rem/1.2 Cormorant,Georgia,serif;margin:0}.outline-face{width:95px;height:130px;border:1px solid #a4ad9b;border-radius:45% 45% 48% 48%;position:relative;margin-bottom:8px}.outline-face:after{content:'';position:absolute;inset:34% 18%;border-top:1px solid #a4ad9b}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}button{border:1px solid var(--green);background:var(--green);color:white;border-radius:3px;padding:12px 17px;min-height:48px;font-size:.94rem}.secondary{background:transparent;color:var(--green)}.quiet{background:transparent;border-color:transparent;color:var(--bronze);text-decoration:underline}.check{display:flex;align-items:flex-start;gap:12px;font-size:.93rem;margin:0 0 20px;max-width:80ch}.check input{margin-top:5px;min-width:20px;width:20px;height:20px;accent-color:var(--green)}.file-label{display:block;font-weight:600;font-size:.95rem;margin-bottom:12px}.file-label input{display:block;width:100%;min-width:0;max-width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);font-weight:400;font-size:.8rem;background:white}.capture-options{padding:24px;background:#f0ede5;border-radius:6px}.status{font-size:.9rem;color:var(--green);margin:14px 0;min-height:1.5em}.record-clock{position:absolute;right:15px;top:15px;padding:6px 12px;background:#803f35;color:white;border-radius:30px}.style-empty{padding:24px;background:var(--sand);margin:24px 0;border-radius:6px}.style-empty p{margin:15px 0 0}.result-inputs{display:grid;grid-template-columns:1fr 1fr;gap:24px}.compare-empty{background:var(--sand);margin-top:24px;min-height:380px;border-radius:6px}.divider-symbol{font-size:2rem;font-weight:400}.comparison{position:relative;width:min(100%,660px);margin:28px auto 0;overflow:hidden;background:var(--sand);border-radius:6px;isolation:isolate;touch-action:pan-y}.comparison img{width:100%;height:100%;object-fit:contain}.comparison #before-image{position:relative}.comparison #after-image{position:absolute;inset:0;clip-path:inset(0 0 0 var(--split))}.image-label{position:absolute;top:14px;background:rgba(247,245,240,.94);padding:5px 9px;font-size:.72rem;color:var(--ink);pointer-events:none}.before-label{left:12px}.after-label{right:12px}.divider{position:absolute;left:var(--split);top:0;bottom:0;width:3px;background:white;transform:translateX(-50%);box-shadow:0 0 4px #555;pointer-events:none}.divider span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--paper);color:var(--green);font-size:1.5rem;box-shadow:0 2px 12px #0003}.slider-label{display:block;max-width:660px;margin:18px auto;text-align:center;font-size:.9rem}.slider-label input{display:block;width:100%;height:44px;accent-color:var(--green)}#result-video-panel{max-width:660px;margin:30px auto}#result-video,#source-video{width:100%;max-height:550px;background:#242821;margin:16px 0}fieldset{margin:30px 0 0;padding:22px;border:1px solid var(--line)}legend{font-weight:600;padding:0 8px}fieldset:disabled{opacity:.6}textarea{display:block;width:100%;margin-top:8px;border:1px solid var(--line);padding:12px;background:white;resize:vertical}footer{max-width:1120px;margin:auto;padding:32px;display:flex;gap:18px;flex-wrap:wrap;font-size:.85rem;color:var(--green)}footer p{font-size:.8rem;flex-basis:100%;max-width:85ch}.skip{position:fixed;top:8px;left:8px;padding:12px;background:white;z-index:10;transform:translateY(-200%)}.skip:focus-visible{transform:none}
@media(max-width:700px){header{padding:20px;align-items:flex-start}header img{width:180px}header .badge{font-size:.64rem;max-width:95px;text-align:center}main{padding:0 20px}.intro{padding-top:38px}.steps{gap:12px;display:grid;grid-template-columns:1fr 1fr 1fr;font-size:.76rem}.steps span{display:block;margin-bottom:5px}.capture-grid,.result-inputs{grid-template-columns:1fr;gap:24px}.panel{padding-block:32px}.capture-options{padding:18px}.actions button{flex:1 1 130px}.camera-frame{max-height:480px}.image-label{font-size:.66rem;max-width:42%}.compare-empty{min-height:290px}footer{padding:28px 20px}fieldset{padding:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.session-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.session-row span{flex:1 1 220px;font-size:.9rem}#saved-tests{margin-top:28px}

#login-form{display:grid;gap:1.2rem;max-width:30rem}#login-form label{display:grid;gap:.5rem}#login-form input{width:100%;font:inherit;padding:.8rem;border:1px solid #a9aba4;background:#fff;color:#30352d}#login-form button{justify-self:start}.auth-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}[hidden]{display:none!important}

.original-preview{margin-top:22px;padding:18px;border:1px solid var(--line);background:var(--sand)}.original-preview img{width:100%;max-height:340px;object-fit:contain;background:var(--paper);margin-bottom:12px}.original-preview p{font-size:.9rem;margin:0}

#camera{transform:scaleX(-1);object-fit:contain}.face-guide{position:absolute;pointer-events:none;fill:none;stroke:#fff9e8;stroke-width:1.8;filter:drop-shadow(0 1px 2px #272b24);opacity:.85}.face-guide .eye-guide{stroke-dasharray:3 3}.face-guide .center-guide{opacity:.7}.capture-countdown{position:absolute;inset:0;display:grid;place-items:center;font:600 5rem Jost,sans-serif;color:white;text-shadow:0 2px 10px #000;background:#17201433;pointer-events:none}.record-guidance{margin:14px 0;padding:14px;background:var(--sand);border-left:3px solid var(--bronze)}progress{display:block;width:100%;height:10px;margin:12px 0;accent-color:var(--green)}.capture-review{padding:18px;margin:20px 0;border:2px solid var(--bronze);background:var(--paper)}.capture-review img,.capture-review video{width:100%;max-height:340px;object-fit:contain;background:var(--sand);margin:12px 0}.capture-review h3{margin-top:12px}.capture-review p{font-size:.9rem}dialog{width:min(560px,calc(100% - 24px));max-height:92dvh;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:24px}dialog::backdrop{background:#20271ebd}.demo-close{display:block;margin-left:auto}.demo-stage{position:relative;max-width:230px;margin:auto}.demo-stage svg{display:block;width:100%;stroke:var(--bronze);stroke-width:2.5;fill:none}.demo-stage circle{fill:var(--green)}#demo-direction{position:absolute;right:4px;top:40%;font-size:2rem;color:var(--green)}#demo-caption{min-height:3em;font-weight:600;text-align:center}.demo-sequence{display:flex;gap:8px;flex-wrap:wrap;padding-left:20px;font-size:.8rem}.demo-sequence li{margin-right:12px}#record-clock{background:#7a2929;color:#fff}#capture-cancel{border:1px solid var(--bronze)}

.camera-frame .record-guidance{position:absolute;left:10px;right:10px;bottom:8px;margin:0;padding:10px;background:#f7f5f0ed;text-align:center;font-size:.88rem;line-height:1.35}.camera-frame .record-guidance progress{margin:8px 0 0;height:7px}#movement-demo>.actions{position:sticky;bottom:-24px;background:var(--paper);border-top:1px solid var(--line);padding:14px 24px;margin:0 -24px -24px}
