:root{--ink:#092f32;--teal:#0f5b5d;--mint:#d9efe7;--cream:#f7f4ec;--paper:#fffdf8;--coral:#ef795f;--muted:#637274;--line:#d8ded9;--shadow:0 24px 60px rgba(9,47,50,.12)}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}button,a{font:inherit}button{cursor:pointer}.skip-link{position:fixed;left:1rem;top:-5rem;background:#fff;padding:.75rem;z-index:99}.skip-link:focus{top:1rem}.site-header{height:82px;display:flex;align-items:center;max-width:1180px;margin:auto;padding:0 24px;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:700 18px Manrope}.brand b{color:var(--coral)}.brand-mark{display:grid;place-items:center;background:var(--teal);color:white;border-radius:10px;width:36px;height:36px;font-weight:800;transform:rotate(-5deg)}nav{display:flex;gap:34px}nav a{color:var(--muted);text-decoration:none;font-weight:600;font-size:14px}nav a.active,nav a:hover{color:var(--ink)}.icon-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:40px;height:40px;color:var(--ink)}
.hero{text-align:center;max-width:840px;margin:75px auto 48px;padding:0 20px}.eyebrow{display:inline-flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;font-size:11px;color:var(--teal)}.eyebrow>span{width:22px;height:2px;background:var(--coral)}.hero h1{font:800 clamp(48px,7vw,88px)/.98 Manrope;margin:18px 0 22px;letter-spacing:-.055em}.hero h1 em{font-style:normal;color:var(--coral)}.hero>p{color:var(--muted);font-size:18px;max-width:590px;margin:auto;line-height:1.6}.privacy-note{margin:22px auto 0;font-size:12px;color:var(--muted);display:flex;gap:7px;justify-content:center}.privacy-note span{color:var(--teal)}
.workspace{display:grid;grid-template-columns:1.06fr .94fr;max-width:1180px;margin:0 auto 110px;padding:0 24px;gap:22px}.camera-card,.output-card{background:var(--paper);border:1px solid rgba(9,47,50,.1);border-radius:24px;padding:25px;box-shadow:var(--shadow)}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.card-heading>div{display:flex;align-items:center;gap:12px}.card-heading h2{font:700 19px Manrope;margin:0}.step{display:grid;place-items:center;border-radius:8px;background:var(--mint);color:var(--teal);font-weight:800;font-size:11px;width:30px;height:30px}.step.coral{background:#fce2dc;color:#b54831}.status-pill{font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);padding:7px 10px;border-radius:20px}.status-pill i{display:inline-block;width:7px;height:7px;background:#9caaa8;border-radius:50%;margin-right:6px}.status-pill.live{color:var(--teal);background:var(--mint);border-color:transparent}.status-pill.live i{background:#19a87b;box-shadow:0 0 0 4px rgba(25,168,123,.12)}
.camera-stage{position:relative;aspect-ratio:4/3;background:#dce9e5;border-radius:18px;overflow:hidden}.camera-stage video,.camera-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-stage canvas{z-index:2}.camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--teal)}.camera-placeholder strong{font:700 16px Manrope}.camera-placeholder span{font-size:12px;color:var(--muted)}.hand-symbol{display:grid;place-items:center;background:rgba(255,255,255,.55);border-radius:50%;width:92px;height:92px;font-size:46px;margin-bottom:6px}.frame-guide{position:absolute;inset:25px;z-index:3;pointer-events:none}.frame-guide i{position:absolute;width:34px;height:34px;border-color:rgba(255,255,255,.8);border-style:solid}.frame-guide i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}.frame-guide i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}.frame-guide i:nth-child(3){right:0;bottom:0;border-width:0 2px 2px 0}.frame-guide i:nth-child(4){left:0;bottom:0;border-width:0 0 2px 2px}.live-result{position:absolute;z-index:5;left:16px;bottom:16px;background:rgba(9,47,50,.88);color:#fff;padding:10px 13px;border-radius:12px;backdrop-filter:blur(8px);display:grid;grid-template-columns:auto auto;gap:1px 12px}.live-result span{font-size:9px;text-transform:uppercase;letter-spacing:.12em}.live-result strong{font:800 27px Manrope;grid-row:1/3;grid-column:2}.live-result small{font-size:10px;color:#b9d8d5}.live-result[hidden]{display:none}.camera-actions,.output-actions{display:flex;gap:10px;margin-top:16px}.primary-button,.secondary-button,.speak-button,.copy-button{border:0;border-radius:11px;padding:13px 18px;font-weight:700;font-size:13px}.primary-button{background:var(--teal);color:white;flex:1}.primary-button:hover,.speak-button:hover{background:#0a4547}.secondary-button,.copy-button{border:1px solid var(--line);color:var(--ink);background:white}.camera-tip{text-align:center;color:var(--muted);font-size:11px;margin:12px 0 0}
.text-button{border:0;background:none;color:var(--coral);font-size:12px;font-weight:700}.message-box{min-height:245px;border:1px solid var(--line);border-radius:18px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;background:#fff}.message-box p{font:600 25px/1.55 Manrope;letter-spacing:.02em;overflow-wrap:anywhere;margin:0}.message-box p span{color:#aab4b2;font-size:15px;font-family:"DM Sans";font-weight:400}.message-controls{display:flex;justify-content:flex-end;gap:8px}.message-controls button{border:1px solid var(--line);background:var(--cream);border-radius:8px;padding:7px 11px;color:var(--muted);font-size:11px}.speak-button{background:var(--teal);color:white;flex:1}.copy-button{min-width:110px}.recognition-info{border-top:1px solid var(--line);margin-top:23px;padding-top:20px;display:grid;gap:14px}.recognition-info>div{display:flex;gap:11px;align-items:center}.info-icon{display:grid;place-items:center;width:30px;height:30px;background:var(--mint);color:var(--teal);border-radius:50%;font-size:12px;font-weight:800;flex:none}.coral-bg{background:#fce2dc;color:#b54831}.recognition-info p{margin:0;display:grid}.recognition-info b{font-size:12px}.recognition-info small{font-size:10px;color:var(--muted);margin-top:2px}
.learn-section{max-width:1180px;margin:0 auto 105px;padding:0 24px}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-title h2{font:800 36px Manrope;margin:10px 0 0;letter-spacing:-.04em}.section-title>p{max-width:390px;color:var(--muted);line-height:1.5;font-size:14px}.sign-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.sign-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px;transition:.2s}.sign-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(9,47,50,.08)}.sign-visual{height:120px;background:var(--mint);border-radius:12px;display:grid;place-items:center;font-size:55px;position:relative}.sign-visual span{position:absolute;right:9px;top:7px;font:800 30px Manrope;color:rgba(15,91,93,.18)}.sign-card h3{font:700 16px Manrope;margin:13px 0 3px}.sign-card p{font-size:11px;color:var(--muted);margin:0;line-height:1.4}.about-section{background:var(--ink);color:white;padding:70px max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.eyebrow.light{color:#a5d4ca}.about-section h2{font:800 42px/1.1 Manrope;letter-spacing:-.04em;margin:14px 0 0;max-width:500px}.about-section>p{color:#b8cecc;line-height:1.7}.metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.15);padding-top:30px}.metrics div{display:grid}.metrics b{font:800 30px Manrope;color:#f08b74}.metrics span{font-size:11px;color:#b8cecc;text-transform:uppercase;letter-spacing:.1em}footer{background:#061f21;color:#8ba6a4;padding:24px max(24px,calc((100vw - 1132px)/2));display:flex;justify-content:space-between;font-size:10px}.toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:white;padding:12px 18px;border-radius:10px;font-size:12px;transform:translateY(80px);opacity:0;transition:.25s;z-index:20}.toast.show{transform:translateY(0);opacity:1}
.data-section{max-width:1180px;margin:0 auto 105px;padding:0 24px}.section-actions{display:flex;gap:8px}.primary-link{background:var(--teal);color:#fff;text-decoration:none;padding:12px 18px;border-radius:11px;font-weight:700;font-size:13px}.history-list{display:grid;gap:10px;min-height:80px}.history-item{display:grid;grid-template-columns:1fr auto;gap:8px 20px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:17px 20px}.history-item strong{font:600 17px Manrope;overflow-wrap:anywhere}.history-item time,.history-item small{color:var(--muted);font-size:11px}.history-item small{grid-column:1/-1}.empty-state{padding:35px;text-align:center;border:1px dashed var(--line);border-radius:14px;color:var(--muted)}.dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:22px}.dashboard div{background:var(--paper);display:grid;padding:22px}.dashboard b{font:800 27px Manrope;color:var(--teal)}.dashboard span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.evaluation-section{background:var(--teal);color:#fff;padding:70px max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}.evaluation-copy h2{font:800 39px Manrope;margin:12px 0}.evaluation-copy>p{color:#c2ddda;line-height:1.7}.rating-summary{display:grid;gap:8px;border-top:1px solid rgba(255,255,255,.2);margin-top:28px;padding-top:20px;color:#c2ddda;font-size:12px}.rating-summary span{display:flex;justify-content:space-between}.rating-summary b{color:#fff}.evaluation-form{background:var(--paper);color:var(--ink);padding:25px;border-radius:20px;display:grid;gap:17px}.evaluation-form>label{display:grid;gap:7px;font-weight:700;font-size:12px}.evaluation-form select,.evaluation-form textarea{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fff;color:var(--ink);font:inherit;resize:vertical}.rating-row{display:grid;grid-template-columns:1fr 25px;gap:5px}.rating-row label{font-size:12px;font-weight:700}.rating-row output{font-weight:800;color:var(--coral);text-align:right}.rating-row input{grid-column:1/-1;width:100%;accent-color:var(--coral)}
.ai-section{background:var(--ink);color:#fff;padding:70px max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.ai-copy h2{font:800 40px/1.1 Manrope;letter-spacing:-.04em;margin:14px 0}.ai-copy p{color:#b8cecc;line-height:1.7}.ai-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.ai-badges span{border:1px solid rgba(255,255,255,.2);padding:7px 10px;border-radius:20px;font-size:10px;color:#c4d9d7}.trainer-card{background:var(--paper);color:var(--ink);border-radius:20px;padding:25px;display:grid;gap:17px}.trainer-heading{display:flex;justify-content:space-between;align-items:start}.trainer-heading>div{display:grid}.trainer-heading b{font:700 17px Manrope}.trainer-heading small{color:var(--muted);margin-top:3px}.trainer-label{display:grid;gap:7px;font-size:12px;font-weight:700}.trainer-label select{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fff;color:var(--ink)}.training-progress{height:8px;background:var(--mint);border-radius:10px;overflow:hidden}.training-progress i{display:block;width:0;height:100%;background:var(--coral);transition:width .15s}.trainer-card>p{margin:0;color:var(--muted);font-size:11px}.sample-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.sample-counts span{background:var(--cream);border-radius:7px;padding:7px;text-align:center;font-size:10px}.sample-counts b{color:var(--teal)}
body.high-contrast{--cream:#fff;--paper:#fff;--ink:#000;--teal:#004b4d;--muted:#343434;--line:#767676}.high-contrast .camera-stage{outline:3px solid #000}.high-contrast button:focus,.high-contrast a:focus{outline:3px solid #ff8c00;outline-offset:3px}
@media(max-width:800px){nav{display:none}.hero{margin-top:45px}.workspace{grid-template-columns:1fr}.sign-grid{grid-template-columns:repeat(2,1fr)}.section-title,.about-section{display:block}.section-title>p{margin-top:16px}.about-section>p{margin-top:30px}.metrics{margin-top:35px}.evaluation-section{grid-template-columns:1fr;gap:35px}.dashboard{grid-template-columns:1fr 1fr}footer{gap:10px;flex-direction:column}}@media(max-width:430px){.hero h1{font-size:46px}.workspace,.learn-section,.data-section{padding:0 14px}.camera-card,.output-card{padding:16px}.sign-grid{grid-template-columns:1fr 1fr}.site-header{height:68px}.message-box{min-height:200px}.about-section h2{font-size:34px}.section-title .section-actions{margin-top:15px}.dashboard{grid-template-columns:1fr}.output-actions{flex-wrap:wrap}.speak-button{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Moving-sign studio */
.mode-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px 16px;font-weight:600}
.mode-picker select,.motion-section input[type="text"],#motionLabel{max-width:100%;padding:12px;border:1px solid #b7ccc7;border-radius:10px;background:#fff;color:#163e39;font:inherit}
.motion-section{margin:56px 0;padding:28px;border-radius:24px;background:#edf5f1;color:#163e39}
.motion-section>p{max-width:900px;line-height:1.7}
.motion-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.motion-grid .trainer-card{min-width:0;background:#fff;color:#163e39}
#motionHelp{min-height:72px;line-height:1.5}
.speech-option{display:flex;align-items:center;gap:10px;margin-top:16px}
#motionLibrary{overflow-wrap:anywhere}
.live-result strong{max-width:230px;overflow-wrap:anywhere}
.high-contrast .motion-section,.high-contrast .motion-grid .trainer-card{background:#000;color:#fff;border:1px solid #fff}
@media(max-width:700px){.motion-grid{grid-template-columns:1fr}.mode-picker{align-items:flex-start;flex-direction:column}.motion-section{padding:18px}.motion-section .camera-actions{flex-wrap:wrap}}
.motion-section{max-width:1180px;margin:56px auto}
@media(max-width:800px){.ai-section{grid-template-columns:minmax(0,1fr);padding:24px 18px}.ai-section .trainer-card{min-width:0}.trainer-heading{flex-wrap:wrap;gap:12px}.trainer-label select{max-width:100%}}
