@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--plum:#33253e;--plum-light:#4b3b55;--ink:#2e2634;--muted:#7c7781;--line:#e6e3e9;--paper:#faf9fb;--lime:#d1e960;--light:#f1edf4;--font:'Noto Sans JP','Yu Gothic',sans-serif}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);font-size:.9375rem;line-height:1.65}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button{color:inherit}a{color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #89739d;outline-offset:4px}button{border:0;background:none}button svg{flex-shrink:0}svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:'Noto Serif JP','Yu Mincho',serif;font-weight:500}h1{font-size:clamp(1.65rem,2.75vw,2.7rem);letter-spacing:.04em;line-height:1.5}h2{font-size:1.45rem;line-height:1.5}h3{font-size:1rem;font-weight:600}small{font-size:.75rem}.skip{position:fixed;left:220px;top:-80px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}.sidebar{width:204px;position:fixed;inset:0 auto 0 0;background:var(--plum);color:#f9f6fb;display:flex;flex-direction:column;z-index:20}.brand{display:block;text-decoration:none;margin:25px 28px 42px}.brand>span{font-family:Georgia,serif;font-size:4.15rem;letter-spacing:-.05em;line-height:1.3}.brand small{display:block;font-size:.6rem;letter-spacing:.13em;color:#b7aabe;white-space:nowrap}nav{display:grid;gap:7px}.nav-button{display:flex;align-items:center;gap:16px;text-align:left;width:100%;padding:16px 23px;border-left:3px solid transparent;color:#dbd3e0;font-size:.875rem}.nav-button svg{width:22px;height:22px}.nav-button.active{background:#44354e;color:white;border-color:var(--lime)}.nav-button:hover{background:#44354e}.nav-count{margin-left:auto;border-radius:30px;background:#665270;padding:0 7px;font-size:.75rem}.rail-bottom{margin-top:auto;padding:40px 28px 26px;color:#b8adbf}.rail-line{display:block;width:25px;height:1px;background:#7f7088;margin-bottom:22px}.rail-bottom p{font-size:.8125rem;line-height:2}.rail-help{color:#b8adbf;font-size:.75rem;margin:30px 0 16px;padding:0}.rail-help span{margin-left:10px}.rail-bottom>small{display:block;color:#97899f;font-size:.6875rem}main{margin-left:204px;padding:24px 32px 0;max-width:1800px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{font-size:.6875rem;letter-spacing:.19em;font-weight:600}.top-actions{display:flex;align-items:center;gap:20px}.demo-pill{font-size:.625rem;letter-spacing:.1em;border:1px solid #ded5e6;padding:4px 9px;border-radius:3px;color:#726179}.guest{display:flex;gap:12px;align-items:center;font-size:.75rem}.avatar{display:inline-grid;place-items:center;width:27px;height:27px;background:var(--plum);border-radius:50%;color:white;font-family:Georgia,serif}.heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:23px 0 23px}.heading p{color:var(--muted);margin-top:8px;font-size:.875rem;letter-spacing:.025em}.btn{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:13px 21px;border-radius:3px;font-size:.875rem;font-weight:500;min-height:46px;transition:background .18s,transform .18s;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--plum);color:white}.btn.primary:hover{background:#4e3a5c}.btn.lime{background:var(--lime);color:#302b32}.btn.lime:hover{background:#c6df4c}.btn.outline{border:1px solid var(--line);background:white}.btn.subtle{background:var(--light)}.btn.small{min-height:36px;padding:8px 13px;font-size:.8125rem}.btn.full{width:100%}.text-button{padding:4px 0;display:inline-flex;align-items:center;gap:9px;font-size:.8125rem}.text-button:hover{text-decoration:underline}.text-button svg{width:16px}.studio-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.9fr);gap:20px;align-items:stretch}.photo-panel{border:1px solid var(--line);background:white;min-width:0}.portrait{position:relative;overflow:hidden;background:#e2e4e7;aspect-ratio:1/1;isolation:isolate}.face{position:absolute;inset:0;background-size:300% 100%;background-repeat:no-repeat;transform:scale(var(--zoom,1));transform-origin:50% 46%;background-image:url('assets/faces.png')}.face.original{background-position:0% 50%}.face.result{background-position:50% 50%;opacity:var(--strength,.75)}.face.result.eyes{background-position:100% 50%}.after-layer{position:absolute;inset:0;clip-path:inset(0 0 0 var(--split,50%));pointer-events:none}.original-only .after-layer{display:none}.preview-only .after-layer{clip-path:none}.photo-label{position:absolute;z-index:3;top:17px;padding:4px 11px;color:white;background:#4d4b538c;border:1px solid #ffffff30;border-radius:20px;font-size:.6875rem;backdrop-filter:blur(8px)}.photo-label.left{left:16px}.photo-label.right{right:16px}.photo-caption{position:absolute;bottom:17px;left:16px;color:#fff;background:#33253e96;z-index:4;padding:4px 9px;border-radius:3px;font-size:.625rem;letter-spacing:.08em}.split-line{position:absolute;left:var(--split,50%);top:0;bottom:0;width:1px;background:#ffffffdc;z-index:3;pointer-events:none}.split-handle{position:absolute;top:62%;left:0;transform:translate(-50%,-50%);width:35px;height:35px;border-radius:50%;background:white;box-shadow:0 2px 12px #0002;display:grid;place-items:center;color:var(--plum);font-size:20px}.split-input{position:absolute;left:12px;right:12px;bottom:10px;z-index:4;min-height:44px;accent-color:#fff;background:rgba(20,12,26,.55);border-radius:24px;padding:6px 14px;touch-action:pan-y;opacity:1;cursor:pointer}.portrait:focus-within{box-shadow:inset 0 0 0 3px var(--plum)}.own-photo{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;min-height:62px}.view-toggle{display:flex;background:#f4f2f6;padding:3px;border-radius:4px;gap:2px}.view-toggle button{padding:5px 10px;font-size:.75rem;line-height:1.5;border-radius:2px}.view-toggle button.active{background:white;box-shadow:0 1px 4px #2b193013}.tools{display:flex;align-items:center;gap:12px}.icon-btn{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:3px}.icon-btn:hover{background:var(--light)}.zoom-label{font-size:.6875rem;color:var(--muted)}.inspector{background:white;border:1px solid var(--line);padding:25px 24px 20px;display:flex;flex-direction:column;min-width:0}.inspector .subtitle{font-size:.8125rem;color:var(--muted);margin-top:7px}.area-tabs{display:flex;margin-top:20px;border-bottom:1px solid var(--line)}.area-tabs button{flex:1;padding:11px 8px;font-size:.875rem;border-bottom:2px solid transparent}.area-tabs button.active{color:var(--plum);border-color:var(--plum);font-weight:600}.adjustment{padding:21px 0 18px}.row-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.row-title span{font-size:.8125rem}.row-title output{font-family:Georgia,serif;font-size:1.1rem}.range{accent-color:var(--plum);width:100%;height:4px;margin:20px 0 8px;cursor:pointer}.range:disabled{cursor:not-allowed}.range-ends{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--muted)}.preset-group{display:flex;gap:6px;margin-top:19px}.preset{font-size:.75rem;padding:7px 11px;border:1px solid var(--line);border-radius:20px}.preset.active{background:var(--light);border-color:#a795b0}.score-panel{display:grid;grid-template-columns:1fr 1.1fr;gap:13px;margin-top:8px;padding:17px 15px;background:#f7f5f9;align-items:center}.score-label{font-size:.6875rem;display:flex;align-items:center;gap:5px;white-space:nowrap}.score-number{font-family:Georgia,serif;font-size:2.8rem;line-height:1.2;font-weight:400}.score-number small{font-family:var(--font);font-size:.75rem;color:var(--muted)}.tag{display:inline-block;font-size:.625rem;border-radius:3px;background:#e9e1ef;color:#62536d;padding:2px 6px;line-height:1.5;white-space:nowrap}.score-detail{border-left:1px solid #ded7e4;padding-left:15px;font-size:.6875rem;color:#79717f;line-height:1.8}.score-bar{height:5px;background:#e3e0e8;margin-top:9px;border-radius:9px;overflow:hidden}.score-bar>span{display:block;height:100%;background:var(--lime);width:82%}.report-link{justify-content:space-between;margin:9px 0 12px;color:#67596f;width:100%;font-size:.75rem}.consult-note{border-top:1px solid var(--line);padding-top:14px;margin:0 0 17px}.consult-note .eyebrow{font-size:.625rem;color:var(--muted);letter-spacing:.08em}.consult-note p{margin-top:5px;font-size:.8125rem}.consult-note small{display:block;color:var(--muted);font-size:.6875rem;margin-top:3px}.inspector-bottom{margin-top:auto}.fine-print{font-size:.6875rem;color:#837b89;line-height:1.8;margin-bottom:10px}.clinic-section{border:1px solid var(--line);background:white;padding:24px;margin-top:22px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:15px}.section-head h2{font-size:1.35rem}.section-head p{font-size:.8125rem;color:var(--muted);margin-top:5px}.section-head .tag{vertical-align:middle;margin-left:10px;background:#eff3d9}.clinic-row{display:grid;grid-template-columns:58px minmax(185px,1.1fr) minmax(160px,1fr) auto;align-items:center;gap:19px;padding:17px 0;border-top:1px solid var(--line)}.clinic-mark{width:58px;height:58px;display:grid;place-items:center;font-family:Georgia,serif;font-size:2rem;color:#75667b;border-radius:2px}.clinic-name{font-size:.875rem;font-weight:500}.clinic-meta{font-size:.6875rem;color:var(--muted);margin-top:5px}.clinic-detail{font-size:.75rem;color:#766b7d}.clinic-detail .tag{margin-top:5px;background:#f3f1f5}.row-actions{display:flex;gap:9px;align-items:center}.row-actions .text-button{font-size:.75rem}.page-footer{display:flex;justify-content:space-between;gap:15px;margin:25px 0 0;padding:19px 0;border-top:1px solid var(--line);color:#918a95;font-size:.6875rem}.page-footer button{padding:0;font-size:.6875rem;color:#756b7d}.notice{padding:11px 15px;background:#eeebf2;border:1px solid #e1dbe8;border-radius:3px;font-size:.8125rem;margin-bottom:18px;display:flex;gap:10px;align-items:center}.notice svg{width:18px;flex-shrink:0}.notice .text-button{margin-left:auto;white-space:nowrap}.report-grid{display:grid;grid-template-columns:320px 1fr;gap:28px}.report-photo .portrait{aspect-ratio:4/5}.report-photo{background:white;border:1px solid var(--line);align-self:start}.report-photo>p{padding:15px;font-size:.75rem;color:var(--muted)}.report-content{background:white;border:1px solid var(--line);padding:30px}.report-summary{display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line);padding-bottom:25px}.big-score{width:115px;height:115px;border:6px solid #e3ead0;border-top-color:var(--plum);border-right-color:var(--plum);border-bottom-color:var(--plum);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.big-score strong{font-family:Georgia,serif;font-weight:400;font-size:2.8rem;line-height:1.1}.big-score small{font-size:.6875rem;color:var(--muted)}.report-summary p{font-size:.875rem;color:var(--muted);margin-top:7px}.metric{padding:21px 0;border-bottom:1px solid var(--line)}.metric-head{display:flex;justify-content:space-between;font-size:.875rem}.metric-bar{height:5px;background:#f0edf3;margin:10px 0;border-radius:9px}.metric-bar span{display:block;height:100%;background:#81728c;border-radius:9px}.metric p{font-size:.75rem;color:var(--muted)}.report-content>.btn{margin-top:24px}.filters{display:flex;gap:13px;align-items:center;margin-bottom:22px;flex-wrap:wrap}.select-wrap{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);padding:8px 12px;border-radius:3px}.select-wrap label{color:var(--muted);font-size:.75rem}.select-wrap select{border:0;background:white;font-size:.8125rem;color:var(--ink);padding:2px 20px 2px 0}.clinic-list{background:white;padding:0 25px;border:1px solid var(--line)}.clinic-list .clinic-row:first-child{border-top:0}.clinic-list .clinic-row{padding:25px 0}.compare-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:20px;padding:18px 22px;background:var(--plum);color:white;border-radius:3px}.compare-bar p{font-size:.875rem}.compare-bar small{display:block;color:#c0b4c8}.empty{padding:65px 25px;text-align:center;border:1px dashed #d6cddd;background:white}.empty svg{width:36px;height:36px;color:#aa9db3;margin-bottom:17px}.empty h2{font-size:1.3rem}.empty p{font-size:.875rem;color:var(--muted);margin:12px auto 22px;max-width:460px}.saved-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.saved-card{background:white;border:1px solid var(--line)}.saved-card .portrait{aspect-ratio:4/5}.saved-body{padding:17px}.saved-body h3{font-size:.875rem}.saved-body p{font-size:.75rem;color:var(--muted);margin:5px 0 12px}.saved-body .row-actions{justify-content:space-between}dialog{padding:0;border:1px solid var(--line);border-radius:7px;width:min(580px,calc(100vw - 32px));max-height:88vh;overflow:auto;color:var(--ink);box-shadow:0 30px 100px #21152840}dialog::backdrop{background:#241a30a0;backdrop-filter:blur(4px)}dialog.wide{width:min(780px,calc(100vw - 32px))}.modal-content{padding:32px}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:18px}.modal-head h2{font-size:1.6rem}.modal-head .eyebrow{font-size:.6875rem;color:#8b7a95;margin-bottom:9px}.modal-content>p{font-size:.875rem;color:var(--muted);margin-bottom:17px}.dropzone{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:34px 24px;border:1px dashed #bbaeC4;background:#f9f7fa;border-radius:4px;text-align:center}.dropzone.dragover{border-color:var(--plum);background:#eae3ef}.dropzone>svg{width:31px;height:31px;color:#806c8d;margin-bottom:15px}.dropzone h3{margin-bottom:9px}.dropzone p{font-size:.75rem;color:var(--muted);margin-bottom:18px}.upload-consent{display:flex;gap:10px;align-items:start;font-size:.8125rem;margin:20px 0}.upload-consent input{width:17px;height:17px;accent-color:var(--plum);margin-top:4px;flex-shrink:0}.error{color:#a53a4e;font-size:.8125rem;margin-top:12px}.modal-foot{margin-top:23px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.modal-foot small{color:var(--muted);font-size:.6875rem}.detail-header{display:flex;gap:18px;align-items:center;padding:16px 0 23px}.detail-data{display:grid;grid-template-columns:110px 1fr;gap:0;font-size:.8125rem}.detail-data dt,.detail-data dd{border-top:1px solid var(--line);padding:13px 0;margin:0}.detail-data dt{color:var(--muted)}.questions{padding:19px;background:#f4f1f6;margin-top:21px}.questions h3{font-size:.875rem}.questions ul{padding-left:20px;font-size:.8125rem;color:#6f6577;line-height:2.1}.questions a{font-size:.75rem}.compare-table{border-collapse:collapse;width:100%;font-size:.8125rem;table-layout:fixed}.compare-table th,.compare-table td{border-bottom:1px solid var(--line);padding:15px 10px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.compare-table th{font-weight:500}.compare-table th:first-child{width:24%;color:var(--muted)}.compare-table thead th{background:#f5f1f8}#toast{position:fixed;bottom:25px;left:calc(50% + 102px);transform:translate(-50%,20px);background:var(--plum);color:white;padding:12px 20px;border-radius:4px;font-size:.8125rem;box-shadow:0 6px 24px #33253e30;opacity:0;pointer-events:none;z-index:70;transition:.25s;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.own-placeholder{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;gap:12px;padding:24px;min-height:250px;background:#f4f1f6}.own-placeholder p{font-size:.875rem;color:var(--muted);max-width:350px}.own-placeholder .btn{margin-top:5px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){main{padding-left:42px;padding-right:42px}.studio-grid{grid-template-columns:minmax(0,1.4fr) minmax(360px,.9fr)}.portrait{aspect-ratio:1.1/1}.inspector{padding:30px}.adjustment{padding-top:30px;padding-bottom:28px}.area-tabs{margin-top:28px}}
@media(max-width:1150px){.sidebar{width:176px}.brand{margin-left:22px}.brand>span{font-size:3.7rem}.brand small{font-size:.52rem}.nav-button{padding-left:17px;gap:12px;font-size:.8125rem}main{margin-left:176px;padding:22px 22px 0}.studio-grid{gap:15px;grid-template-columns:minmax(0,1fr) minmax(280px,.92fr)}.inspector{padding:20px 18px}.portrait{aspect-ratio:4/5}.score-panel{padding:12px 10px;gap:9px}.score-detail{padding-left:10px}.toolbar{padding:12px 9px}.tools{gap:3px}.view-toggle button{padding:5px 7px;font-size:.6875rem}.clinic-row{grid-template-columns:50px 1fr 1fr auto;gap:13px}.clinic-mark{width:50px;height:50px}.clinic-detail{font-size:.6875rem}.heading p{font-size:.8125rem}.heading .btn{padding:12px 16px}#toast{left:calc(50% + 88px)}}
@media(max-width:950px){.sidebar{width:76px}.brand{margin:24px 12px 36px}.brand>span{font-size:2.3rem}.brand small,.nav-button span,.rail-bottom{display:none}.nav-button{padding:18px 24px}.nav-button svg{width:23px;height:23px}main{margin-left:76px;padding:22px 22px 0}.heading{align-items:start}h1{font-size:1.9rem}.studio-grid{grid-template-columns:minmax(0,1fr) minmax(290px,.9fr)}.top-actions{gap:12px}.clinic-row{grid-template-columns:50px 1fr auto}.clinic-detail{display:none}.report-grid{grid-template-columns:240px 1fr;gap:18px}.report-content{padding:24px}.report-summary{gap:16px}.big-score{width:90px;height:90px}.big-score strong{font-size:2.2rem}.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#toast{left:calc(50% + 38px)}}
@media(max-width:740px){body{font-size:.9375rem}.sidebar{width:100%;height:64px;bottom:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:0 15px}.brand{margin:0}.brand>span{font-size:2.5rem}.sidebar nav{display:flex;gap:1px}.nav-button{width:46px;height:48px;justify-content:center;padding:10px;border-left:0;border-bottom:2px solid transparent;border-radius:3px}.nav-button.active{border-bottom-color:var(--lime)}main{margin:64px 0 0;padding:22px 18px 0}.topbar .eyebrow{font-size:.625rem}.guest{display:none}.heading{flex-direction:column;gap:17px;margin-top:20px}.heading .btn{width:100%;min-height:46px}.heading p{font-size:.8125rem;line-height:1.8}.heading h1{font-size:1.8rem;letter-spacing:.02em}.studio-grid{grid-template-columns:1fr;gap:17px}.portrait{aspect-ratio:1/1}.inspector{padding:24px}.inspector h2{font-size:1.55rem}.inspector .subtitle{font-size:.875rem}.area-tabs{margin-top:18px}.area-tabs button{font-size:.9375rem;padding:13px 8px}.adjustment{padding:21px 0}.row-title span{font-size:.875rem}.range{margin-top:24px;margin-bottom:15px}.preset{font-size:.8125rem;padding:8px 12px}.score-panel{padding:17px;margin-top:12px}.score-label{font-size:.75rem}.score-detail{font-size:.75rem}.score-number{font-size:3rem}.report-link{font-size:.8125rem;margin:13px 0 16px}.consult-note p{font-size:.875rem}.fine-print{font-size:.75rem}.toolbar{padding:12px 14px}.view-toggle button{font-size:.75rem;padding:6px 9px}.tools{gap:6px}.clinic-section{padding:21px 18px}.section-head{align-items:start}.section-head h2{font-size:1.25rem}.section-head .tag{margin-left:4px}.section-head .text-button{font-size:.75rem;white-space:nowrap}.clinic-row{grid-template-columns:44px minmax(0,1fr) auto;gap:12px}.clinic-mark{width:44px;height:44px;font-size:1.7rem}.clinic-name{font-size:.8125rem}.row-actions .text-button{font-size:.6875rem}.row-actions .text-button svg{width:14px}.clinic-meta{font-size:.6875rem}.page-footer{font-size:.625rem;align-items:center}.page-footer>span{max-width:190px}.notice{font-size:.75rem;align-items:start;flex-wrap:wrap}.notice .text-button{margin-left:27px}.report-grid{grid-template-columns:1fr}.report-photo{display:none}.report-content{padding:23px}.report-summary h2{font-size:1.25rem}.report-summary p{font-size:.75rem}.metric{padding:22px 0}.metric p{font-size:.8125rem}.filters{gap:10px}.select-wrap{flex:1}.select-wrap select{width:100%}.clinic-list{padding:0 16px}.clinic-list .row-actions{flex-direction:column;gap:4px}.clinic-list .row-actions .btn{padding:6px 9px;font-size:.6875rem}.compare-bar{padding:15px;align-items:start}.compare-bar p{font-size:.75rem}.compare-bar .btn{font-size:.75rem;padding:9px 12px}.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.saved-body{padding:12px}.saved-body .row-actions{flex-wrap:wrap}.saved-body .btn{font-size:.6875rem;padding:7px 10px}.modal-content{padding:24px 21px}.modal-head h2{font-size:1.35rem}.dropzone{padding:27px 17px}.dropzone h3{font-size:.875rem}.modal-foot{flex-wrap:wrap}.modal-foot .btn{width:100%}.compare-table{font-size:.75rem}.compare-table th,.compare-table td{padding:13px 7px}#toast{left:50%;width:max-content;max-width:90vw}.skip{left:10px}.top-actions{gap:8px}}
.portrait{aspect-ratio:4/5}.face{background-size:300% auto;background-position-y:0%}.face.original{background-position:0% 0%}.face.result{background-position:50% 0%}.face.result.eyes{background-position:100% 0%}.photo-panel{align-self:start}.score-label,.score-detail,.fine-print,.clinic-meta,.photo-label,.range-ends{font-size:.75rem}.preset,.view-toggle button,.row-title span,.report-link{font-size:.875rem}.brand small{font-size:.625rem;letter-spacing:.055em}.rail-help{font-size:.75rem}.toolbar{flex-wrap:wrap}.own-photo{object-fit:contain}.report-photo .face{background-size:300% auto}.saved-card .face{background-size:300% auto}.saved-card .after-layer{clip-path:none}
@media(min-width:1500px){.studio-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,1fr)}.portrait{aspect-ratio:4/5}}
@media(min-width:741px) and (max-width:950px){.brand{margin-left:7px;margin-right:7px}.brand>span{font-size:1.9rem;letter-spacing:-.07em}}
@media(max-width:740px){.portrait{aspect-ratio:4/5}.view-toggle button{font-size:.8125rem}.brand>span{font-size:2.5rem}.row-actions .text-button{font-size:.75rem}}
.portrait{aspect-ratio:1/1;background:#cfd1d5}.face{inset:auto;top:-2%;left:50%;height:145%;width:auto;aspect-ratio:1/2;background-size:300% 100%;transform:translateX(-50%) scale(var(--zoom,1));transform-origin:50% 36%}.report-photo .face,.saved-card .face{background-size:300% 100%}.inspector{min-height:0}.preset{white-space:nowrap}.inspector-bottom{margin-top:16px}.sidebar .brand>span{letter-spacing:-.055em}
@media(min-width:1100px){.studio-grid{grid-template-columns:minmax(0,1.1fr) minmax(330px,.95fr)}.photo-panel .portrait{min-height:520px}.inspector-bottom{margin-top:auto}}
@media(min-width:741px) and (max-width:950px){.preset-group{flex-wrap:wrap}.preset{font-size:.75rem}}
@media(max-width:740px){.photo-panel .portrait{aspect-ratio:4/5}.photo-panel .face{height:125%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.heading h1{text-wrap:balance}.modal-foot svg{width:14px;height:14px;vertical-align:middle}.nav-button .nav-count{flex-shrink:0}.brand small{max-width:148px;white-space:normal;line-height:1.7}

/* ---- karte flow additions ---- */
.flow{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}.flow-step{display:inline-flex;align-items:center;gap:5px}.flow-step b{font-size:.65rem;color:#b0a6ba;font-weight:700}.flow-step.done{color:var(--ink)}.flow-step.now{color:var(--plum);font-weight:700}.flow-step.done::after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-left:2px}.flow-step.now::after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:var(--plum);margin-left:2px}
.drop-hero{display:flex;flex-direction:column;align-items:center;gap:8px;margin:26px auto 12px;max-width:520px;padding:44px 20px;border:2px dashed #c9c2cf;border-radius:20px;background:#fff;text-align:center;cursor:pointer;transition:.2s}.drop-hero:hover,.drop-hero.dragover{border-color:var(--plum);background:var(--light)}.drop-hero h3{font-size:1.05rem}.drop-hero svg{width:30px;height:30px;color:var(--plum)}
.consent-inline{display:flex;align-items:center;gap:8px;justify-content:center;font-size:.8125rem;color:var(--muted);margin:4px 0 0}.consent-inline input{width:16px;height:16px;accent-color:var(--plum)}
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:16px 0 8px}.hero-actions .btn{min-width:46%;min-height:50px}
.trust-row{display:flex;gap:12px;align-items:flex-start;max-width:520px;margin:20px auto 0;padding:16px 18px;background:var(--light);border-radius:14px;font-size:.8125rem}.trust-row svg{width:20px;height:20px;flex-shrink:0;color:var(--plum)}.trust-row span{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}
.steps-ol{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.steps-ol li{display:flex;gap:10px;align-items:center;background:#fff;border-radius:12px;padding:13px 14px;font-size:.8125rem}.steps-ol b{color:var(--plum);font-size:.75rem}
.scanbox{text-align:center}.scan{width:150px;height:150px;position:relative;margin:26px auto 8px;border-radius:50%;overflow:hidden;background:var(--light)}.scan img{width:100%;height:100%;object-fit:cover}.scan .line{position:absolute;left:-6px;right:-6px;height:3px;background:var(--lime);border-radius:2px;box-shadow:0 0 12px rgba(209,233,96,.9);animation:scanmove 1.5s ease-in-out infinite}@keyframes scanmove{0%{top:6%}50%{top:92%}100%{top:6%}}.scanbox .steps{text-align:left;max-width:340px;margin:8px auto 0}.step{display:flex;align-items:center;gap:11px;padding:8px 0;font-size:.8125rem;color:var(--muted)}.step .dot{width:22px;height:22px;border-radius:50%;background:var(--light);display:flex;align-items:center;justify-content:center;font-size:.65rem;flex-shrink:0}.step.now{color:var(--ink);font-weight:700}.step.now .dot{border:2px solid var(--plum);background:#fff}.step.done{color:var(--ink)}.step.done .dot{background:var(--plum);color:#fff}
.score-hero{text-align:center;margin:14px 0 6px}.score-hero .score-num{font-size:3.6rem;font-weight:700;font-family:Georgia,serif;color:var(--plum);line-height:1.15}.score-num small{font-size:1.1rem;color:var(--muted);font-weight:400}.type-line{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--plum);color:#f9f6fb;font-size:.8125rem;font-weight:700;border-radius:22px;padding:7px 18px}.type-line .chip+.chip{background:var(--light);color:var(--ink)}.share-link{display:block;margin:10px auto 0}
.overlay-canvas{position:absolute;inset:0;width:100%;height:100%}
.overlay-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.after-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.simwrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.simwrap figure{margin:0;background:var(--paper);border-radius:14px;overflow:hidden}.simwrap img{width:100%;display:block}.simwrap figcaption{font-size:.7rem;text-align:center;padding:7px;color:var(--muted);letter-spacing:.06em}.simwrap .afterimg{background:var(--light)}
.card-plan{background:#fff;border-radius:18px;padding:22px;margin-top:15px}.card-plan h2{font-size:1.25rem;margin-bottom:4px}.card-plan>p{font-size:.8125rem;color:var(--muted);margin-bottom:12px}.proc{display:flex;align-items:center;gap:13px;background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:14px 15px;margin-bottom:9px;cursor:pointer;transition:.15s}.proc:hover{border-color:#c9bfd4}.proc.sel{border-color:var(--plum);background:var(--light)}.proc .chk{width:21px;height:21px;border-radius:50%;border:1.5px solid #d5ccd9;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}.proc.sel .chk{background:var(--plum);border-color:var(--plum)}.proc b{font-size:.875rem;display:block}.proc span{font-size:.75rem;color:var(--muted)}
.type-pop{text-align:center}.type-pop .big{font-size:64px;display:block;margin-bottom:8px}.type-pop p{text-align:left;font-size:.875rem;line-height:1.9}
.dropbox{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 14px;border:2px dashed #c9c2cf;border-radius:16px;background:var(--paper);text-align:center;cursor:pointer;transition:.2s}.dropbox:hover,.dropbox.dragover{border-color:var(--plum);background:var(--light)}.dropbox b{font-size:.875rem}.dropbox svg{width:26px;height:26px;color:var(--plum)}
.refgrid{display:flex;gap:14px;align-items:flex-start;margin-top:12px}.refgrid figure{margin:0;display:flex;flex-direction:column}.refgrid img{width:120px;border-radius:12px;display:block}.refgrid figcaption{font-size:.7rem;color:var(--muted);text-align:center;margin-top:4px}.refinfo{flex:1}.refinfo .chip{margin-bottom:8px}
.advicebox{margin-top:14px;padding:14px 16px;background:var(--light);border-radius:12px;font-size:.8125rem;line-height:1.9;color:var(--ink)}

/* ---- demo: score ring / scan sweep / share templates ---- */
.score-ringwrap{position:relative;width:154px;margin:8px auto 4px}
.score-ring{width:154px;height:154px;transform:rotate(-90deg);display:block}
.ring-bg{fill:none;stroke:#f0eae4;stroke-width:11}
.ring-fg{fill:none;stroke:url(#rg);stroke-width:11;stroke-linecap:round}
.score-ringwrap .score-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3px;font-size:32px;font-weight:800;color:var(--accent-dark)}
.score-ringwrap .score-num small{font-size:14px;color:var(--sub);font-weight:600}
.scanfx{position:relative;overflow:hidden;border-radius:18px}
.scanfx::before{content:"";position:absolute;left:4%;right:4%;height:3px;top:4%;background:linear-gradient(90deg,transparent,#e0708a,#e0708a,transparent);box-shadow:0 0 18px 4px rgba(224,112,138,.55);animation:scanfx 2.2s ease-in-out infinite;z-index:5;pointer-events:none}
@keyframes scanfx{0%{top:4%}50%{top:94%}100%{top:4%}}
.scanfx::after{content:"";position:absolute;inset:0;border:2px solid rgba(224,112,138,.28);border-radius:18px;pointer-events:none;z-index:5}
.share-tpl{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--sub)}

/* ---- vendor compare + spinner ---- */
.tw-wrap{border-radius:18px;overflow:hidden;background:#eee}
.tw-wrap img{display:block;width:100%;height:100%;object-fit:cover}
.scan-spin{position:absolute;left:50%;top:42%;translate:-50% -50%;--sk-size:52px;--sk-color:#e0708a;z-index:6}

/* ---- view transition + stagger + declutter ---- */
#app.view-enter{animation:viewIn .25s ease}
@keyframes viewIn{from{opacity:.35}to{opacity:1}}
#app.view-enter>*{animation:rise .45s ease both}
#app.view-enter>*:nth-child(2){animation-delay:.05s}
#app.view-enter>*:nth-child(3){animation-delay:.1s}
#app.view-enter>*:nth-child(4){animation-delay:.15s}
#app.view-enter>*:nth-child(5){animation-delay:.2s}
#app.view-enter>*:nth-child(6){animation-delay:.25s}
#app.view-enter>*:nth-child(n+7){animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.metrics-toggle{margin-top:10px}
.card-metrics .fine-print{margin-top:10px}
@media(prefers-reduced-motion:reduce){#app.view-enter,#app.view-enter>*{animation:none}}

/* ---- analyze: Magic UI patterns (MIT) + theme unify + handoff CTA ---- */
/* Port of AnimatedShinyText gradient sweep (Magic UI, MIT): lime band for light theme */
.shiny-text{background:linear-gradient(110deg,currentColor 38%,#d1e960 50%,currentColor 62%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shiny-sweep 3.2s linear infinite}
@keyframes shiny-sweep{to{background-position:-220% 0}}
#app .analysis-stage.as-complete [data-as="title"]{background:linear-gradient(110deg,currentColor 38%,#9dbb2f 50%,currentColor 62%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shiny-sweep 3.2s linear infinite}
/* Morphing status layer (see mountMorphStatus) */
.morph-src{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.morph-layer{position:relative;display:inline-block;min-height:1.4em;min-width:12em}
.morph-layer>span{display:inline-block;will-change:filter,opacity}
.morph-layer>span:last-child{position:absolute;left:0;top:0;white-space:nowrap}
/* Light-theme unify for analyze stage (app language: paper/plum/lime/serif) */
#app .analysis-stage{background:#faf9fb;color:#2e2634}
#app .analysis-stage h1{font-family:Georgia,"Noto Serif JP","Yu Mincho",serif}
#app .as-kicker{color:#7c7781}
#app .as-intro{color:#7c7781}
#app .as-top{border-color:#e6e3e9}
#app .as-wordmark{color:#33253e}
#app .as-live{color:#33253e}
#app .as-phase-number{background:#33253e;color:#faf9fb}
#app .as-info [data-as="title"]{color:#2e2634}
#app .as-info [data-as="mode"],#app .morph-layer{color:#33253e}
#app .as-detail{color:#7c7781}
#app .as-phases{border-color:#e6e3e9}
#app .as-complete{border-color:#d1e960}
/* Handoff CTA */
.as-cta{position:sticky;bottom:0;display:flex;justify-content:center;padding:18px 16px 26px;background:linear-gradient(transparent,#faf9fb 40%)}
.as-cta .btn{min-width:min(320px,84%)}
#twCompare{height:100%}#twCompare img{height:100%;width:100%;object-fit:contain}
.simulation-next{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin:20px 0;background:var(--light);border-left:3px solid var(--plum)}
.simulation-next p{margin:6px 0 0;font-size:.8125rem;color:var(--muted)}
.simulation-plan{scroll-margin-top:90px;border:1px solid var(--line)}
.simulation-plan h2{scroll-margin-top:90px}.simulation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.simulation-options .proc{width:100%;text-align:left;margin:0}.simulation-options .chk{color:transparent}.simulation-options .sel .chk{color:white}
.simulation-action{border-top:1px solid var(--line);padding-top:20px}.simulation-action>.btn{width:100%;min-height:52px;margin:12px 0;white-space:normal}
.simulation-action .fine-print{margin-top:8px}.photo-panel{scroll-margin-top:90px}
@media(max-width:740px){.simulation-next{flex-direction:column;align-items:stretch;padding:18px;gap:16px}.simulation-next .btn{white-space:normal}.simulation-options{grid-template-columns:1fr}}
.demo-entry{text-align:center;margin:8px 0 24px}.demo-entry .text-button{min-height:44px}.demo-entry p{margin-top:8px}
.demo-flow{margin:0 0 24px}.demo-flow>p{text-align:center;margin-bottom:10px}
.demo-page{padding-bottom:160px}#app.view-enter>.demo-page{animation:none}
.demo-diagnose{position:fixed;left:204px;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:14px 20px max(14px,env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}
.demo-diagnose .btn{min-height:48px}.demo-diagnose .primary{min-width:280px}
@media(max-width:1150px){.demo-diagnose{left:176px}}
@media(max-width:950px){.demo-diagnose{left:76px}}
@media(max-width:740px){.demo-diagnose{left:0;padding-left:18px;padding-right:18px;gap:8px}.demo-diagnose .primary{width:100%;min-width:0}.demo-diagnose .outline{min-height:44px;padding:8px 16px}}
.split-handle{display:none}
@media(max-width:740px){.split-input{display:none}}
