:root{--background: #fafbf6;--foreground: #173e31;--surface: #f3f5f3;--primary: #c9f27e;--primary-hover: #bce46e;--primary-foreground: #173e31;--secondary: #e4e9df;--muted-foreground: #64755d;--accent: #008565;--radar-fill: #9de5cbb3;--accent-surface: #e3eddd;--border: #dce3d7;--ring: #008867;--error: #a62b21;--error-background: #fff0ec;--overlay: #10111099;--photo-label: #101110e6;--on-dark: #ffffff;--shadow-overlay: 0 16px 48px #10111029;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--radius-control: 6px;--radius-surface: 8px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--motion-feedback: .16s}:root{color:var(--foreground);background:var(--background);font-family:var(--font-family);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box;letter-spacing:0}body{margin:0;min-width:280px}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button,a,summary,input{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,.photo-picker:focus-within{outline:2px solid var(--ring);outline-offset:4px}button svg,a svg{flex-shrink:0}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0}.app-shell{min-height:100dvh;padding:0 var(--space-6) var(--space-8)}.page-container{width:min(100%,600px);margin-inline:auto}.single-stage .page-container{max-width:480px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:24px 24px 28px;margin-inline:-24px;background:var(--primary)}.topbar>div:first-child{width:100%}.brand-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}.brand{font-size:22px;font-weight:900}.brand-row>span:last-child{font-size:12px;font-weight:700;white-space:nowrap}.eyebrow{margin:0 0 var(--space-3);color:var(--accent);font-size:14px;font-weight:650}.topbar h1{max-width:12ch;font-size:42px;font-weight:900;line-height:1.18;text-wrap:balance}.app-shell:not(.single-stage) .topbar{background:var(--background);padding-bottom:0}.app-shell:not(.single-stage) .brand-row{margin-bottom:0}.content{min-width:0}.upload-layout{display:grid;gap:var(--space-3);padding-top:24px}.upload-prompt{margin:0 0 var(--space-2);color:var(--foreground);font-size:16px;font-weight:700;line-height:1.6}.upload-grid{display:grid;gap:var(--space-4)}.upload-grid.two{grid-template-columns:1fr 1fr}.photo-picker{position:relative;display:grid;place-items:center;height:238px;overflow:hidden;border:2px dashed var(--foreground);border-radius:var(--radius-surface);background:var(--accent-surface);cursor:pointer}.photo-picker>span{display:grid;justify-items:center;gap:var(--space-3)}.photo-picker strong{font-size:22px;font-weight:800}.photo-picker small{font-size:14px;color:var(--muted-foreground)}.photo-picker img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.photo-picker input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-picker .replace-photo{position:absolute;bottom:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);color:var(--on-dark);background:var(--photo-label);font-size:13px;pointer-events:none}.input-hint{margin:0;color:var(--muted-foreground);text-align:center;font-size:13px;line-height:1.6}.action-row{display:grid;gap:var(--space-3);margin-top:var(--space-2)}.primary-btn,.ghost-btn,.inline-share button,.locked-card button,.saved-image-footer a{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-control);font-weight:600;line-height:1.5;text-align:center;text-decoration:none;transition:background-color var(--motion-feedback) ease-out}.primary-btn{width:100%;min-height:56px;border:2px solid var(--foreground);color:var(--primary-foreground);background:var(--primary);font-size:18px;font-weight:800}.primary-btn:disabled{color:var(--muted-foreground);border-color:var(--border);background:var(--secondary)}.ghost-btn{color:var(--foreground);background:var(--secondary)}@media (hover: hover){.primary-btn:not(:disabled):hover,.saved-image-footer a:hover{background:var(--primary-hover)}.back-link:hover,.inline-share button:hover{color:var(--accent);background:var(--surface)}.photo-picker:hover{border-color:var(--muted-foreground)}}.privacy-note,.result-caveat{margin:var(--space-2) 0 0;color:var(--muted-foreground);font-size:12px;line-height:1.8}.privacy-note{text-align:center}.input-error{padding:var(--space-4);border-radius:var(--radius-control);color:var(--error);background:var(--error-background);line-height:1.6}.input-error strong{font-size:14px}.input-error p{margin:var(--space-1) 0 0;font-size:14px}.loading-stage{display:grid;justify-items:center;gap:var(--space-6);padding-block:var(--space-8);text-align:center}.loading-symbol{display:grid;place-items:center;width:72px;height:72px;border-radius:var(--radius-surface);background:var(--primary);border:2px solid var(--foreground)}.loading-stage h2{font-size:22px;line-height:1.5}.loading-description,.loading-note{margin:0;color:var(--muted-foreground);font-size:14px;line-height:1.7}.loading-list{display:grid;gap:var(--space-2);width:100%;margin:0;padding:0;list-style:none;text-align:left}.loading-step{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);color:var(--muted-foreground);transition:background-color var(--motion-feedback) ease-out}.loading-step[data-state=active]{color:var(--foreground);background:var(--primary);font-weight:700}.loading-step[data-state=done] .loading-step-icon{color:var(--accent)}.loading-stage .back-link{justify-self:center}.loading-step[data-state=done]{color:var(--foreground)}.loading-step-icon{display:grid;place-items:center;flex:0 0 20px}.loading-step-label{flex:1;min-width:0;font-size:14px;line-height:1.6}.loading-step-status{flex-shrink:0;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.loading-note{max-width:32ch;font-size:13px}.loading-spinner{animation:loading-spin 1.2s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.report-layout{--ring: var(--foreground);display:grid;gap:var(--space-6);padding-bottom:120px}.back-link{display:inline-flex;align-items:center;justify-self:start;gap:var(--space-2);min-height:44px;padding:var(--space-2);margin-left:calc(-1 * var(--space-2));color:var(--muted-foreground);background:transparent;border-radius:var(--radius-control);font-size:14px}.hero-result{position:relative;display:grid;gap:var(--space-6);padding:28px 24px;margin-inline:-24px;background:var(--primary)}.photo-stack{display:flex;align-items:center}.photo-stack img{width:64px;height:64px;object-fit:cover;border-radius:50%}.photo-stack img+img{margin-left:var(--space-2)}.hero-result .eyebrow{margin:0 0 12px;color:var(--foreground);font-size:13px}.hero-result h2{font-size:64px;line-height:1.12;font-weight:900;text-wrap:balance}.hero-result p{margin:var(--space-4) 0 0;font-size:24px;font-weight:800;line-height:1.45}.hero-result .role-scene>p{margin-top:0}.role-scene{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,42%);gap:12px;align-items:center}.role-illustration{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.score-ring{display:flex;align-items:baseline;gap:var(--space-3)}.score-ring strong{font-size:36px;line-height:1.2;font-weight:600;font-variant-numeric:tabular-nums}.score-ring span{font-size:13px;color:var(--muted-foreground)}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag-row span{color:var(--foreground);font-size:13px;font-weight:700;line-height:1.6}.tag-row span+span:before{content:"·";margin-right:8px}.hero-result.with-illustration .tag-row span{padding:5px 10px;border-radius:4px;background:#fff}.hero-result.with-illustration .tag-row span+span:before{content:none}.dimension-panel{display:grid;gap:var(--space-6);padding-block:var(--space-4) var(--space-8);border-bottom:1px solid var(--border)}.section-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.section-heading h3,.summary-panel h3,.report-card h3{font-size:18px;font-weight:600;line-height:1.5}.section-heading span{color:var(--muted-foreground);font-size:13px}.radar-chart{position:relative;width:min(100%,360px);aspect-ratio:1;margin-inline:auto}.radar-shape{position:absolute;left:23%;top:23%;width:54%;height:54%;overflow:visible}.radar-outline{fill:none;stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.radar-axis{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.radar-profile{fill:var(--radar-fill);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}.radar-dot{fill:var(--accent)}.radar-label{position:absolute;transform:translate(-50%,-50%);font-size:14px;font-weight:550;line-height:20px;white-space:nowrap}.summary-panel{display:grid;gap:var(--space-8)}.summary-panel p,.report-card p{max-width:70ch;margin:var(--space-3) 0 0;color:var(--foreground);font-size:16px;line-height:1.8}.summary-panel article:last-child p{font-weight:800;font-size:20px}.photo-observations{border-top:1px solid var(--border);padding-top:var(--space-4);font-size:14px;line-height:1.8}.photo-observations summary{cursor:pointer;min-height:44px;padding-block:var(--space-2)}.photo-observations ul{margin:var(--space-2) 0;padding-left:20px}.photo-observations p{margin-bottom:0;color:var(--muted-foreground);font-size:12px}.inline-share{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-6);border-top:1px solid var(--border)}.inline-share>span{color:var(--muted-foreground);font-size:14px;line-height:1.7}.inline-share button{min-height:44px;padding:var(--space-2) var(--space-3);color:var(--foreground);background:transparent;font-size:14px}.sticky-actions{position:fixed;z-index:4;bottom:0;left:50%;transform:translate(-50%);width:min(100%,648px);padding:var(--space-3) var(--space-6) max(var(--space-4),env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--background)}.save-error{margin:0 0 var(--space-2);color:var(--error);font-size:14px;line-height:1.6}.toast{position:fixed;z-index:25;bottom:100px;left:50%;transform:translate(-50%);width:min(360px,calc(100% - 32px));padding:var(--space-4);border-radius:var(--radius-control);color:var(--on-dark);background:var(--foreground);line-height:1.6}.saved-image-dialog{width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:var(--radius-surface);color:var(--foreground);background:var(--background);box-shadow:var(--shadow-overlay)}.saved-image-dialog[open]{display:flex;flex-direction:column}.saved-image-dialog::backdrop{background:var(--overlay)}.saved-image-header,.saved-image-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex:0 0 auto;padding:var(--space-4)}.saved-image-header h2{font-size:18px}.saved-image-header{background:var(--primary)}.icon-btn{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:var(--radius-control);color:var(--foreground);background:var(--surface)}.saved-image-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain}.saved-image-scroll img{display:block;width:100%;height:auto;-webkit-touch-callout:default}.saved-image-footer{flex-wrap:wrap;font-size:13px;color:var(--muted-foreground);line-height:1.6}.saved-image-footer a{width:100%;color:var(--primary-foreground);background:var(--primary)}.save-hint{position:absolute;bottom:120px;width:max-content;max-width:calc(100% - 32px);pointer-events:none}.preview-options{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 16px;flex-shrink:0;font-size:14px}.preview-options label,.privacy-optout{display:flex;align-items:center;gap:8px;min-height:44px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.format-select select{max-width:150px;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:4px;color:var(--foreground);background:var(--background);font-size:16px}.saved-image-scroll[aria-busy=true]{opacity:.6;pointer-events:none}.privacy-link{display:block;margin:0 auto;min-height:44px;padding:8px;font-size:12px;text-decoration:underline;color:var(--muted-foreground);background:none}.privacy-body{overflow-y:auto;padding:24px;font-size:14px;line-height:1.8}.privacy-body h3{font-size:16px}.privacy-body p+h3{margin-top:28px}.privacy-body a{color:var(--accent)}.recent-result{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-block:20px;border-top:1px solid var(--border)}.recent-result>div{flex:1;min-width:140px;display:grid;gap:6px}.recent-result span,.recent-result small{font-size:12px;color:var(--muted-foreground)}.recent-result strong{font-size:18px}.text-action{min-height:44px;background:transparent;color:var(--foreground);text-decoration:underline;font-size:14px}.referral-entry{padding-block:0 20px;border-bottom:1px solid var(--border)}.referral-entry p{margin:4px 0 12px;font-size:14px;line-height:1.6}.referral-entry h2{font-size:28px;font-weight:900}.referral-entry a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--foreground);font-size:14px;font-weight:700}.referral-entry a svg{transform:rotate(270deg)}.role-feedback{padding-block:20px;border-block:1px solid var(--border)}.role-feedback p{font-size:14px;margin:0 0 12px}.role-feedback>div{display:flex;gap:12px}.role-feedback button{display:flex;align-items:center;gap:6px;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:4px;color:var(--foreground);background:var(--background)}.copy-fallback{display:grid;gap:8px;font-size:14px;margin-bottom:120px}.copy-fallback textarea{width:100%;min-height:100px;border:1px solid var(--border);padding:12px;font-size:16px}.segmented{display:flex;padding:var(--space-1);border-radius:var(--radius-control);background:var(--surface)}.segmented button{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-2);border-radius:var(--radius-control);color:var(--foreground);background:transparent}.segmented button.active{background:var(--primary)}.report-card,.locked-card,.unlocked-block{display:grid;gap:var(--space-4);padding-block:var(--space-4)}.locked-card p,.ad-modal p{color:var(--muted-foreground);line-height:1.7}.locked-card button{color:var(--foreground);background:var(--secondary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:var(--space-6);background:var(--overlay)}.ad-modal{display:grid;gap:var(--space-4);width:min(420px,100%);padding:var(--space-6);border-radius:var(--radius-surface);background:var(--background)}.ad-modal h2{font-size:22px}.ad-screen{display:grid;place-items:center;padding:var(--space-8);background:var(--surface)}@media (max-width: 520px){.app-shell{padding:0 var(--space-4) var(--space-6)}.topbar{padding:20px 16px 24px;margin-inline:-16px}.topbar h1{font-size:36px}.photo-picker{height:228px}.upload-grid.two{grid-template-columns:1fr}.hero-result{padding:24px 16px;margin-inline:-16px}.hero-result h2{font-size:48px}.hero-result h2.long-title{font-size:40px}.hero-result p{font-size:22px}.sticky-actions{padding-inline:var(--space-4)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body{background:#eef2e9}.app-shell{padding:0}.page-container,.single-stage .page-container{width:min(100%,390px);min-height:100dvh;padding:24px;background:var(--background)}.upload-layout{display:flex;flex-direction:column;gap:0;padding:0;min-height:calc(100dvh - 48px)}.entry-title{padding-top:28px;font-size:38px;line-height:1.27;font-weight:750}.entry-title span{box-shadow:inset 0 -10px var(--primary)}.back-link{width:44px;min-height:44px;margin:0;padding:0;color:#365541}.upload-grid{margin-top:54px}.photo-stage{height:292px;position:relative}.photo-stage:before{content:"";position:absolute;width:194px;height:264px;left:calc(50% - 87px);top:10px;background:#e1edcf;border:1px solid #d3e1c1;border-radius:10px;transform:rotate(5deg)}.photo-picker{display:block;width:194px;height:270px;margin-inline:auto;padding:13px;overflow:visible;border:1px solid #e5e9df;border-radius:10px;background:#fff;transform:rotate(-3deg);box-shadow:0 5px #eceee6,0 15px 24px #23402917}.paper-image{height:219px;width:166px;background:#f0f4e9;border-radius:4px;display:grid;place-items:center;overflow:hidden;position:relative}.paper-image>span{width:52px;height:52px;border:1px solid #d3deca;border-radius:50%;display:grid;place-items:center;background:#fafcf6}.paper-image img{position:static;width:100%;height:100%;object-fit:cover}.photo-picker>.photo-caption{display:block;text-align:center;font-size:12px;line-height:25px;color:#64806b}.input-hint{margin-top:22px;font-size:12px;line-height:20px}.photo-consent{display:flex;align-items:flex-start;gap:8px;margin-top:16px;font-size:12px;line-height:20px;color:var(--muted-foreground)}.photo-consent input{flex:0 0 20px;margin:0}.action-row{margin-top:34px}.primary-btn,.saved-image-footer a{border:0;border-radius:16px;min-height:52px;font-size:16px;font-weight:650}.upload-layout>.privacy-link{margin-top:auto;padding-top:24px;min-height:68px}.has-error .upload-grid{margin-top:34px}.has-error .input-error{margin-top:18px;border:1px solid #f1e0d6;border-radius:16px;background:#fff0e9;color:#9c6149}.has-error .action-row{margin-top:18px}.referral-entry{margin-top:20px}.loading-stage{display:flex;flex-direction:column;gap:0;padding:0}.loading-stage>.back-link{align-self:start}.loading-symbol{margin:22px auto 32px;width:64px;height:80px;border:1px solid #d7e0ce;background:#fff;color:#5e7b45;border-radius:9px;transform:rotate(8deg);box-shadow:-9px 7px #dceacc}.loading-stage h2{font-size:25px;line-height:38px}.loading-description{margin-top:13px;font-size:13px;line-height:24px}.loading-list{margin-top:40px;gap:10px}.loading-step{min-height:72px;border-radius:16px;gap:16px}.loading-step[data-state=active]{background:#eaf4da}.loading-step-status{font-size:11px}.loading-step-icon{flex-basis:28px}.loading-note{margin:31px auto 0;font-size:12px}.report-layout{gap:18px;padding:0}.hero-result,.hero-result.with-illustration{display:flex;flex-direction:column;gap:0;margin:0;padding:0;background:none}.hero-result .eyebrow{margin:10px 0 7px;color:#76906b;font-size:12px}.hero-result h2,.hero-result h2.long-title{font-size:33px;line-height:1.36;font-weight:750;text-wrap:initial}.hero-result p{margin:8px 0 0;font-size:14px;line-height:24px;color:#5c715d;font-weight:500}.tag-row{gap:8px;margin-top:14px}.tag-row span,.hero-result.with-illustration .tag-row span{padding:0 11px;background:#edf4e6;color:#5e7950;border-radius:8px;font-size:11px;line-height:26px;font-weight:500}.tag-row span+span:before{content:none}.role-scene{display:grid;place-items:center;grid-template-columns:1fr;height:179px;background:#e3eddd;border-radius:22px;margin-top:22px}.role-illustration{width:158px;height:158px}.dimension-panel{display:block;padding:16px 18px 7px;background:#fff;border:1px solid #e7ecdf;border-radius:22px}.section-heading h3{font-size:16px;line-height:24px;font-weight:650}.radar-chart{width:min(100%,238px);aspect-ratio:1}.radar-label{font-size:11px;line-height:16px}.radar-shape{left:24%;top:24%;width:52%;height:52%}.sticky-actions{position:static;transform:none;width:100%;border:0;padding:18px 0 0;margin-top:auto}.saved-image-dialog{position:fixed;top:0;right:0;bottom:0;left:0;width:min(100%,390px);height:100dvh;max-width:none;max-height:none;padding:24px;margin:0 auto;border-radius:0;box-shadow:none;overflow-y:auto}.saved-image-dialog[open]{display:block}.saved-image-dialog::backdrop{background:#eef2e9}.saved-image-header{position:relative;height:44px;padding:0 44px;justify-content:center;background:transparent;margin-bottom:19px}.saved-image-header h2{font-size:17px;text-align:center}.saved-image-header .icon-btn{position:absolute;left:0;top:0;background:transparent}.preview-options{padding:0;margin:0 0 15px;font-size:12px;color:#667c5f}.preview-options label{min-height:22px}input[type=checkbox]{accent-color:#a0cf64}.saved-image-scroll{overflow:visible;border:1px solid #e2e9dc;border-radius:20px}.saved-image-scroll img{border-radius:20px}.saved-image-footer{padding:0;margin-top:24px}.saved-image-footer a{min-height:52px}.privacy-body{overflow:visible;padding:10px 0 0;color:#64755d;font-size:14px;line-height:1.88}.privacy-body h3{color:#173e31}.privacy-body p+h3{border-top:1px solid #e1e8da;padding-top:24px;margin-top:24px}.privacy-body>p:last-child{padding:14px 15px;background:#eff3e8;border-radius:14px;font-size:12px}.save-hint{position:fixed;bottom:80px}@media (max-width: 350px){.page-container,.saved-image-dialog{padding:20px}.entry-title{font-size:32px}.hero-result h2,.hero-result h2.long-title{font-size:28px}}
