:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101412;--ink:#f7fbf5;--muted:#b7c5ba;--line:#ffffff2e;--panel:#101412bd;--panel-strong:#101412e6;--accent:#79e08f;--accent-strong:#41c466;--warning:#ffd166;--danger:#ff7b6e;--blue:#7dc8ff;--shadow:0 18px 60px #0000006b;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.app-shell{background:linear-gradient(#10141252,#101412d6),#17201a;width:100vw;min-height:100svh;position:relative;overflow:hidden}.camera{object-fit:cover;opacity:.88;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.analysis-canvas{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed}.touch-surface{z-index:1;min-height:100svh;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));outline:none;grid-template-rows:auto minmax(160px,1fr) auto auto;gap:16px;display:grid;position:relative}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.top-bar{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.eyebrow{color:var(--blue);text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}h1{letter-spacing:0;margin:0;font-size:clamp(2rem,8vw,4.5rem);font-weight:900;line-height:.98}.icon-button{border:1px solid var(--line);background:var(--panel-strong);width:52px;height:52px;color:var(--ink);box-shadow:var(--shadow);border-radius:8px;flex:0 0 52px;place-items:center;display:grid}.icon-button span{font-size:1.4rem;line-height:1}.focus-ring{aspect-ratio:4/3;background:#ffffff08;border:1px solid #ffffff38;place-self:center;width:min(64vw,460px);position:relative}.focus-corner{border-color:var(--accent);width:42px;height:42px;position:absolute}.top-left{border-top:4px solid;border-left:4px solid;top:-2px;left:-2px}.top-right{border-top:4px solid;border-right:4px solid;top:-2px;right:-2px}.bottom-left{border-bottom:4px solid;border-left:4px solid;bottom:-2px;left:-2px}.bottom-right{border-bottom:4px solid;border-right:4px solid;bottom:-2px;right:-2px}.status-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:min(100%,680px);box-shadow:var(--shadow);border-radius:8px;justify-self:center;padding:16px}.mode-label{color:var(--accent);text-transform:uppercase;margin:0 0 8px;font-size:.82rem;font-weight:900}.spoken-status{margin:0;font-size:clamp(1.1rem,4vw,1.55rem);font-weight:800;line-height:1.28}.confidence-label{color:var(--muted);margin:10px 0 0;font-size:.96rem;line-height:1.35}.controls{grid-template-columns:1fr 1fr;justify-self:center;gap:12px;width:min(100%,680px);display:grid}.primary-action,.secondary-action{text-align:center;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:82px;padding:14px 16px;font-size:clamp(1.1rem,4.4vw,1.45rem);font-weight:900;line-height:1.08;display:inline-flex}.primary-action{background:var(--accent);color:#07100a}.secondary-action{background:var(--panel-strong);color:var(--ink);border-color:var(--line)}.start-action,.describe-action{grid-column:1/-1;min-height:108px;font-size:clamp(1.35rem,6vw,2rem)}.gesture-help{width:min(100%,680px);color:var(--muted);text-align:center;justify-self:center;margin:0;font-size:.86rem;line-height:1.35}.is-located .focus-corner{border-color:var(--accent-strong)}.is-warning .focus-corner{border-color:var(--warning)}.is-danger .focus-corner{border-color:var(--danger)}button:focus-visible,.touch-surface:focus-visible{outline:3px solid var(--blue);outline-offset:3px}@media (width<=540px){.touch-surface{gap:14px}.controls{grid-template-columns:1fr}.primary-action,.secondary-action{min-height:76px}.start-action,.describe-action{min-height:112px}.gesture-help{text-align:left}}@media (prefers-reduced-motion:no-preference){.focus-ring{transition:border-color .18s,background-color .18s}.focus-corner{transition:border-color .18s}}
