:root{--ink:#092033;--navy:#071c2b;--muted:#69808c;--line:#d9e3e4;--mint:#b8f1d1;--paper:#f6f8f5;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,"Noto Sans JP",sans-serif}.topbar{height:76px;padding:0 clamp(24px,6vw,88px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e4e9e8}.brand{color:var(--ink);text-decoration:none;font-size:21px;font-weight:800;letter-spacing:-1.5px;display:flex;align-items:center;gap:9px}.brand>span:last-child span{color:#32a984}.brand-mark{width:29px;height:29px;border:7px solid var(--ink);border-radius:50%;font-size:0;position:relative}.brand-mark:after{content:"";position:absolute;width:7px;height:7px;background:var(--mint);border-radius:50%;right:-5px;bottom:-5px}.session{font-size:11px;color:var(--muted);margin-left:auto;margin-right:18px}.pulse{width:7px;height:7px;display:inline-block;background:#35b98b;border-radius:50%;margin-right:5px}.profile{width:34px;height:34px;border:0;border-radius:50%;background:var(--ink);color:#fff;font:600 11px "DM Mono";cursor:pointer}main{max-width:1320px;margin:auto;padding:64px clamp(24px,5vw,70px) 50px}.intro{max-width:690px;margin-bottom:48px}.eyebrow{font:600 10px "DM Mono",monospace;letter-spacing:1.4px;color:#3b9e7e;margin:0 0 11px}h1,h2,p{margin-top:0}h1{font-size:clamp(36px,5vw,62px);line-height:1.12;letter-spacing:-3.8px;margin-bottom:19px}h1 em{color:#3ca17f;font-style:normal}.lead{font-size:15px;color:var(--muted);line-height:1.8;margin:0}.workspace{display:grid;grid-template-columns:185px minmax(300px,1fr) minmax(300px,1fr);gap:18px;align-items:stretch}.steps{padding:17px 5px}.step{display:flex;gap:12px;padding:13px 8px;border-left:1px solid #cdd9d8;opacity:.42}.step.active{opacity:1;border-left:2px solid #2b9b79}.step>span{font:11px "DM Mono";color:#2b9b79}.step b{font-size:12px;display:block}.step small{font-size:10px;display:block;color:var(--muted);margin-top:5px;line-height:1.5}.notice{margin:33px 8px 0;color:#819298;font-size:10px;line-height:1.75}.scan-card,.model-card{background:#fff;border:1px solid #e1e9e8;border-radius:17px;padding:23px;min-width:0;box-shadow:0 9px 25px #123b3608}.card-head{display:flex;justify-content:space-between;align-items:flex-start}.card-head h2,.result h2{font-size:18px;letter-spacing:-.8px;margin:0}.camera-state{font:10px "DM Mono";padding:7px 9px;border-radius:20px;background:#f0f3f2;color:var(--muted)}.camera-shell{height:270px;margin-top:22px;position:relative;overflow:hidden;border-radius:11px;background:#0a2536}.camera-shell video,.camera-shell img{display:block;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-shell img{transform:none}.camera-placeholder{position:absolute;inset:0;color:#c5d5d9;display:grid;place-content:center;text-align:center;font-size:12px}.camera-placeholder p{width:185px;line-height:1.7;margin:7px auto}.tooth-icon{font-size:70px;color:#79d6b5;line-height:.4}.guide{display:none;position:absolute;pointer-events:none}.camera-shell.live .guide{display:block}.oval{inset:14% 27%;border:1px solid #c1f0d8;border-radius:48%}.horizontal{top:50%;left:20%;right:20%;border-top:1px dashed #c1f0d8}.direction{position:absolute;bottom:13px;left:13px;background:#062031cc;color:#e5fff4;font:10px "DM Mono";padding:6px 8px;border-radius:4px}.capture-meta,.model-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:12px 2px 17px}.counter{font-family:"DM Mono";color:#278c6c}.action-row{display:flex;gap:8px}.button{border:0;border-radius:8px;padding:11px 13px;font:600 11px Manrope,"Noto Sans JP";cursor:pointer;white-space:nowrap}.button.primary{background:var(--ink);color:#fff;margin-left:auto}.button.primary span{color:var(--mint);font-size:16px;margin-left:4px}.button:disabled{opacity:.4;cursor:not-allowed}.button.secondary{background:#edf2f1;color:#25404a}.model-card{display:flex;flex-direction:column}.text-button{border:0;background:none;padding:4px;color:#429a7e;font:600 10px Manrope;cursor:pointer}#modelViewport{height:270px;margin-top:22px;background:radial-gradient(circle at 50% 60%,#d7efeb 0,#edf5f3 43%,#f6f8f5 68%);border-radius:11px;overflow:hidden;cursor:grab}.model-footer{margin-top:12px;margin-bottom:0}.model-state{color:#348e71}.model-state i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#49c299;margin-right:4px}.result{margin-top:18px;padding:27px 31px;border-radius:15px;background:#dff4e9;display:flex;align-items:center;justify-content:space-between;gap:20px}.result h2{margin-bottom:7px}.result p:last-child{color:#56736a;font-size:12px;margin:0}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#092033;color:white;padding:11px 16px;border-radius:8px;font-size:12px;opacity:0;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:980px){.workspace{grid-template-columns:1fr 1fr}.steps{grid-column:1/-1;display:flex;padding:0}.step{flex:1}.notice{display:none}}@media(max-width:620px){main{padding-top:40px}.workspace{grid-template-columns:1fr}.steps{display:none}.camera-shell,#modelViewport{height:250px}.result{align-items:flex-start;flex-direction:column}.result .button{margin:0}.action-row{flex-wrap:wrap}.button.primary{margin-left:0}.session{display:none}}
