:root{color-scheme:dark;--bg:#071e19;--ink:#eff4ea;--muted:#a5b9ab;--accent:#badeca;--line:#2b4439;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:inherit}[hidden]{display:none!important}.stage{max-width:600px;margin:auto;min-height:100svh;position:relative;padding:20px 20px max(20px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 34%,#16423266,transparent 48%);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:9px;min-height:32px;z-index:3}.brand>img{width:22px;height:22px;filter:hue-rotate(-22deg) saturate(.65)}.brand>span{font-size:13px;white-space:nowrap}.brand small{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:9px}.brand .quiet{margin-left:auto;padding:8px 0;font-size:13px;min-height:40px}.orb{position:absolute;top:19svh;left:50%;width:min(67vw,310px);aspect-ratio:1;transform:translateX(-50%);transition:top .45s cubic-bezier(.22,1,.36,1),left .45s cubic-bezier(.22,1,.36,1),width .45s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1);pointer-events:none}.orb img{width:100%;height:100%;filter:hue-rotate(-22deg) saturate(.62) brightness(.87);animation:breathe 5s ease-in-out infinite}.orb::before{content:"";position:absolute;inset:5%;border-radius:50%;box-shadow:0 0 60px #50c8a31f}.stage.speaking .orb img{animation:breathe 1.8s ease-in-out infinite}.stage.listening .orb::before{box-shadow:0 0 55px #69e3b84a}.stage.task .orb{width:26px;left:18px;top:20px;transform:none}.stage.task .brand>img{visibility:hidden}.stage.task .orb img{animation:none}.voice-surface{padding-top:calc(19svh + min(67vw,310px) - 30px);text-align:center}.voice-surface h1{font-size:clamp(23px,5.5vw,30px);line-height:1.55;font-weight:550;margin:28px 0 16px;letter-spacing:.01em}.status{color:var(--muted);font-size:14px;min-height:24px;margin:14px 0}.wave{height:26px;display:flex;align-items:center;justify-content:center;gap:4px}.wave i{display:block;width:3px;height:8px;background:var(--accent);border-radius:3px;animation:wave .9s ease-in-out infinite alternate}.wave i:nth-child(2n){animation-delay:-.4s;height:15px}.wave i:nth-child(3n){animation-delay:-.7s;height:22px}.controls{margin-top:auto;padding-top:30px;z-index:4}.primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;border-radius:16px;padding:14px 16px;background:var(--accent);color:#103728;font-size:18px;font-weight:550;text-decoration:none;transition:transform .13s}.primary:active{transform:scale(.985)}.quiet{background:none;color:var(--muted);padding:12px 8px;min-height:44px;font-size:14px}.secondary{border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--ink);padding:14px;min-height:48px}.control-row{display:flex;gap:12px;align-items:center;justify-content:center}.task #surface{padding-top:30px}.task h1{font-weight:550;font-size:24px;line-height:1.4;margin:0 0 8px}.hint{font-size:14px;line-height:1.65;color:var(--muted);margin:6px 0 16px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;padding-bottom:16px}.tile{position:relative;padding:5px 4px 7px;background:#0b251f;border:1px solid transparent;border-radius:9px;color:var(--ink);min-width:0;transition:border-color .15s,background .15s}.tile.selected{border-color:var(--accent);background:#203e31}.tile img{width:100%;height:clamp(145px,42vw,225px);object-fit:contain;display:block}.tile .check{width:16px;height:16px;border:1px solid #577265;border-radius:50%;display:block;margin:7px auto 0;font-size:12px;line-height:14px}.tile.selected .check{background:var(--accent);color:var(--bg);border-color:var(--accent)}.task.gallery-mode{height:100svh;min-height:0}.gallery-mode #surface{overflow-y:auto;overscroll-behavior:contain;flex:1;scrollbar-width:thin;scrollbar-color:#345344 transparent;margin-right:-5px;padding-right:5px}.gallery-mode .controls{flex-shrink:0;background:var(--bg);padding-top:10px;border-top:1px solid var(--line);margin-top:0}.gallery-footer{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.gallery-footer .quiet{padding-left:0}.count{font-size:14px;color:var(--muted);white-space:nowrap}.photo-surface{padding:12px 0 0}.photo-box{min-height:260px;display:flex;align-items:center;justify-content:center;border:1px dashed #587368;border-radius:16px;margin:26px 0 16px;color:var(--muted)}.photo-box img{width:100%;max-height:46svh;object-fit:contain}.photo-box svg{width:54px;height:54px;stroke:currentColor;fill:none;stroke-width:1.2}.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.photo-grid img{width:100%;height:190px;object-fit:contain}.status-line{font-size:14px;color:var(--muted);text-align:center;margin:14px 0;min-height:20px}#toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%,12px);background:#e6f3e9;color:#123c2b;padding:12px 18px;border-radius:12px;max-width:90vw;width:max-content;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:14px}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{background:#102b23;color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:24px;width:min(90vw,420px);max-height:90svh}dialog::backdrop{background:#000b}dialog h2{font-size:21px;margin:0 0 12px}dialog p{font-size:15px;line-height:1.7;color:var(--muted)}dialog .primary{margin-top:18px}#viewer{width:100vw;max-width:100vw;height:100svh;max-height:100svh;border:0;border-radius:0;padding:16px;background:#04140f}#viewer[open]{display:flex;flex-direction:column}#viewer .quiet{align-self:flex-end}#viewer img{object-fit:contain;min-height:0;width:100%;flex:1}.fade-in{animation:enter .3s ease-out}.error-text{color:#ffd1ba;font-size:14px;line-height:1.6}.resume-copy,.end-note{font-size:14px;color:var(--muted);text-align:center}.consent-note{font-size:13px!important}#file-input{display:none}
@keyframes breathe{0%,100%{transform:scale(.97)}50%{transform:scale(1)}}@keyframes wave{to{height:5px;opacity:.5}}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-height:680px){.orb{top:15svh;width:min(54vw,230px)}.voice-surface{padding-top:calc(15svh + min(54vw,230px) - 35px)}.voice-surface h1{margin-top:20px;font-size:23px}.controls{padding-top:15px}.tile img{height:140px}}
@media(prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.controls>.secondary,.controls>.primary+.primary,dialog .secondary{width:100%;margin-top:12px}.photo-box{width:100%;background:transparent}.photo-card{margin:0;min-width:0}.photo-view{width:100%;padding:0;background:transparent;color:inherit}.photo-card img{width:100%;height:230px;object-fit:contain}.photo-card figcaption{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;line-height:1.5}.reference-uploads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reference-uploads .photo-card img{height:190px}.reference-uploads figcaption{display:block}.reference-uploads .quiet{padding-left:0;display:block}.subheading{font-weight:500;font-size:17px;margin:18px 0}.image-error{font-size:12px;color:#e8bfab}.voice:not(.listening):not(.speaking) .wave i{animation:none;height:5px;opacity:.4}.gallery-mode #surface{min-height:0}.copy-fallback{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.7 inherit;user-select:text;color:var(--ink)}
.report-stage,.review-mode{max-width:780px}.report-stage #surface{padding-top:24px}.report-paper{background:#f6f4ed;color:#163d2b;border-radius:12px;overflow:hidden;margin:0}.report-cover{padding:38px 30px 28px;background:#183e2d;color:#f3f1e5;position:relative}.report-eyebrow{font-size:12px;letter-spacing:.12em;color:#bfd2b7}.report-cover h1,.task .report-cover h1{font-size:34px;font-weight:500;line-height:1.5;margin:28px 0 30px;letter-spacing:.03em}.report-customer{font-size:19px;overflow-wrap:anywhere}.report-customer span{font-size:12px;color:#bfd2b7}.report-meta{margin-top:20px;padding-top:15px;border-top:1px solid #47614a;display:flex;justify-content:space-between;font-size:11px;color:#bfd2b7;gap:10px}.report-section{padding:28px 30px;border-bottom:1px solid #dfdfd1}.section-no{font-size:14px;font-weight:600;letter-spacing:.04em;color:#45684e}.report-row{padding:12px 0;display:grid;grid-template-columns:100px minmax(0,1fr);gap:14px;border-bottom:1px solid #e7e5d8;font-size:14px;line-height:1.8}.report-row:last-child{border-bottom:0}.report-row dt{color:#7a8776}.report-row dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.report-section dl{margin:14px 0 0}.report-references{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.report-figure{margin:0;min-width:0}.report-figure img{display:block;width:100%;height:auto;object-fit:contain;background:#e9e9df;border-radius:3px}.report-references .report-figure img,.report-references .photo-card img{width:100%;height:220px;object-fit:contain;background:#eeeee5}.report-figure figcaption,.report-paper .photo-card figcaption{color:#818a77;font-size:11px;line-height:1.6;margin-top:9px}.report-photo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.report-photo-list img{height:240px;object-fit:contain}.report-end{padding:32px 30px 36px}.report-end p{font-size:18px;margin:0 0 12px;line-height:1.6}.report-end small{color:#7b8876;font-size:12px;line-height:1.6;display:block}.not-provided{font-size:14px;color:#7b8876;margin:20px 0 0}.pdf-link{display:block;text-align:center;text-decoration:none;margin-top:12px}.review-mode .controls{position:sticky;bottom:0;background:var(--bg);padding:16px 0 max(12px,env(safe-area-inset-bottom));margin-top:20px}.report-stage .controls{padding-top:20px}.report-paper .photo-view{color:#163d2b}.report-section>p{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
@media(max-width:390px){.stage{padding-left:15px;padding-right:15px}.brand small{font-size:10px}.brand>span{font-size:12px}.report-cover,.report-section,.report-end{padding-left:22px;padding-right:22px}.report-row{grid-template-columns:85px minmax(0,1fr);gap:10px}.report-references{gap:7px}.report-references .report-figure img,.report-references .photo-card img{height:180px}.report-cover h1,.task .report-cover h1{font-size:29px}.gallery{gap:7px}.gallery-footer .quiet{font-size:13px}.reference-uploads .photo-card img{height:160px}}
.stage.voice .orb{top:12svh;width:min(50vw,240px)}.stage.voice .voice-surface{padding-top:calc(12svh + min(50vw,240px) - 45px)}.stage.voice h1{font-size:24px;line-height:1.5;margin:20px 0 8px}.stage.voice .controls{padding-top:18px}.stage.voice .status{margin:10px 0}.stage.voice #controls .quiet{padding:10px 16px}
