:root{--paper:#f7f7f5;--ink:#252529;--muted:#66666f;--line:#e8e7e6;--brand:#c92035;--brand-hover:#aa182b;--brand-soft:#fbedef;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c92035;outline-offset:4px}button,summary{min-height:44px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;pointer-events:none}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:20px;background:white;padding:12px;z-index:10}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shell{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 22px 24px;display:flex;flex-direction:column}.wordmark{display:flex;align-items:center;gap:9px;font-size:23px;font-weight:650;letter-spacing:-1px}.brand-icon{width:29px;height:29px;color:var(--brand);stroke-width:2}.nav-label{font-size:10px;color:#7d8695;letter-spacing:1.8px;margin:60px 12px 13px;font-weight:650}.nav-current{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;color:#a7172a;background:#fbedef;font-size:13px;font-weight:600}.workspace-note{margin:22px 12px;color:var(--muted);font-size:12px;line-height:1.8;max-width:140px}.sidebar-bottom{margin-top:auto;padding-top:48px}.self-service{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--muted);padding:0 10px 23px}.self-service svg{width:15px;height:15px}.account{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:20px}.avatar{display:grid;place-items:center;width:35px;height:35px;background:#eceef3;border:1px solid #e2e5eb;border-radius:50%;font-size:12px;font-weight:650}.account strong{font-size:12px;font-weight:600;display:block}.account small{display:block;font-size:10px;color:var(--muted)}.app{min-width:0}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 46px;border-bottom:1px solid var(--line);background:#ffffff90;gap:20px}.breadcrumbs{display:flex;gap:13px;align-items:center;font-size:12px;color:var(--muted)}.breadcrumbs strong{color:var(--ink);font-weight:500}.slash{color:#a8afb9}.preview-badge{display:flex;gap:7px;align-items:center;font-size:10px;color:#647081;letter-spacing:.5px;white-space:nowrap}.preview-badge i{width:6px;height:6px;background:#8390a4;border-radius:50%}.main{max-width:1260px;margin:auto;padding:42px 46px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:27px}.page-heading h1{font-size:26px;line-height:1.2;letter-spacing:-.8px;font-weight:600;margin:0 0 9px}.page-heading p{font-size:13px;color:var(--muted);margin:0}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;border:0;color:var(--muted);font-size:12px;padding:6px 0;white-space:nowrap}.text-button:hover{color:var(--brand)}.text-button svg{width:16px;height:16px}
.experience{background:white;border:1px solid #dfe3ea;border-radius:18px;overflow:hidden}.experience-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 30px;border-bottom:1px solid var(--line)}.section-label{font-size:10px;font-weight:650;letter-spacing:1.8px;display:flex;align-items:center;gap:9px}.section-label svg{width:16px;height:16px;color:var(--brand)}.time-note{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.time-note svg{width:14px;height:14px}.experience-body{display:grid;grid-template-columns:1fr 1fr;min-height:484px}.copy{padding:43px 34px 30px;display:flex;flex-direction:column;min-width:0}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--brand);font-size:10px;letter-spacing:1.5px;font-weight:650;text-transform:uppercase;margin-bottom:20px}.eyebrow:before{content:"";width:20px;height:1px;background:currentColor}.copy h2{font-size:clamp(32px,3.1vw,45px);line-height:1.12;letter-spacing:-1.9px;font-weight:560;margin:0 0 19px;max-width:440px;text-wrap:balance}.copy h2:focus{outline:none}.copy h2 em{font-style:normal;color:var(--brand)}.lead{font-size:14px;line-height:1.75;color:var(--muted);max-width:37ch;margin:0 0 23px}.briefing{list-style:none;padding:0;margin:0 0 23px;display:grid;gap:13px}.briefing li{display:flex;align-items:center;gap:11px;font-size:12px;color:#465162}.briefing svg{color:#73829a;width:17px;height:17px}.privacy-line{font-size:11px;line-height:1.65;color:var(--muted);margin:0 0 6px;max-width:43ch}.privacy-link{border:0;background:none;color:#615357;text-decoration:underline;text-underline-offset:3px;padding:5px 0;font-size:11px;text-align:left;min-height:36px}.action-group{margin-top:auto;padding-top:13px}.primary{display:flex;justify-content:space-between;align-items:center;gap:22px;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:8px;padding:13px 17px;font-size:13px;font-weight:600;min-height:48px;width:100%;max-width:340px;transition:background .18s,transform .18s}.primary:hover{background:#aa182b}.primary:active{transform:translateY(1px)}.primary svg{width:17px;height:17px}.action-note{font-size:10px;color:#748093;margin:10px 0 0;max-width:340px}.secondary{display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:11px 18px;border:1px solid #d6dce6;border-radius:8px;color:#49576a;font-size:12px;background:#fff}.secondary:hover{background:#f3f5f9}.notice{font-size:12px;padding:12px 14px;border-left:2px solid #bb8526;background:#faf5e9;color:#79591c;margin:0 0 17px;line-height:1.65}.mini-status{display:flex;align-items:center;gap:7px;font-size:11px;color:#53647b;margin:0 0 18px}.mini-status i{width:6px;height:6px;background:#49827b;border-radius:50%}.result-detail{border-top:1px solid var(--line);padding-top:16px;margin:0 0 20px;color:var(--muted);font-size:12px}.result-detail strong{color:var(--ink);font-weight:600;display:block;margin-bottom:3px}
.visual-wrap{padding:22px 22px 22px 0;min-width:0}.visual{background:#101d32;border-radius:12px;position:relative;min-height:440px;height:100%;overflow:hidden;color:#dce7f9;isolation:isolate}.visual:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:36px 36px}.visual-header{position:absolute;top:21px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.5px;color:#a8b9d2;z-index:1}.visual-state{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.2px}.visual-state i{background:#87aeff;border-radius:50%;width:5px;height:5px}.canvas-area{position:absolute;inset:28px 0 75px}canvas{display:block;width:100%;height:100%}.frame-corner{position:absolute;width:19px;height:19px;border:1px solid #637ca5;opacity:.55}.tl{top:86px;left:35px;border-right:0;border-bottom:0}.tr{top:86px;right:35px;border-left:0;border-bottom:0}.bl{bottom:118px;left:35px;border-right:0;border-top:0}.br{bottom:118px;right:35px;border-left:0;border-top:0}.visual-caption{position:absolute;bottom:24px;left:18px;right:18px;text-align:center}.visual-caption p{font-size:12px;font-weight:500;margin:0 0 5px}.visual-caption small{font-size:10px;color:#a4b5cf}.pose-track{display:flex;justify-content:center;gap:5px;margin-bottom:16px}.pose-track span{height:3px;width:26px;background:#344964;border-radius:2px}.pose-track span.active{background:#96b6ff}.motion-toggle{position:absolute;right:12px;bottom:94px;border:1px solid #435572;background:#14223a;color:#b9c9e2;border-radius:6px;width:32px;height:32px;min-height:32px;display:grid;place-items:center}.motion-toggle svg{width:12px;height:12px}.motion-toggle:hover{background:#263a58}.visual.success .canvas-area{opacity:.15}.completion-mark{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:45px;pointer-events:none}.completion-mark>div{display:grid;place-items:center;width:106px;height:106px;border:1px solid #719cea;background:#1c3456;border-radius:50%;box-shadow:0 0 0 18px #23395966,0 0 0 36px #23395933}.completion-mark svg{width:44px;height:44px;color:#b8d0ff;stroke-width:1.5}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0;padding:23px 30px;border-top:1px solid var(--line)}.steps li{display:flex;align-items:center;gap:10px;font-size:11px;color:#7f8793}.step-number{height:24px;width:24px;border:1px solid #dfe4ed;border-radius:50%;display:grid;place-items:center;font-size:10px;flex:none}.steps .current{color:var(--ink);font-weight:600}.steps .current .step-number{background:var(--brand);color:white;border-color:var(--brand)}.steps .done .step-number{background:#fbedef;border-color:#fbedef;color:var(--brand)}.steps small{display:block;font-size:10px;font-weight:400;color:#7f8793;margin-top:2px}.under-card{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 2px 22px;font-size:10px;color:#768092}.under-card>span{display:flex;align-items:center;gap:6px}.under-card svg{width:13px;height:13px}.review{border-top:1px solid var(--line);padding-top:4px;font-size:11px;color:var(--muted)}.review>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}.review>summary::-webkit-details-marker{display:none}.review>summary:after{content:"+";font-size:18px;font-weight:300}.review[open]>summary:after{content:"−"}.review-summary{display:flex;gap:11px;align-items:center}.review-summary strong{font-weight:550;color:#5f6a7c}.review-summary span{color:#7a8495}.review-controls{display:flex;flex-wrap:wrap;align-items:end;gap:16px;padding:8px 0 16px}.review-controls label{display:grid;gap:7px;font-size:10px}.review-controls select{border:1px solid #d5dce6;border-radius:6px;padding:9px 30px 9px 10px;background:white;color:#465268;font-size:11px;min-height:40px;max-width:100%}.review-controls button{font-size:11px;min-height:40px;padding:8px 12px}.review>p{font-size:11px;line-height:1.6;max-width:80ch}.footer{font-size:10px;color:#7d8795;display:flex;justify-content:space-between;padding-top:17px}.footer span:last-child{letter-spacing:1px;font-size:9px}
.dialog{width:min(510px,calc(100% - 32px));border:1px solid #dde3ed;border-radius:16px;padding:30px;color:var(--ink);box-shadow:0 24px 100px #08142d30;max-height:85dvh}.dialog::backdrop{background:#0c162d66;backdrop-filter:blur(3px)}.dialog h2{font-size:24px;font-weight:600;letter-spacing:-.7px;margin:0 0 15px}.dialog h3{font-size:13px;margin:23px 0 7px}.dialog p,.dialog li{font-size:13px;color:var(--muted);line-height:1.7}.dialog ol{padding-left:20px;display:grid;gap:12px}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.close{display:grid;place-items:center;min-width:36px;min-height:36px;border:0;border-radius:6px;background:#f0f3f8;color:#586478}.close svg{width:16px;height:16px}.toggle-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:20px;align-items:center;padding:18px 0;margin:22px 0 16px}.toggle-row span{font-size:13px;font-weight:600}.toggle-row small{display:block;font-size:11px;line-height:1.6;font-weight:400;color:var(--muted);margin-top:5px}.toggle-row input{margin-left:auto;width:20px;height:20px;accent-color:var(--brand);flex:none}.dialog .primary{max-width:none;margin-top:22px}.screen-enter{animation:enter .24s ease-out}@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1550px){.main{padding-top:60px}.experience-body{min-height:535px}.copy{padding:55px 42px 40px}.visual{min-height:485px}}
@media(max-width:1150px){.shell{grid-template-columns:172px minmax(0,1fr)}.sidebar{padding:28px 17px}.wordmark{font-size:21px}.topbar{padding:0 28px}.main{padding:30px 28px 20px}.copy{padding:35px 25px 27px}.copy h2{font-size:36px}.visual-wrap{padding:18px 18px 18px 0}.experience-top{padding:18px 25px}.visual{min-height:440px}.steps{padding:21px 25px}}
@media(max-width:900px){.shell{grid-template-columns:74px minmax(0,1fr)}.sidebar{padding:27px 17px;align-items:center}.wordmark>span,.nav-label,.workspace-note,.nav-current>span,.sidebar-bottom .self-service,.account>div:last-child{display:none}.nav-current{padding:10px;margin-top:50px}.sidebar-bottom{width:100%}.account{justify-content:center}.topbar{height:70px}.main{padding-top:27px}.copy h2{font-size:34px}.experience-body{grid-template-columns:1.08fr 1fr}.visual-header{left:16px;right:16px;font-size:8px}.visual-state{font-size:8px}.visual-caption p{font-size:11px}.visual-caption small{font-size:9px}.under-card{font-size:9px}}
@media(max-width:680px){.shell{display:block}.sidebar{display:none}.topbar{height:61px;padding:0 21px}.breadcrumbs{font-size:11px}.preview-badge{font-size:8px}.main{padding:25px 16px 18px}.page-heading{margin-bottom:21px;align-items:start}.page-heading h1{font-size:24px}.page-heading p{font-size:12px;max-width:26ch}.text-button{font-size:0;min-width:36px}.text-button svg{width:19px;height:19px}.experience-top{padding:16px 20px}.section-label{font-size:9px;letter-spacing:1.2px}.time-note{font-size:10px}.experience-body{display:flex;flex-direction:column}.copy{padding:27px 24px 24px}.eyebrow{font-size:9px;margin-bottom:15px}.copy h2{font-size:36px;max-width:360px;margin-bottom:15px}.lead{font-size:13px;max-width:42ch;margin-bottom:17px}.briefing{gap:10px;margin-bottom:18px}.primary{max-width:none}.action-note{max-width:none}.visual-wrap{padding:0 14px 14px}.visual{height:270px;min-height:270px}.canvas-area{inset:14px 0 55px}.visual-header{top:16px;left:17px;right:17px}.visual-caption{bottom:17px}.visual-caption p{font-size:11px;margin-bottom:2px}.visual-caption small{font-size:9px}.pose-track{margin-bottom:9px}.motion-toggle{bottom:72px}.frame-corner.tl,.frame-corner.tr{top:60px}.frame-corner.bl,.frame-corner.br{bottom:80px}.steps{padding:17px 19px;gap:10px}.steps li{font-size:10px;gap:7px}.steps small{font-size:8px}.step-number{width:21px;height:21px;font-size:9px}.under-card{font-size:9px;align-items:start;margin:15px 2px 18px}.under-card>span{max-width:58%;align-items:start}.review-summary{gap:7px}.review-summary span{font-size:9px}.review-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-controls label{min-width:0}.review-controls label:nth-child(2){grid-column:1/-1}.footer{font-size:9px;padding-top:15px}.footer span:last-child{font-size:8px}.dialog{padding:24px}.visual-first .visual-wrap{order:-1;padding:14px 14px 0}.visual-first .visual{height:300px;min-height:300px}.visual-first .copy{padding-top:25px}.visual-first .copy h2{font-size:32px}.completion-mark>div{width:72px;height:72px}.completion-mark svg{width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Quiet sculpture stage: no tracking grid or scan brackets. */
.visual:before{background:none}.frame-corner{display:none}.canvas-area{inset:35px 0 86px}.visual-header{letter-spacing:1.1px}.visual-caption{bottom:24px}.motion-toggle{top:49px;bottom:auto;border-color:#ffffff1c;background:transparent;color:#a6b8d2;width:30px;height:30px;min-height:30px}.pose-track{gap:6px}.pose-track span{width:19px;height:3px}.pose-track span.active{background:#b0c7ee}
@media(max-width:680px){.visual{height:300px;min-height:300px}.canvas-area{inset:30px 0 74px}.visual-first .visual{height:310px;min-height:310px}.visual-caption{bottom:19px}.motion-toggle{top:42px}}

/* Neutral matte keeps the guide distinct from the AmFatec brand accent. */
.visual{background:#f2f2f0;color:#4a4c52;border:1px solid #e7e7e3}.visual-header,.visual-state{color:#73757b}.visual-state i{background:#8a8b91}.visual-caption p{color:#4a4c52}.visual-caption small{color:#71737a}.pose-track span{background:#d9d9d5}.pose-track span.active{background:#c92035}.motion-toggle{border-color:#ddddda;color:#62656d;background:#ffffff55}.motion-toggle:hover{background:#e6e6e2}.completion-mark>div{background:#edf3ef;border-color:#b9cfc0;box-shadow:0 0 0 18px #e4eee666,0 0 0 36px #e4eee633}.completion-mark svg{color:#c92035}

/* AmFatec: original supplied mark, restrained brand red, and persistent mobile identity. */
.brand-symbol{--mark-size:42px;position:relative;display:block;flex:none;width:var(--mark-size);height:var(--mark-size);overflow:hidden;border-radius:50%;background:white}
.brand-symbol img{position:absolute;display:block;width:calc(var(--mark-size)*394/138);height:calc(var(--mark-size)*220/138);max-width:none;left:calc(var(--mark-size)*-128/138);top:calc(var(--mark-size)*-18/138)}
.wordmark{gap:10px;font-size:23px;letter-spacing:-.7px;font-weight:550;white-space:nowrap}.compact-brand{display:none;align-items:center;gap:9px;white-space:nowrap;font-size:21px;font-weight:550;letter-spacing:-.6px}.compact-brand .brand-symbol{--mark-size:34px}
.primary{background:var(--brand);border-color:var(--brand)}.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.nav-current{color:var(--brand-hover);background:var(--brand-soft)}.copy h2 em{color:var(--ink)}.eyebrow{color:var(--brand-hover)}.steps .done .step-number{color:#557362;background:#edf3ef}.completion-mark svg{color:#416d56}.footer span:last-child{letter-spacing:.9px}
@media(max-width:1150px){.sidebar{padding-left:16px;padding-right:16px}.wordmark{gap:7px;font-size:21px}.wordmark .brand-symbol{--mark-size:34px}}
@media(max-width:900px){.sidebar .wordmark{display:none}.compact-brand{display:flex}.breadcrumbs{display:none}.nav-current{margin-top:0}}
@media(max-width:680px){.compact-brand{font-size:21px}.compact-brand .brand-symbol{--mark-size:32px}.topbar{height:70px;padding:0 20px}.preview-badge{font-size:8px;letter-spacing:0}.copy h2{font-weight:560}.main{padding-top:24px}}
/* Study 04 — warm workspace, one dark verification surface. */
:root{--paper:#faf8f4;--ink:#201d19;--muted:#706a61;--line:#e7e1d8;--brand:#be202f;--brand-hover:#a81b28;--brand-soft:#f5eae7}
.sidebar{background:#fdfbf8}.topbar{background:transparent}.main{max-width:1330px}.nav-label{color:#8b8175}.nav-current{background:#efeae2;color:#302a24;font-weight:500}.workspace-note{color:#80786e}.avatar{background:#eee9e0;border-color:#e1dacf}.page-heading h1{font-weight:500;letter-spacing:-.8px}.page-heading p{color:#80786e}.preview-badge{color:#81796f}.preview-badge i{background:#9c9286}
.brand-symbol{background:transparent;overflow:visible;border-radius:0}.brand-symbol img{position:static;width:100%;height:100%;object-fit:contain;max-width:100%}.wordmark{font-weight:500}
.experience{--ink:#f4efe6;--muted:#b5aea3;--line:#ffffff19;background:#141412;border:1px solid #242420;border-radius:14px;color:var(--ink);box-shadow:0 12px 36px #33241208}
.experience-top{padding:19px 32px;border-color:#ffffff12}.section-label{font-weight:500;color:#d3cbc0;letter-spacing:1.6px}.section-label svg{color:#d3cbc0}.time-note{color:#a59d91}
.experience-body{grid-template-columns:1fr 1fr;min-height:490px}.copy{padding:42px 36px 34px}.copy h2{font-size:clamp(36px,3.6vw,52px);font-weight:400;letter-spacing:-1.8px;line-height:1.05;margin-bottom:23px}.copy h2 em{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;color:#f4efe6;letter-spacing:-1.8px}.eyebrow{color:#bfb4a6;font-weight:400;letter-spacing:1.8px;margin-bottom:26px;font-size:9px}.eyebrow:before{width:26px}.lead{color:#b5aea3;font-size:14px;line-height:1.7}.briefing{gap:0;margin-bottom:20px;border-top:1px solid #ffffff12;max-width:350px}.briefing li{padding:10px 0;border-bottom:1px solid #ffffff12;color:#c6beb2;font-size:12px}.briefing svg{color:#8f877d;width:16px;height:16px}.privacy-line{color:#aaa296;font-size:11px}.privacy-link{color:#d7cdc0;min-height:44px;font-size:11px;text-underline-offset:4px}.action-group{padding-top:18px}.action-note{color:#a49b8e;line-height:1.6}.experience .primary{color:#201d19;background:#f4efe6;border-color:#f4efe6;font-weight:550;border-radius:7px;padding:14px 18px;min-height:50px}.experience .primary:hover{background:#ded6c9;border-color:#ded6c9}.experience .secondary{background:transparent;border-color:#ffffff42;color:#f0e8db;min-height:48px}.experience .secondary:hover{background:#ffffff0c}.experience :focus-visible{outline-color:#f4efe6}.experience .mini-status{color:#c7c0b4}.experience .mini-status i{background:#c4b99f}.experience .result-detail{border-color:#ffffff20;color:#b5aea3}.experience .notice{color:#ebc79a;background:#382c1d;border-color:#c79155}
.visual-wrap{padding:0;display:flex;min-width:0}.visual{width:100%;background:radial-gradient(ellipse at 52% 45%,#22221e 0%,#141412 70%);border:0;border-radius:0;min-height:490px}.visual-header{top:26px;left:26px;right:26px;letter-spacing:1.4px;color:#b0a799;font-size:8px}.visual-state{color:#b0a799;font-size:9px}.visual-state i{background:#958b7d}.visual-caption{bottom:32px}.visual-caption p{color:#e1d8cb;font-size:12px}.visual-caption small{color:#a89e8e;font-size:10px}.pose-track span{background:#ffffff26}.pose-track span.active{background:#e3d6c2}.motion-toggle{top:54px;right:17px;width:44px;height:44px;min-height:44px;color:#b0a695;border-color:transparent;background:transparent}.motion-toggle:hover{background:#ffffff0b}.canvas-area{inset:34px 0 90px}.canvas-area canvas{position:absolute;inset:0;transition:opacity 650ms ease,transform 900ms cubic-bezier(.2,.8,.2,1)}#preparation-art{opacity:0;transform:scale(.97)}.preparation-mode #preparation-art{opacity:1;transform:scale(1)}.preparation-mode #face{opacity:0;transform:scale(.92)}.preparation-mode .pose-track{visibility:hidden}.visual.success .canvas-area{opacity:0}.completion-mark>div{background:#1e2921;border-color:#73957a;box-shadow:none;width:90px;height:90px}.completion-mark svg{color:#bbd2b9}
.steps{border-color:#ffffff16;padding:23px 32px;gap:20px}.steps li{color:#9f978b;font-weight:400}.steps small{color:#948b7e}.step-number{border:0;border-radius:0;width:22px;color:#8f8577;font-family:Consolas,monospace;font-size:11px}.steps .current{color:#f4efe6;font-weight:500}.steps .current .step-number{background:none;border:0;color:#f4efe6}.steps .done .step-number{background:none;border:0;color:#adc4a7}.steps .current{position:relative}.steps .current:before{content:"";position:absolute;top:-24px;left:0;width:38px;height:2px;background:#dfd3c0}
.under-card{color:#837a6d}.footer{color:#8d8376}.review-summary strong{color:#71675b}.review-summary span{color:#8d8376}.dialog{background:#faf8f4}.dialog .primary{background:#26221e;border-color:#26221e}.dialog .primary:hover{background:#40382f}
@media(min-width:1550px){.experience-body,.visual{min-height:540px}.copy{padding:48px 44px 38px}}
@media(max-width:1150px){.copy{padding:34px 27px 28px}.copy h2{font-size:42px}.visual{min-height:500px}.experience-top{padding-inline:27px}.visual-header{left:18px;right:18px;font-size:7px}.visual-state{font-size:8px}.steps{padding-inline:27px}}
@media(min-width:681px) and (max-width:900px){.main{padding-inline:23px}.experience-body{grid-template-columns:1.1fr 1fr}.copy{padding:31px 22px 27px}.copy h2{font-size:36px}.lead{font-size:12px}.briefing li{font-size:11px}.visual-header>span:first-child{display:none}.visual-header{justify-content:flex-end}.visual-caption{left:12px;right:12px}.visual-caption small{font-size:9px}}
@media(max-width:680px){.main{padding:22px 16px 18px}.experience{border-radius:12px}.experience-top{padding:15px 20px}.experience-body{display:flex;min-height:0}.copy{padding:26px 24px}.copy h2{font-size:40px;margin-bottom:17px}.eyebrow{margin-bottom:18px}.lead{font-size:13px}.briefing{margin-bottom:15px}.briefing li{padding:8px 0}.privacy-line{font-size:11px}.action-group{padding-top:13px}.visual-wrap{padding:0}.visual{height:280px;min-height:280px}.visual-header{top:15px;left:22px;right:22px;font-size:8px}.visual-header>span:first-child{display:inline}.canvas-area{inset:25px 0 64px}.visual-caption{bottom:16px}.visual-caption p{font-size:11px}.visual-caption small{font-size:9px}.motion-toggle{top:35px;right:11px}.preparation-mode .visual-caption{bottom:22px}.visual-first .visual-wrap{order:-1;padding:0}.visual-first .visual{height:284px;min-height:284px}.visual-first .copy{padding-top:14px}.visual-first .copy h2{font-size:34px}.steps{padding:20px;gap:10px}.steps .current:before{top:-21px}.steps small{font-size:8px}.step-number{font-size:10px;width:18px}.steps li{gap:5px}.completion-mark>div{width:72px;height:72px}}

/* Accessible movement previews before capture. */
.pose-track{gap:8px;margin-bottom:8px}.pose-track button{min-width:64px;min-height:44px;padding:8px 10px;background:transparent;border:1px solid transparent;border-radius:8px;color:#aaa294;font:inherit;font-size:10px;cursor:pointer}.pose-track button:before{content:"";display:block;width:23px;height:3px;margin:0 auto 7px;background:#ffffff26;border-radius:2px}.pose-track button.active{color:#e3d6c2}.pose-track button.active:before{background:#e3d6c2}.pose-track button:hover:not(:disabled){background:#ffffff0b;border-color:#ffffff26}.pose-track button:focus-visible{outline:2px solid #e3d6c2;outline-offset:2px}.pose-track button:disabled{cursor:default;opacity:1}.canvas-area{bottom:122px}.preparation-mode .canvas-area{bottom:90px}@media(max-width:680px){.canvas-area{bottom:105px}.preparation-mode .canvas-area{bottom:64px}}
#preparation-art{position:absolute;inset:0;display:grid;place-items:center;transition:opacity 400ms ease;pointer-events:none}#preparation-art svg{height:100%;width:100%;max-height:360px;max-width:340px}.preparation-mode .canvas-area{inset:46px 16px 94px}@media(max-width:680px){.preparation-mode .canvas-area{inset:24px 16px 63px}}@media(prefers-reduced-motion:reduce){#preparation-art{transition:none}}

/* ---- live integration (not in the prototype) -------------------------------------- */
/* Camera on = the stage: the panel leaves the card and covers the screen. On it: the
   participant's face, an oval to aim at, one bold line, Start, and a small ✕. Nothing else. */
.guide{position:absolute;inset:0}
#preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);background:#0b0b0a}
#preview[hidden]{display:none}
body.stage-on{overflow:hidden}
.visual.stage{position:fixed;inset:0;z-index:100;width:auto;height:100vh;height:100dvh;min-height:0;border-radius:0;background:#0b0b0a;animation:stage-in .2s ease-out}
@keyframes stage-in{from{opacity:0}}
.visual.stage .canvas-area{inset:0}
.visual.stage .guide,.visual.stage #preparation-art,.visual.stage>.visual-header,.visual.stage>.visual-caption,.visual.stage>.motion-toggle{display:none}
/* A laptop camera is 640x480: keep it a sensible size in the middle instead of stretching it over a monitor. */
@media(min-width:681px){.visual.stage .canvas-area{margin:auto;width:min(100%,960px);height:min(100%,720px)}}
.stage-ui{--oval-h:min(52dvh,420px,101vw);--oval-y:44%;position:absolute;inset:0;z-index:2;background:linear-gradient(transparent 58%,#0b0b0ad9)}
/* The oval is a hole: its shadow dims everything around the face. */
.stage-oval{position:absolute;top:var(--oval-y);left:50%;height:var(--oval-h);aspect-ratio:3/4;transform:translate(-50%,-50%);border-radius:50%;border:2px solid #f4efe6e6;box-shadow:0 0 0 100vmax #0b0b0a8c;pointer-events:none}
/* The line always sits just under the oval, so it does not jump when Start goes away. */
.stage-cue{position:absolute;top:calc(var(--oval-y) + var(--oval-h)/2 + 22px);left:20px;right:20px;margin:0 auto;max-width:20ch;text-align:center;text-wrap:balance;color:#fff;font-size:clamp(24px,6.6vw,34px);font-weight:700;line-height:1.18;letter-spacing:-.4px;text-shadow:0 1px 10px #000c}
.stage-cue:focus{outline:none}
.stage-actions{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:0;right:0;margin:0 auto;width:min(100% - 40px,340px)}
.stage-x{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#0b0b0a80;color:#f4efe6}
.stage-x:hover{background:#0b0b0acc}
.stage-x svg{width:18px;height:18px;stroke-width:2}
/* Sent and waiting: the camera is off, so no oval; the line sits in the middle. */
.stage-ui.checking{background:none}
.stage-ui.checking .stage-oval{display:none}
.stage-ui.checking .stage-cue{top:50%;transform:translateY(-50%)}
/* Capture: the head guide small in the top-right corner (pose = the SDK's cue), a 12-segment
   frame ring around the oval (one segment per SDK frame event), and a fill bar for the two hold
   windows: 0.8 s of preparation, then the settle after "Checking has started" (the engine's
   3.2 s). The bar is decoration; only SDK events change the line. */
.visual.capture .guide{display:block;inset:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) auto auto;width:90px;height:90px;z-index:3;border-radius:50%;background:#0b0b0acc}
.stage-ring{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);overflow:visible;fill:none;stroke-width:5;display:none}
.visual.capture .stage-ring{display:block}
.ring-track{stroke:#f4efe640}.ring-fill{stroke:#9ed0a6}
.stage-bar{position:absolute;top:calc(var(--oval-y) + var(--oval-h)/2 + 10px);left:50%;width:120px;height:3px;margin-left:-60px;border-radius:2px;background:#f4efe640;overflow:hidden;display:none}
.stage-bar:after{content:"";display:block;height:100%;width:0;background:#9ed0a6}
.stage-ui.preparing .stage-bar,.stage-ui.settling .stage-bar{display:block}
.stage-ui.preparing .stage-bar:after{animation:stage-fill .8s linear forwards}
.stage-ui.settling .stage-bar:after{animation:stage-fill var(--settle-ms,3.2s) linear forwards}
@keyframes stage-fill{to{width:100%}}
@media(prefers-reduced-motion:reduce){.stage-bar{display:none!important}}
/* Glow challenge (plan Phase 4): the area around the oval takes the colour main.js paints into
   --glow (neutral white, then the engine's schedule). It lights the face and replaces the hold
   bar; the line turns dark so it stays readable on the light colour. */
.stage-ui.glowing{background:none}
.stage-ui.glowing .stage-oval{box-shadow:0 0 0 100vmax rgb(var(--glow,255 255 255))}
.stage-ui.glowing .stage-bar{display:none!important}
.stage-ui.glowing .stage-cue{color:#1b1b19;text-shadow:none}
.stage-ui.glowing .stage-cue small{color:#1b1b19cc}
.stage-cue small{display:block;margin-top:8px;font-size:15px;font-weight:500;letter-spacing:0;color:#f4efe6d9}
/* A phone held sideways: smaller oval, one-line instruction. */
@media(max-height:480px){.stage-ui{--oval-h:46dvh;--oval-y:36%}.stage-cue{font-size:18px;max-width:none}.stage-cue br{display:none}.stage-actions{bottom:10px}}
/* Demo on a phone: the figure comes first, and the copy is kept short so "I'm ready" stays in reach. */
@media(max-width:680px){.visual-first .eyebrow{display:none}.visual-first .copy h2{font-size:30px}.visual-first .copy h2 br{display:none}}
.privacy-link+.privacy-link{margin-left:22px}
.account small{display:block}
.noscript{padding:24px}
button[aria-busy="true"]{opacity:.7;cursor:progress}
@media(prefers-reduced-motion:reduce){.screen-enter{animation:none}}

/* Account entry: quiet secondary action, no extra enrollment selector. */
.account-journey{list-style:none;padding:0;margin:24px 0;display:grid;gap:18px;counter-reset:account}
.account-journey li{position:relative;padding-left:35px;counter-increment:account}
.account-journey li:before{content:'0' counter(account);position:absolute;left:0;top:2px;font-size:10px;color:#b5aea3}
.account-journey strong{display:block;font-size:13px;font-weight:500;color:#f4efe6}
.account-journey span{display:block;margin-top:5px;font-size:12px;color:#b5aea3;line-height:1.6}
.account-create{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:340px;min-height:50px;padding:12px 22px;border:1px solid #776f62;border-radius:8px;background:transparent;color:#f4efe6;font:inherit;font-size:13px;cursor:pointer}
.account-create:hover{background:#ffffff0a;border-color:#c8beab}
.account-create:focus-visible{outline:2px solid #f4efe6;outline-offset:4px}
.account-create:disabled{opacity:.5;cursor:wait}

.account-create{display:flex;width:100%;margin-top:12px}

/* Face guide on the camera screen: the oval turns green and Start wakes up once the face is well placed. */
.stage-oval{transition:border-color .25s}
.stage-ui.placed .stage-oval{border-color:#9ed0a6}
.stage-actions .primary:disabled:not([aria-busy]){opacity:.35}
.stage-note{margin:8px 0 0;text-align:center;font-size:12px;color:#f4efe6b3}
.signout{margin-left:auto;border:0;background:none;color:var(--muted);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px;min-height:36px;padding:0 4px;white-space:nowrap}
.experience-body.solo{grid-template-columns:1fr}
/* Result: a tick for a server-confirmed pass, a cross for a server refusal. */
.eyebrow.pass{color:#9ed0a6}
.visual.refused .completion-mark>div{background:#2b1c1d;border-color:#a8616a}
.visual.refused .completion-mark svg{color:#f0b9be}
.scores{margin:0 0 22px;border-top:1px solid #ffffff20}
.scores div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid #ffffff20;font-size:13px}
.scores dt{color:#b5aea3}
.scores dd{margin:0;color:#f4efe6;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
/* On a phone the mark sits right above the verdict, so the panel is only as tall as the mark needs. */
@media(max-width:680px){.visual-first .visual.success{height:150px;min-height:150px}.visual.success .completion-mark{padding-bottom:0}}
/* Single turn: an arrow beside the oval on the side to turn to, and a turn meter under the oval
   (grey = a little more, green = good, red = too far). Decorative: the line always says it in words.
   Reduced motion: no ring, no meter; the line gives "Frame N of 12" instead. */
.stage-arrow{position:absolute;top:var(--oval-y);left:max(8px,calc(50% - var(--oval-h)*3/8 - 60px));width:52px;height:52px;margin-top:-26px;fill:none;stroke:#9ed0a6;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 6px #000c);animation:nudge .9s ease-in-out infinite alternate}
.stage-arrow.right{left:auto;right:max(8px,calc(50% - var(--oval-h)*3/8 - 60px));transform:scaleX(-1);animation-name:nudge-r}
@keyframes nudge{to{translate:-6px 0}}@keyframes nudge-r{to{translate:6px 0}}
.turn-meter{position:absolute;top:calc(var(--oval-y) + var(--oval-h)/2 + 8px);left:50%;width:160px;height:6px;margin-left:-80px;border-radius:3px;overflow:hidden;background:linear-gradient(90deg,#f4efe640 0 35%,#9ed0a666 35% 75%,#e0707066 75%)}
.turn-meter i{display:block;height:100%;width:18%;border-radius:3px;background:#f4efe6;transition:width .2s}
.turn-meter[data-zone=good] i{width:55%;background:#9ed0a6}
.turn-meter[data-zone=far] i,.turn-meter[data-zone=lost] i{width:100%;background:#e07070}
@media(prefers-reduced-motion:reduce){.turn-meter,.stage-ring{display:none!important}}

/* Readable copy and reachable controls at phone sizes and browser zoom. */
.lead{font-size:16px;max-width:46ch}
.briefing li,.privacy-line,.notice,.result-detail,.account-journey strong,.account-journey span{font-size:14px}
.primary,.account-create{font-size:16px;text-decoration:none}
.privacy-link,.action-note,.text-button,.signout,.page-heading p{font-size:14px}
.eyebrow,.section-label,.time-note,.visual-header,.visual-state,.visual-caption small,.pose-track button,.steps li,.steps small,.step-number,.under-card,.footer,.footer span:last-child,.account small,.nav-label{font-size:12px}
.visual-caption p{font-size:14px}
.under-card,.footer,.page-heading p{color:#70685e}
.steps small{color:#b5aea3}
.privacy-link,.text-button,.signout,.close{min-width:44px;min-height:44px}
.privacy-link{display:inline-flex;align-items:center;padding:8px 4px}
.close{flex:none}
.dialog p,.dialog li,.dialog h3{font-size:16px}
.dialog .privacy-link{color:var(--ink)}
.topbar{height:auto;min-height:82px;flex-wrap:wrap;padding-block:12px}
.account small,.mobile-account,.action-note{overflow-wrap:anywhere}
.mobile-account{display:none;font-size:12px;color:var(--muted)}
.workspace-body{min-height:340px}
.workspace-body .copy{max-width:800px}
.workspace-body .lead{max-width:58ch}
.experience-top{flex-wrap:wrap}
.steps li{min-width:0;align-items:flex-start}
.under-card{align-items:flex-start}
@media(max-width:900px){
  .mobile-account{display:block;flex:1;min-width:120px}
  .topbar{gap:8px 16px}
}
@media(max-width:680px){
  .topbar{min-height:64px;padding:10px 16px}
  .mobile-account{order:3;flex-basis:100%}
  .mobile-account:empty{display:none}
  .main{padding:18px 12px}
  .page-heading{margin-bottom:16px}
  .page-heading h1{font-size:23px}
  .text-button span{display:none}
  .copy{padding:22px 20px}
  .copy h2{font-size:36px}
  .eyebrow{margin-bottom:14px;letter-spacing:1px}
  .lead{margin-bottom:16px}
  .experience-top{padding:12px 20px;gap:6px}
  .section-label{letter-spacing:.7px}
  .visual-wrap:has(.preparation-mode:not(.stage)){display:none}
  .demo-mode .visual-wrap{order:0}
  .demo-mode .copy{padding-top:22px}
  .demo-mode .visual{height:300px;min-height:300px}
  .demo-mode .canvas-area{inset:28px 0 135px}
  .demo-mode .visual-caption{bottom:16px}
  .visual-header{font-size:12px;letter-spacing:.5px}
  .visual-first .visual.success{height:130px;min-height:130px}
  .steps{padding:16px 14px;gap:10px}
  .steps li{flex-direction:column;gap:4px}
  .steps .current:before{top:-17px}
  .under-card{flex-direction:column;gap:8px}
  .under-card>span{max-width:100%}
  .privacy-link+.privacy-link{margin-left:12px}
  .dialog{padding:20px}
}
@media(max-height:480px){
  .stage-cue{font-size:18px;top:calc(var(--oval-y) + var(--oval-h)/2 + 14px)}
  .stage-cue small{font-size:13px;margin-top:4px}
  .stage-actions{bottom:max(8px,env(safe-area-inset-bottom))}
  .stage-ui:has(.stage-actions .primary){--oval-h:32dvh;--oval-y:30%}
}

/* Focused participant layout. Capture illumination and oval geometry stay unchanged. */
.shell{display:block}
.sidebar,.breadcrumbs,.footer,.page-heading p,.experience-top,#linked-note{display:none}
.topbar{min-height:76px;padding:16px max(24px,calc((100vw - 1120px)/2));gap:12px 24px}
.compact-brand{display:flex;font-size:22px;letter-spacing:-.6px}
.compact-brand .brand-symbol{--mark-size:36px}
.mobile-account{display:block;flex:1;text-align:right;min-width:0;font-size:13px}
.main{max-width:620px;padding:40px 24px 28px}
.page-heading{margin-bottom:20px;gap:16px}
.page-heading h1{font-size:16px;font-weight:500;letter-spacing:0;margin:0;color:#706a61}
.page-heading .text-button{font-size:13px;gap:6px}
.experience{border-radius:20px;box-shadow:0 16px 48px #3324120a}
.experience-body{display:flex;flex-direction:column;min-height:0}
.copy{padding:36px}
.copy h2{font-size:38px;font-weight:500;line-height:1.13;letter-spacing:-1.3px;max-width:100%;margin-bottom:16px;text-wrap:balance}
.copy h2 em{font:inherit;letter-spacing:inherit}
.eyebrow{font-size:11px;letter-spacing:1.5px;margin-bottom:20px}
.eyebrow:before{display:none}
.lead{font-size:16px;line-height:1.65;max-width:100%;margin-bottom:24px}
.action-group{padding-top:8px;margin-top:12px}
.primary,.account-create{max-width:none;min-height:52px;border-radius:10px;font-size:16px}
.account-create{margin-top:12px}
.action-note{font-size:13px;line-height:1.6;max-width:none;margin-top:14px;color:#b5aea3}
.briefing{gap:0;margin:0 0 16px}
.briefing li{font-size:15px;padding:12px 0}
.briefing svg{width:20px;height:20px}
.privacy-line{font-size:14px;max-width:none}
.privacy-link{font-size:14px}
.under-card{justify-content:center;font-size:12px;line-height:1.6;margin:20px 8px}
.under-card>span{max-width:100%}
.under-card svg{margin-top:3px}
.steps{padding:18px 36px;gap:20px}
.steps li{font-size:12px;flex-direction:row;align-items:center;gap:8px}
.steps small{display:none}
.steps .current:before{display:none}
.visual-wrap:has(.preparation-mode:not(.stage)){display:none}
body[data-view=signin] .copy{padding:42px 36px}
body[data-view=signin] .lead{max-width:33ch}
body[data-view=signin] .action-group{margin-top:22px}
body[data-view=demo] .main{max-width:880px}
.demo-mode{display:grid;grid-template-columns:1.1fr 1fr}
.demo-mode .visual-wrap{padding:0;order:0;display:block}
.demo-mode .visual{min-height:400px;height:100%;border:0;border-radius:0}
.demo-mode .canvas-area{inset:30px 0 140px}
.demo-mode .visual-caption{bottom:24px}
.visual-first:not(.demo-mode) .visual-wrap{order:-1;padding:32px 0 0}
.visual-first:not(.demo-mode) .visual.success{height:88px;min-height:88px;border:0;border-radius:0}
.visual.success .completion-mark{padding:0}
.visual.success .completion-mark>div{width:64px;height:64px;box-shadow:none}
.visual.success .completion-mark svg{width:30px;height:30px;color:#a8d4b4}
.visual.success .visual-header,.visual.success .visual-caption,.visual.success .canvas-area{display:none}
.visual-first:not(.demo-mode) .copy{padding-top:24px;text-align:center}
.visual-first:not(.demo-mode) .eyebrow{justify-content:center}
.visual-first:not(.demo-mode) .primary{text-align:left}
.visual.capture .guide{display:none}
.stage-arrow{animation:none;width:32px;height:32px;margin-top:-16px;left:max(6px,calc(50% - var(--oval-h)*3/8 - 44px));stroke-width:4}
.stage-arrow.right{left:auto;right:max(6px,calc(50% - var(--oval-h)*3/8 - 44px))}
.stage-cue{max-width:28ch;font-size:clamp(24px,5.6vw,32px);font-weight:600;letter-spacing:-.5px}
.stage-cue small{font-size:14px;font-weight:400;max-width:34ch;margin:10px auto 0;line-height:1.5}
.stage-ring{stroke-width:3}
.workspace-body .copy{max-width:none}
@media(max-width:680px){
  .topbar{min-height:68px;padding:14px 20px}
  .compact-brand{font-size:21px}
  .compact-brand .brand-symbol{--mark-size:32px}
  .mobile-account{order:3;flex-basis:100%;text-align:left;font-size:12px}
  .main{padding:24px 16px}
  .page-heading{margin-bottom:16px}
  .page-heading .text-button span{display:inline}
  .experience{border-radius:16px}
  .copy,body[data-view=signin] .copy{padding:28px 24px}
  .copy h2,.visual-first .copy h2{font-size:32px;letter-spacing:-1px}
  .eyebrow{margin-bottom:16px}
  .steps{padding:18px 24px;gap:12px}
  .steps li{font-size:11px;gap:5px}
  .demo-mode{display:flex}
  .demo-mode .copy{padding-top:28px}
  .demo-mode .visual{height:300px;min-height:300px}
  .demo-mode .canvas-area{inset:12px 0 125px}
  .under-card{align-items:center}
}
@media(max-height:480px){.stage-cue{font-size:18px}.stage-cue small{font-size:12px;margin-top:4px}}
