@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans','Noto Sans KR',sans-serif;color:#f0f3e8;background:#101513;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #d4eda4;outline-offset:3px}[hidden]{display:none!important}
.shell{max-width:1510px;margin:auto;padding:0 clamp(16px,4.7vw,78px)}
.topbar{height:74px;border-bottom:1px solid #425044;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:11px;font-size:21px;letter-spacing:-.06em}.brand span:not(.brandmark){font-weight:400;color:#c7dc9b}.brandmark{display:grid;place-items:center;border:2px solid #c7dc9b;color:#c7dc9b;width:31px;height:31px;font-size:24px;font-weight:400}
.slogan,.version,.eyebrow,.panel-head,.overline,.placeholder small,.photo-footer,.state-line,.privacy b,.shot-description>span,.shot-number,.recommend-head>span,footer{font-family:'DM Mono','Noto Sans KR',monospace}.slogan{font-size:10px;letter-spacing:.13em;color:#879b8a}.version{font-size:11px;white-space:nowrap;color:#bacbaf}.led{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c6de97;vertical-align:middle;margin-right:6px}
.hero{padding:70px 0 47px;display:flex;justify-content:space-between;align-items:end}.eyebrow{font-size:11px;letter-spacing:.13em;color:#bbd49e;margin:0 0 22px}.hero h1{font-size:clamp(51px,7.1vw,99px);letter-spacing:-.083em;line-height:1.15;margin:0;font-weight:700}.hero em,.recommend-head em{font-style:normal;color:#c7dc9b}.subcopy{font-size:14px;line-height:1.9;color:#a9b7aa;margin:24px 0 0}.hero-index{font:12px 'DM Mono';color:#a6b59f}.hero-index span{color:#546b58}
.workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(315px,.93fr);border:1px solid #455448;min-height:570px}.photo-panel{min-width:0;display:flex;flex-direction:column}.panel-head{height:55px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #455448;padding:0 22px;color:#c2d0ba;font-size:10px;letter-spacing:.12em}.panel-head span:last-child{color:#849c88;font-size:10px;letter-spacing:.02em}
.image-stage{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:445px;background:radial-gradient(circle at 50% 35%,#2a3a2d 0,#1b241e 58%,#18201b 100%);overflow:hidden}
.placeholder{text-align:center;padding:35px 16px;display:flex;flex-direction:column;align-items:center}.placeholder-icon{color:#d2e9a5;font:56px 'DM Mono';height:67px}.overline{font-size:10px;color:#8ca191;letter-spacing:.12em}.placeholder h2{font-size:clamp(24px,3vw,36px);line-height:1.42;letter-spacing:-.055em;margin:19px 0 10px;font-weight:600}.placeholder p{font-size:12px;color:#a4b2a6;margin:0}.actions{display:flex;gap:9px;margin:29px 0 22px}.actions button{padding:15px 19px;font-size:12px;font-weight:700;border-radius:0;border:1px solid #758a76}.primary{color:#152119;background:#c9df9f;border-color:#c9df9f!important}.primary:hover{background:#e0f1b5}.secondary{color:#edf4e7;background:transparent}.secondary:hover{background:#384a3c}.placeholder small{font-size:10px;color:#809582;letter-spacing:.03em}
.photo-view{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:15px}.photo-frame{position:relative;width:min(100%,calc(min(60vh,590px)*var(--ratio,1.5)));aspect-ratio:var(--ratio,1.5);max-height:min(60vh,590px);overflow:hidden;background:#0b100e}.photo-frame img{width:100%;height:100%;display:block;object-fit:fill}.photo-frame svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 0 2px #050b05)}.photo-frame svg .guide{stroke:#d5f2ac;stroke-width:2.5;fill:none;vector-effect:non-scaling-stroke}.photo-frame svg .dashed{stroke-dasharray:8 12}.photo-frame svg .ring{stroke:#fff3c0;fill:#d5f2ac1b;stroke-width:2.5;vector-effect:non-scaling-stroke}.photo-frame>span{position:absolute;top:11px;left:11px;background:#0f1814d9;border:1px solid #a4cc955e;font:10px 'DM Mono';padding:7px 9px;letter-spacing:.07em;color:#e1ecca}
.drag-message{position:absolute;inset:12px;background:#d0e6a6e8;color:#1c2b1c;display:grid;place-items:center;z-index:5;font:18px 'DM Mono'}
.photo-footer{min-height:67px;padding:12px 20px;border-top:1px solid #455448;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#94a79a;overflow-wrap:anywhere}.photo-footer>div{display:flex;gap:6px;flex-shrink:0}.photo-footer button{font-size:11px;color:#d1e5bd;border:1px solid #49634c;background:#28372c;padding:9px 11px}
.notes-panel{background:#19211b;border-left:1px solid #455448;display:flex;flex-direction:column;min-width:0}.spark{font-size:17px!important;color:#bbd49e!important}.empty-notes{min-height:400px;flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:27px}.ghost{font:clamp(62px,8vw,114px) 'DM Mono';letter-spacing:-.13em;color:#2a3a2c}.empty-notes .eyebrow{font-size:10px;margin:0}.empty-notes h2{font-size:clamp(26px,3.3vw,38px);font-weight:500;line-height:1.4;letter-spacing:-.055em;margin:14px 0}.empty-notes p:last-child{color:#a0b0a2;font-size:12px;line-height:1.85}
.analysis{flex:1;padding:28px 22px}.state-line{display:flex;justify-content:space-between;gap:8px;color:#abbdab;font-size:10px;letter-spacing:.06em}.state-line strong{font-weight:400;color:#d1e7aa}.analysis h2{font-size:29px;letter-spacing:-.05em;margin:26px 0 9px}.evidence{font-size:12px;color:#adbbac;line-height:1.8;min-height:53px;margin:0 0 24px}.option-caption{font-size:11px;color:#adbfac;border-top:1px solid #405044;padding-top:18px}.scene-options{display:flex;flex-wrap:wrap;gap:7px}.scene-options button{font-size:11px;background:#29382d;color:#d3dfcd;padding:9px 10px;border:1px solid #516453}.scene-options button.selected{color:#16211a;background:#cbdca2;border-color:#cbdca2;font-weight:700}.light-report{font-size:11px;line-height:1.8;color:#a4b89d;border-left:2px solid #b6cd93;padding-left:11px;margin-top:24px}.privacy{border-top:1px solid #405044;display:flex;gap:10px;padding:22px 23px}.privacy b{font-size:10px;color:#c3db99}.privacy small{display:block;color:#8da491;font-size:11px;line-height:1.7;margin-top:7px}
.recommendations{margin-top:70px;border-top:1px solid #4f6151}.recommend-head{padding:35px 0 27px;display:flex;justify-content:space-between;align-items:end;gap:10px}.recommend-head .eyebrow{margin-bottom:16px}.recommend-head h2{font-size:clamp(25px,3.3vw,42px);font-weight:600;margin:0;letter-spacing:-.06em}.recommend-head>span{font-size:11px;color:#9eb297}
.shot-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shot-tabs button{min-height:128px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #506452;background:#1f2a22;color:#dde7d5;padding:17px}.shot-tabs button.selected{background:#cedfa6;color:#1a241a;border-color:#cedfa6}.shot-tabs button:hover:not(.selected){background:#2d4030}.shot-number{font-size:10px;opacity:.65}.shot-tabs strong{font-size:16px;letter-spacing:-.04em}.shot-tabs .arrow{align-self:flex-end;font-size:20px}
.shot-content{display:grid;grid-template-columns:1.2fr .8fr;gap:25px;background:#1b2720;border:1px solid #506452;border-top:0;padding:32px}.shot-description>span{font-size:10px;color:#c7e1a1;letter-spacing:.1em}.shot-description h3{font-size:28px;letter-spacing:-.06em;margin:13px 0}.shot-description p{font-size:13px;line-height:1.85;color:#b5c5b2}.shot-description #shotSummary{color:#e5eed8;font-weight:600}.shot-content dl{border-left:1px solid #4e614f;padding-left:23px;margin:0;display:grid;gap:19px}.shot-content dl div{display:grid;grid-template-columns:87px 1fr;gap:11px}.shot-content dt{font:10px 'DM Mono';line-height:1.8;color:#a8c49d}.shot-content dd{margin:0;font-size:12px;line-height:1.8;color:#e1e9d8}.warning{font-size:12px;color:#9aaf9e;line-height:1.8;margin:19px 0}footer{margin:80px 0 25px;border-top:1px solid #4b594d;padding-top:18px;display:flex;justify-content:space-between;gap:12px;color:#879e8e;font-size:10px;letter-spacing:.08em}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.notes-panel{border-left:0;border-top:1px solid #455448}.empty-notes{min-height:210px;flex-direction:row;align-items:end;gap:12px}.ghost{font-size:60px}.hero{padding:42px 0 32px}.slogan{display:none}}
@media(max-width:600px){.topbar{height:64px}.hero h1{font-size:clamp(48px,12vw,66px)}.hero-index{display:none}.hero .subcopy{font-size:12px}.image-stage{min-height:410px}.photo-frame{width:min(100%,calc(min(60vh,550px)*var(--ratio,1.5)));max-height:60vh}.placeholder h2{font-size:26px}.photo-footer{flex-direction:column;align-items:flex-start}.photo-footer>div{align-self:flex-end}.shot-tabs{gap:5px}.shot-tabs button{padding:11px;min-height:111px}.shot-tabs strong{font-size:12px}.shot-content{grid-template-columns:1fr;padding:22px}.shot-content dl{border:0;border-top:1px solid #4e614f;padding:17px 0 0}.recommend-head>span{display:none}footer{flex-wrap:wrap;margin-top:45px}.empty-notes{padding:21px}.empty-notes h2{font-size:24px}}
@media(max-width:395px){.shell{padding:0 14px}.brand{font-size:19px}.version{font-size:9px}.actions{flex-direction:column;max-width:230px;width:100%}.image-stage{min-height:435px}.placeholder small{display:none}}

/* Vision-specific analysis controls */
.consent-panel{display:grid;gap:13px;padding:16px 0 20px;border-bottom:1px solid #4e614f}
.consent-panel label{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.8;color:#d0dcca;cursor:pointer}
.consent-panel input{margin-top:5px;accent-color:#c9df9f;flex-shrink:0}
.consent-panel button{padding:13px 16px;color:#142019;background:#c9df9f;border:1px solid #c9df9f;font-size:12px;font-weight:700}
.consent-panel button:disabled{opacity:.45;cursor:not-allowed}
.scene-options{display:block;margin-top:8px}
.scene-options .observation{padding:13px 2px;border-bottom:1px solid #405044}
.scene-options .observation strong{font-size:12px;color:#cee4b0;font-weight:600}
.scene-options .observation p{font-size:12px;line-height:1.75;color:#b7c5b5;margin:6px 0 0}
#shotDirections{white-space:pre-line}
