@charset "utf-8";
:root{--blue:#2256d9;--ink:#142b49;--muted:#485c73;--line:#cbd6e5;--paper:#f5f8fd;--orange:#e75a25}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:22px/1.55 "Microsoft YaHei","PingFang SC",system-ui,sans-serif;overflow-wrap:anywhere}button,input,textarea,a{font:inherit}button,a,label{touch-action:manipulation}button,label{cursor:pointer}button,a,label:has(input){-webkit-tap-highlight-color:transparent}button{border:0;border-radius:18px;padding:16px 20px;min-height:72px;color:var(--ink);background:#eaf0f9;font-weight:650}button:disabled{opacity:.48;cursor:wait}button:focus-visible,a:focus-visible,label:focus-within{outline:4px solid #ec722e;outline-offset:4px}svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:800px;margin:auto;padding:18px 20px;border-bottom:1px solid var(--line);background:white}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-size:29px;white-space:nowrap}.brand img{width:43px;height:43px}.help-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;font-size:22px;background:#e8f0ff;min-height:64px}.help-button svg{width:27px}main{max-width:760px;margin:auto;padding:22px 20px 40px}h1,h2,h3,p{margin-top:0}h1{font-size:36px;line-height:1.4;margin-bottom:18px}h2{font-size:29px}p{margin-bottom:20px}.intro{text-align:center;padding:8px 0 6px}.intro h1{font-size:44px;line-height:1.3;letter-spacing:1px;margin:10px 0 16px}.intro h1 span{color:var(--blue)}.intro p{font-size:22px;color:var(--muted)}.eyebrow{font-size:20px!important;color:var(--muted);margin-bottom:12px}.eyebrow.ready{color:#176546}.photo-main{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;background:var(--blue);color:white;border-radius:24px;min-height:206px;padding:22px 12px}.photo-main svg{width:66px;height:66px;margin-bottom:5px}.photo-main strong{font-size:33px}.photo-main span{font-size:20px}.album-button{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0;padding:18px;border:2px solid var(--line);background:white;border-radius:18px;min-height:80px;font-weight:650;font-size:26px}.photo-main,.album-button,.photo-toolbar label{position:relative;overflow:hidden}.photo-main input,.album-button input,.photo-toolbar input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}#input-photo{display:block;max-height:270px;max-width:100%;width:auto;object-fit:contain;margin:auto;border-radius:16px;background:#e7edf5}.photo-toolbar{display:flex;gap:12px;margin-top:12px}.photo-toolbar>*{display:flex;flex:1;align-items:center;justify-content:center;background:white;border:2px solid var(--line);padding:12px 8px;border-radius:15px;min-height:66px;font-size:21px}#photo-caption{font-size:19px;text-align:center;margin-top:10px;color:var(--muted)}.goal-panel{margin-top:24px}.goal-panel h1{text-align:center;font-size:32px}.voice-action{display:flex;gap:14px;justify-content:center;align-items:center;width:100%;background:#e5f0ff;color:#1849b9;border:2px solid #8eafe9;font-size:29px;min-height:86px}.voice-action.listening{background:#fff0e4;border-color:#e75a25;color:#a73d0d}.voice-action svg{height:40px;width:40px}#voice-status{text-align:center;font-size:20px;margin:12px 0 18px;color:var(--muted)}.goal-chips{display:grid;grid-template-columns:1fr 1fr;gap:12px}.goal-chips button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;min-height:130px;background:white;border:2px solid var(--line);font-size:24px;padding:16px 5px}.goal-chips button svg{width:45px;height:45px;color:#2653ad}.goal-chips button.selected{border:3px solid var(--blue);background:#eaf1ff}.goal-label{display:block;margin:20px 0 8px;font-size:21px}textarea{width:100%;resize:vertical;border:2px solid #8396b0;border-radius:15px;padding:14px;background:white;font-size:24px;line-height:1.55;color:var(--ink)}.primary{background:var(--blue);color:white;font-size:28px;min-height:84px}.secondary{color:#204da6;background:white;border:2px solid #a5badd;font-size:24px}.quiet{background:transparent;color:#254b88;text-decoration:underline;text-underline-offset:5px;font-size:21px}.full{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:15px}.full svg{width:30px;height:30px}#guide{margin-top:18px;position:relative}#guide span{margin-left:12px}.try-demo{margin-top:26px;border-top:1px solid var(--line);padding-top:18px}.try-demo summary,footer summary,.trace-details summary,.done-actions summary{min-height:64px;padding:14px 0;color:#254b88;cursor:pointer;font-size:21px}.sample-row{display:flex;gap:12px;margin-top:12px}.sample-row button{flex:1;font-size:20px}.error,.notice{padding:18px;border-radius:16px;line-height:1.6;background:#fff1e9;border:2px solid #db854c;color:#803a11;font-size:22px;margin:16px 0}.notice{background:#edf4ff;border-color:#a9bfdf;color:#294e81}#progress{text-align:center;margin:24px 0;padding:26px 14px;background:white;border:2px solid var(--line);border-radius:20px}#progress h2{margin:14px 0 10px}#progress p{margin-bottom:0}.spinner{height:42px;width:42px;border:5px solid #dae5fa;border-top-color:var(--blue);border-radius:50%;animation:spin 1s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}body[data-phase=goal] .intro,body[data-phase=busy] .intro{display:none}body[data-phase=busy] .goal-panel,body[data-phase=busy] .try-demo{display:none}body[data-phase=busy] #input-photo{max-height:180px}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:20px;color:var(--muted)}.result-heading button{white-space:nowrap;flex-shrink:0;font-size:20px;min-height:64px;padding:10px}.goal-summary{font-size:21px;margin:8px 0 18px}.instruction-panel{background:white;border:2px solid #b9cbea;border-radius:22px;padding:20px}.step-header{display:flex;justify-content:space-between;align-items:center;color:#2054cd;font-size:22px}.step-header strong{font-size:27px}#step-dots{display:flex;gap:7px;margin:14px 0 20px}#step-dots span{height:7px;flex:1;background:#e0e7f2;border-radius:8px}#step-dots .active{background:var(--blue)}#step-dots .done{background:#539f84}#instruction{font-size:32px;line-height:1.6;margin:0 0 16px}#speak{font-size:27px;margin-top:0;min-height:78px}.button-name{font-size:21px;margin:17px 0 12px}.expected{margin-top:20px;padding:16px;background:#f0f5fc;border-radius:14px;font-size:22px}.expected strong{font-size:21px}.expected p{margin:7px 0 0}#closeup-box{background:#f3f6fb;border-radius:16px;padding:12px}#closeup-box span{display:block;font-size:21px;margin-bottom:8px}#button-closeup{width:100%;height:auto;display:block;border-radius:10px;max-height:190px;object-fit:contain;background:white}.result-photo-column{margin-top:24px;text-align:center;background:white;border:1px solid var(--line);border-radius:20px;padding:18px 12px}.photo-title{font-size:24px;font-weight:650;text-align:left}.photo-stage{position:relative;width:fit-content;max-width:100%;margin:auto;line-height:0}.photo-stage>img{display:block;max-width:100%;width:auto;max-height:460px;object-fit:contain;border-radius:12px}.target{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.target-ring{width:52px;height:52px;border:5px solid #e95424;border-radius:50%;box-shadow:0 0 0 3px white;background:#f48c441a}.target>span{position:absolute;bottom:95%;left:50%;transform:translateX(-50%);background:#ca3c10;color:white;white-space:nowrap;padding:5px 10px;border:2px solid white;border-radius:10px;font-size:18px;line-height:1.4;max-width:230px}.photo-help p{font-size:20px;text-align:left;margin:16px 0 0}.photo-help button{width:100%;font-size:21px}.adjusting{outline:4px dashed #e75a25;cursor:crosshair}.step-actions{position:relative;background:#fff;padding:12px 0 max(12px,env(safe-area-inset-bottom));margin-top:24px;border-top:1px solid var(--line)}.step-actions .full{margin-top:0}.step-navigation{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.step-navigation button{min-height:64px;padding:10px 4px;font-size:22px}.trace-details{font-size:20px;margin-top:15px}.done-symbol{font-size:58px;color:#176d52;margin:25px auto 18px;background:#e5f5ec;border-radius:50%;height:100px;width:100px;display:grid;place-items:center}#done-view{text-align:center}#done-view h1{font-size:36px}.done-actions{max-width:500px;margin:24px auto}.retake-symbol{height:86px;width:86px;color:#aa471d;margin:30px auto 22px;display:block}#retake-view{text-align:center}#retake-message{text-align:left}footer{border-top:1px solid var(--line);margin-top:30px;padding-top:8px;font-size:18px;color:var(--muted)}footer button{display:block;width:100%}dialog{border:0;border-radius:24px;padding:24px 18px;max-width:min(94vw,560px);max-height:94dvh;overflow:auto;color:var(--ink);font:22px/1.55 "Microsoft YaHei",sans-serif}dialog::backdrop{background:#10243dcc}.close{float:right;min-height:60px;min-width:60px;font-size:36px;padding:0;background:#eaf0f8}dialog h2{clear:both;margin-top:20px;font-size:28px}dialog video,dialog img{display:block;width:100%;max-height:60vh;object-fit:contain;margin:18px 0}#download-card{text-decoration:none;border-radius:18px;padding:18px}.large{font-size:26px}.large p,.large textarea,.large .goal-chips button{font-size:26px}.large #instruction{font-size:38px}@media(min-width:780px){main{padding:32px 40px}.intro h1{font-size:52px}#photo-empty{max-width:540px;margin:auto}.goal-chips{grid-template-columns:repeat(3,1fr)}.step-actions{padding-bottom:14px}.instruction-panel{padding:28px}.photo-stage>img{max-height:580px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.spinner{animation:none}}
