:root{--plum:#32112c;--dark:#210c20;--rose:#ffadd1;--ivory:#f7f1e7;--mint:#bff0d8;--muted:#d3b7c9;--line:#ffadd136;--serif:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;color:var(--ivory);background:radial-gradient(ellipse at 100% 0,#612541,transparent 55%),var(--plum);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:17px;line-height:1.8;min-height:100svh}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.045;background-image:radial-gradient(#fff .6px,transparent .7px);background-size:4px 5px;z-index:-1}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--mint);outline-offset:5px}button{touch-action:manipulation}img{max-width:100%}[hidden]{display:none!important}.topbar{width:min(960px,100%);margin:auto;padding:24px 24px 19px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.topbar>span{font-size:12px;letter-spacing:.2em;color:var(--muted)}.wordmark{font:400 28px/1 Georgia,serif;letter-spacing:.14em;text-decoration:none}#app{max-width:900px;margin:auto;padding:32px 24px 40px;min-height:550px}h1,h2,h3,p{margin:0}h1{font:500 clamp(29px,5vw,45px)/1.6 var(--serif);letter-spacing:.03em;margin-bottom:18px}h2{font-size:22px;line-height:1.6}h3{font-size:19px;line-height:1.6}.eyebrow{color:var(--rose);font-size:12px;letter-spacing:.2em;margin-bottom:10px}.lead{font-size:17px;color:var(--muted);line-height:1.9}.muted{color:var(--muted);font-size:14px}.step-label{display:flex;align-items:center;gap:12px;color:var(--rose);font-size:13px;margin-bottom:25px;letter-spacing:.1em}.step-label:before{content:"";width:30px;height:1px;background:var(--rose)}.primary,.secondary,.save-link{display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;width:100%;padding:14px 20px;border-radius:13px;text-decoration:none;font-weight:600;font-size:17px;line-height:1.6}.primary,.save-link{border:1px solid var(--rose);background:var(--rose);color:var(--plum);box-shadow:0 9px 25px #17071f35}.primary:after,.save-link:after{content:"↗";font-size:22px;margin-left:auto}.secondary{color:var(--ivory);background:transparent;border:1px solid #e7c7d670}.text-button{padding:8px 0;color:var(--muted);border:0;background:none;text-decoration:underline;text-underline-offset:5px;font-size:14px}.actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}.pill{display:inline-block;padding:5px 13px;border:1px solid #ffadd15c;border-radius:5px;color:var(--rose);font-size:13px}.hero{position:relative;overflow:hidden;padding-bottom:12px;min-height:590px}.hero h1{position:relative;z-index:2;font-size:clamp(36px,7vw,58px);line-height:1.5}.hero h1 em{color:var(--rose);font-style:normal;font-size:1.15em}.hero .sculpture{position:absolute;right:-10px;top:130px;width:290px;height:290px;pointer-events:none}.metal-e{display:block;font:italic 400 270px/.9 Georgia,serif;background:linear-gradient(145deg,#fff4d9 10%,#b47893 24%,#fff6e5 32%,#ffd1da 39%,#965474 49%,#ffe7d9 62%,#e398b4 78%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sculpture .metal-e{transform:rotate(-15deg);text-align:center}.sculpture:before,.sculpture:after{content:"";position:absolute;border:1px solid #ffc8d970;width:300px;height:100px;border-radius:50%;top:130px;left:-20px;transform:rotate(-32deg)}.sculpture:after{transform:rotate(-32deg) translateY(10px);border-color:transparent transparent #ffe6ceaa transparent}.hero-bottom{position:relative;z-index:2;max-width:410px;margin-top:122px}.hero-bottom p{margin:12px 0 20px}.provider{border-top:1px solid var(--line);padding-top:24px;margin-top:38px;font-size:14px;color:var(--muted)}.provider strong{display:block;font:500 23px/1.8 var(--serif);color:var(--ivory);margin-top:8px}.upload-zone{border:1px dashed #e6a4c477;border-radius:24px;text-align:center;padding:32px 20px;margin:26px 0;background:#ffadd108}.upload-mark{font-size:48px;line-height:1.2;color:var(--rose);margin-bottom:14px}.file-buttons{display:grid;gap:12px;margin-top:20px}.file-buttons label{display:block}.file-buttons input{width:100%;font-size:15px;color:var(--muted)}input::file-selector-button{background:var(--ivory);color:var(--plum);border:0;border-radius:9px;padding:12px;margin-right:12px;font:inherit;cursor:pointer}.consent{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.85;margin:22px 0}.consent input{flex:0 0 22px;width:22px;height:22px;accent-color:var(--rose);margin-top:4px}.photo-tip{background:#ffffff09;padding:18px;border-radius:14px;font-size:15px;color:var(--muted);margin-top:18px}.portrait{position:relative;background:var(--dark);border:1px solid #e0abc255;border-radius:23px;overflow:hidden;width:100%;margin:auto}.portrait img{display:block;width:100%;height:auto}.portrait-wrap{max-width:420px;margin:24px auto}.diagnosis-layout{display:grid;gap:26px}.summary{color:var(--rose);font:500 24px/1.7 var(--serif);margin-bottom:20px}.feature{width:100%;display:block;text-align:left;border:1px solid transparent;border-radius:15px;padding:18px 19px;margin:0 0 12px;color:var(--plum);background:var(--ivory)}.feature[aria-pressed=true]{border-color:var(--mint);box-shadow:0 0 0 3px var(--mint)}.feature small{font-size:12px;color:#79526e;display:block;margin-bottom:4px}.feature strong{display:block;font-size:18px;line-height:1.6}.feature p{font-size:15px;line-height:1.9;margin-top:8px}.feature .use{padding-top:9px;border-top:1px solid #32112c22;color:#6c4560}.feature-marker{position:absolute;pointer-events:none;border:2px solid #ffe5bf;box-shadow:0 0 20px #ffadd17a,inset 0 0 20px #ffadd130;border-radius:45%;background:#ffd0db16}.direction{padding:22px 0;margin-top:14px;border-top:1px solid var(--line)}.direction p{color:var(--muted);margin-top:12px}details{margin:20px 0;color:var(--muted);font-size:15px}summary{cursor:pointer;min-height:44px;padding:8px 0}.options{display:grid;gap:13px;margin-top:28px}.choice{display:flex;align-items:center;gap:14px;border:1px solid #ffadd145;border-radius:15px;padding:18px;background:#ffffff05;cursor:pointer}.choice:has(input:checked){background:var(--mint);color:var(--plum);border-color:var(--mint)}.choice input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--plum);margin:0}.choice span{font-size:17px;line-height:1.6}textarea{width:100%;resize:vertical;min-height:94px;padding:14px;background:var(--ivory);color:var(--plum);border:0;border-radius:10px;margin-top:10px;font-size:16px}.proposal{margin:18px 0;border-top:1px solid var(--line);padding-top:24px}.proposal-number{font:italic 34px/1 Georgia,serif;color:var(--rose);margin-bottom:10px}.proposal h2{color:var(--rose)}.proposal p{font-size:16px;margin-top:12px}.proposal .care{font-size:14px;color:var(--muted);border-left:2px solid var(--rose);padding-left:12px;margin-top:14px}.loading-head{text-align:center;margin:20px 0}.scanline{position:absolute;top:10%;left:0;width:100%;height:34%;background:linear-gradient(transparent,#ffb0d122,#ffe5c588);border-bottom:1px solid #ffe5c5;animation:scan 3s ease-in-out infinite;pointer-events:none}.scan-dots{position:absolute;inset:12%;pointer-events:none;background:radial-gradient(circle at 23% 34%,#fff2dd 0 2px,transparent 3px),radial-gradient(circle at 68% 36%,#fff2dd 0 2px,transparent 3px),radial-gradient(circle at 45% 52%,#fff2dd 0 2px,transparent 3px),radial-gradient(circle at 33% 75%,#fff2dd 0 2px,transparent 3px),radial-gradient(circle at 70% 70%,#fff2dd 0 2px,transparent 3px);animation:shimmer 2s ease-in-out infinite}.activity{width:46px;height:46px;margin:26px auto;border-radius:50%;border:2px solid #ffadd133;border-top-color:var(--rose);animation:rotate 1.2s linear infinite}.waiting{padding:40px 10px;text-align:center}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tabs button{flex:1;min-width:70px;padding:12px 8px;border:1px solid var(--line);border-radius:11px;color:var(--ivory);background:#ffffff06;font-size:14px}.tabs button[aria-pressed=true]{color:var(--plum);background:var(--rose)}.tabs small{display:block;font-size:11px;opacity:.8}.compare-button{width:100%;min-height:48px;color:var(--rose);background:transparent;border:1px solid #ffadd160;border-radius:10px;padding:10px;margin-top:12px}.compare-button[aria-pressed=true]{background:var(--ivory);color:var(--plum)}.result-reason{margin:22px 0}.result-reason h2{color:var(--rose)}.result-reason p{margin-top:10px;font-size:16px}.complete-note{margin:18px 0;color:var(--muted);font-size:14px}.site-footer{max-width:900px;padding:20px 24px 35px;margin:auto;display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}#notice{position:fixed;z-index:30;bottom:18px;left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 32px));padding:18px 20px;background:var(--ivory);color:var(--plum);border:2px solid var(--rose);border-radius:15px;box-shadow:0 12px 35px #0005;font-size:16px}dialog{max-width:480px;width:calc(100% - 32px);color:var(--ivory);background:var(--plum);border:1px solid var(--rose);border-radius:20px;padding:25px}dialog p{margin-top:15px;font-size:16px}dialog::backdrop{background:#180719cc}.startup{text-align:center}.startup .metal-e{font-size:150px;margin:70px auto 20px}#opening{position:fixed;inset:0;z-index:50;overflow:hidden;background:var(--dark);pointer-events:none;opacity:0}#opening.play{animation:opening-out 1500ms both}.bloom{position:absolute;width:700px;height:700px;left:calc(50% - 350px);top:calc(45% - 350px);background:radial-gradient(circle,#ffe8dc 0%,#f9c5d3 6%,#fb9bbd 15%,#d56c9f 25%,#8c386caa 38%,#6b265966 48%,transparent 65%);opacity:0;transform:scale(.015)}.play .bloom{animation:bloom 1500ms cubic-bezier(.14,.68,.22,1) both}.play .second{animation-delay:70ms;transform-origin:60% 60%}.opening-ring{position:absolute;width:220px;height:220px;left:calc(50% - 110px);top:calc(45% - 110px);border:1px solid #ffdcdf75;border-radius:50%;opacity:0}.play .opening-ring{animation:ring 1500ms ease-out both}.opening-brand{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:40px;opacity:0;font:400 40px/1.3 Georgia,serif;letter-spacing:.2em}.opening-brand .metal-e{font-size:125px;letter-spacing:0;margin-bottom:20px}.opening-brand small{font:400 12px/2 sans-serif;letter-spacing:.4em;margin-top:13px}.play .opening-brand{animation:brand 1500ms both}@keyframes opening-out{0%,65%{opacity:1}100%{opacity:0}}@keyframes bloom{0%{transform:scale(.015);opacity:0}9%{opacity:.8}29%{transform:scale(.73);opacity:1}58%{transform:scale(1.8);opacity:.85}100%{transform:scale(2.5);opacity:0}}@keyframes ring{0%,8%{transform:scale(.05);opacity:0}22%{opacity:.7}68%{transform:scale(3.3);opacity:.15}100%{transform:scale(4.8);opacity:0}}@keyframes brand{0%,16%{transform:translateY(18px) scale(.9);opacity:0}38%,69%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(-26px) scale(1.04);opacity:0}}@keyframes scan{0%,100%{transform:translateY(-10%);opacity:.2}50%{transform:translateY(160%);opacity:.8}}@keyframes shimmer{0%,100%{opacity:.2}50%{opacity:1}}@keyframes rotate{to{transform:rotate(360deg)}}
@media(min-width:760px){.hero .sculpture{right:20px;top:60px;transform:scale(1.4)}.hero-bottom{margin-top:38px}.hero{min-height:540px}.diagnosis-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.diagnosis-layout .portrait-wrap{margin:0}.form-width{max-width:560px;margin:auto}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.gallery-grid .portrait-wrap{margin-top:0}.options{grid-template-columns:1fr 1fr}.options.single{grid-template-columns:1fr}}
@media(max-width:360px){#app{padding:25px 18px}.topbar{padding:22px 18px 18px}.hero h1{font-size:34px}.hero .sculpture{right:-65px;top:135px;transform:scale(.85)}.hero-bottom{margin-top:135px}.lead{font-size:16px}.primary{font-size:16px;padding:14px}.choice{padding:16px 12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.play .bloom,.play .opening-ring{animation:none}.play .opening-brand{animation:soft-out 500ms both;transform:none}#opening.play{animation:soft-out 500ms both}.scanline,.scan-dots,.activity{animation:none}.scanline{opacity:.4}@keyframes soft-out{0%,45%{opacity:1}100%{opacity:0}}}
