/* ON THE SITE — 에디토리얼 (2026-09-15 전면 개편, 영빈님 «TinySeoul과 완전 다른 사이트처럼 · 깔끔하고 미니멀 · AI/PPT 냄새 제거»)
   레퍼런스: 건축 스튜디오 웹사이트(PSL ARCH · renaissance · FarFrom). 원칙 —
   · 박스·카드·테두리·토글·칩·아이콘·둥근 모서리 없음. 구획은 괘선(rule) 하나와 여백.
   · 색은 무채색뿐: 거의 흰 바탕 + 검정 잉크 4단계 + 괘선 2단계. 상태는 색이 아니라 굵기·검정/회색으로.
   · 버튼은 텍스트 + →. 1차 = 굵은 검정, 2차 = 보통, 비활성 = 회색 —. 실행(이미지 만들기)만 검정 띠 하나.
   · 글자 4단계(11/12/13/15), 여백 4pt 스케일, 서체 Pretendard 하나(명조 금지).
   · hallmark 감사 반영: 섹션 번호(태그-왼쪽) 제거, 10px 미만 없음, transition 은 속성 지정·ease-out, :active 는 scale/opacity.
   droneshot.css · aerial.css · flight.css 위에 얹어 덮는다(body.site 접두로 우선). 옛 파일은 openclaw-backups/mini-restyle-20260915-173215/. */
body.site{
  /* Graphite(2026-09-15 영빈님 시안 D 채택): 따뜻한 흑연 바탕 + 밝은 잉크 4단계 + 호박색 포인트(버튼 테두리·값·실행·켬 상태). 레일은 오른쪽(body.st-rail-left 로 되돌림) */
  --bg:#1F1F1D; --bg-2:#2A2A27;
  --ink:#ECEAE4; --ink-2:#BDBAB2; --ink-3:#8B8981; --ink-4:#5E5D57;
  --rule:rgba(236,234,228,.22); --rule-soft:rgba(236,234,228,.10);
  --accent:#E3A82B; --accent-ink:#1F1F1D; --accent-line:rgba(227,168,43,.6); --accent-dim:rgba(227,168,43,.12);
  --t-xs:11px; --t-sm:12px; --t-md:13px; --t-lg:15px;
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-6:24px; --s-8:32px; --s-10:40px;
  --ctl-h:36px;   /* 누르는 것·고르는 것의 공통 높이(2026-09-16 영빈님 "선택박스 틀 높이가 다 다른데 통일해줘"). 강조 버튼(현재 뷰 저장 44 · 이미지 만들기 55)만 예외. */
  --ease-out:cubic-bezier(.23,1,.32,1); --dur:160ms;
  --sans:"Pretendard",-apple-system,"Apple SD Gothic Neo",sans-serif;
  --st-rail:372px;
}
body.ds.site{--st-rail:372px}
body.site #flight-controls,body.site #flight-head{display:none}          /* 브랜드는 레일 머리로 옮겼다 */
#st-legacy{display:none}
body.st-cursor .cesium-widget canvas{cursor:crosshair}

/* ── 레일: 바탕과 같은 면, 오른쪽에 괘선 하나 ── */
body.ds.site #ae-panel{left:auto;right:0;top:0;width:var(--st-rail);height:100vh;max-height:100vh;box-sizing:border-box;
  padding:0 var(--s-6) var(--s-10);background:var(--bg);border:0;border-left:1px solid var(--rule-soft);border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;
  color:var(--ink);font:var(--t-sm)/1.55 var(--sans);-webkit-font-smoothing:antialiased}
@media(max-width:600px){body.ds.site{--st-rail:min(372px,100vw)}}
body.ds.site #vmap3d{left:0!important;width:calc(100vw - var(--st-rail))!important}
body.ds.site.st-rail-left #ae-panel{left:0;right:auto;border-left:0;border-right:1px solid var(--rule-soft)}
body.ds.site.st-rail-left #vmap3d{left:var(--st-rail)!important}
@supports not selector(::-webkit-scrollbar){body.ds.site #ae-panel{scrollbar-width:thin;scrollbar-color:rgba(26,26,26,.18) transparent}}
body.ds.site #ae-panel::-webkit-scrollbar{width:6px}
body.ds.site #ae-panel::-webkit-scrollbar-track{background:transparent;margin:0}
body.ds.site #ae-panel::-webkit-scrollbar-thumb{background:rgba(26,26,26,.16);border-radius:0}
body.ds.site #ae-panel::-webkit-scrollbar-thumb:hover{background:rgba(26,26,26,.28)}
body.ds.site #ae-panel::-webkit-scrollbar-button{display:none;height:0}

/* 머리: 브랜드 한 줄 + 밑줄 탭 */
body.site .st-panel-head{position:sticky;top:0;z-index:4;display:block;margin:0 calc(-1 * var(--s-6)) var(--s-4);padding:var(--s-6) var(--s-6) 0;background:var(--bg);border:0;border-radius:0}
body.site .st-brand{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase}
/* 제품 이름은 레일에서 가장 큰 글자여야 한다(2026-09-16 영빈님 "상단 이름을 좀더 크게"). 부제는 작게 그대로. */
body.site .st-brand b{font-weight:600;color:var(--ink);font-size:18px;letter-spacing:.11em;line-height:1.2}
body.site .st-brand b::before{content:"";display:inline-block;width:8px;height:8px;background:var(--accent);margin-right:var(--s-2);vertical-align:1px}
body.site .st-brand span{color:var(--ink-3);letter-spacing:.06em;text-transform:none}
body.site .st-tabs{display:flex;gap:var(--s-6);margin:var(--s-6) 0 0;padding:0 0 var(--s-3);background:transparent;border:0;border-bottom:1px solid var(--rule);border-radius:0;box-shadow:none}
body.ds.site #ae-panel .st-tabs button{flex:0 0 auto;padding:0 0 2px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:var(--ink-3);font-size:var(--t-sm);font-weight:400;white-space:nowrap;transition:color var(--dur) var(--ease-out)}
body.ds.site #ae-panel .st-tabs button:hover{color:var(--ink);background:transparent;border-color:transparent}
body.ds.site #ae-panel .st-tabs button[aria-selected="true"]{background:transparent;color:var(--ink);border-bottom-color:var(--accent);box-shadow:none}
body.ds.site #ae-panel .st-tabs button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}

body.site .st-panel-head::after{content:"";display:block;height:var(--s-4);margin:0 calc(-1 * var(--s-6)) calc(-1 * var(--s-4));background:linear-gradient(var(--bg),rgba(31,31,29,0))}

/* ── 섹션: 제목 + 오른쪽 부제, 괘선으로만 구획. 번호 원은 없앤다(hallmark: 태그-왼쪽 패턴) ── */
body.site [data-st-step]{padding:0 0 var(--s-6);border-bottom:1px solid var(--rule)}
body.site [data-st-step]:last-child{border-bottom:0}
body.site .ds-step{display:flex;align-items:baseline;gap:var(--s-3);margin:var(--s-6) 0 var(--s-4);font-size:var(--t-md);font-weight:600;color:var(--ink);letter-spacing:-.01em}
body.site [data-st-step]:first-child .ds-step{margin-top:0}
body.site .ds-step small{margin-left:auto;font-weight:400;font-size:var(--t-xs);color:var(--ink-3);text-align:right}
body.site .ds-n{display:none}
body.site [data-st-step][hidden],body.site #st-model-options[hidden]{display:none!important}
body.site #st-model-options{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--rule-soft)}

/* ── 카드는 없다: 여백만 ── */
body.site .ds-card,body.site .ds-card.st,body.site .ds-card.vw{border:0;background:transparent;border-radius:0;padding:0;margin:0}
body.site .ds-card .ae-row,body.site #ae-panel .ae-row{display:flex;align-items:stretch;gap:var(--s-2);margin:var(--s-2) 0 0}
body.site .ds-card .ae-row:first-child,body.site #ae-panel .ae-row:first-child{margin-top:0}
body.site .ds-sub,body.site .ae-hint,body.site .ds-keys,body.site #st-model-status,body.site #ae-panel .ae-note{font-size:var(--t-xs);line-height:1.6;color:var(--ink-3);margin:var(--s-2) 0 0}
body.site .ds-sub b,body.site #ae-panel .ae-note b,body.site #st-model-status b{color:var(--ink);font-weight:500}
body.site .ds-keys{display:none;flex-wrap:wrap;gap:var(--s-1) var(--s-3)}
body.ds-free.site .ds-keys{display:flex}
body.site .ds-keys b{color:var(--ink-2);font-weight:500;font-family:inherit;font-size:inherit;background:transparent;padding:0;border-radius:0}
body.site #ae-panel .ae-note{margin-top:var(--s-6);padding-top:var(--s-3);border-top:1px solid var(--rule)}
body.site #st-model-status{margin:var(--s-2) 0 0}
body.site #st-model-status[hidden]{display:none}

/* ── 지도·검색: 지도는 헤어라인, 입력은 밑줄 하나 ── */
/* isolation: Leaflet 내부 pane 은 z-index 400(타일)·1000(컨트롤)이라, 지도가 쌓임 맥락을 안 만들면 그 값이
   레일과 같은 맥락에서 경쟁해 sticky 헤더(.st-panel-head, z-index 4) 위로 스크롤돼 올라온다(2026-09-16 영빈님 제보).
   overflow:hidden 은 쌓임 맥락을 만들지 않는다 — 여기서 격리해 지도 안쪽 값을 가둔다. */
body.site #ae-panel #ae-map{height:160px;margin:0 0 var(--s-3);border:1px solid var(--rule-soft);border-radius:0;overflow:hidden;background:var(--bg-2);isolation:isolate}
body.site #ae-panel #ae-map .leaflet-control-zoom a{border-radius:0;background:var(--bg);color:var(--ink);border-color:var(--rule)}
body.site #ae-panel #ae-map .leaflet-tile{filter:grayscale(.2) brightness(.92)}
body.site #ae-panel #ae-map .leaflet-control-attribution{font-size:var(--t-xs);background:rgba(31,31,29,.8);color:var(--ink-3)}
body.site #ae-panel input:not([type]),body.site #ae-panel input[type=text]{background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--rule);border-radius:0;padding:var(--s-2) 0;font:var(--t-md)/1.4 var(--sans);transition:border-color var(--dur) var(--ease-out)}
body.site #ae-panel input:not([type]):focus,body.site #ae-panel input[type=text]:focus{outline:0;border-bottom-color:var(--accent);box-shadow:none}
body.site #ae-panel input::placeholder{color:var(--ink-4)}
body.site #ae-panel #ae-go{flex:0 0 auto;align-self:flex-end;padding:var(--s-2) var(--s-3);border:1px solid var(--accent-line);border-radius:0;background:transparent;color:var(--accent);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase}
body.site #ae-panel #ae-go::after{content:none}

/* ── 버튼 = 텍스트 + →. 한 줄에 하나면 아래 괘선, 둘이면 나란히 ── */
body.site #ae-panel button{flex:1 1 auto;display:flex;justify-content:center;align-items:center;gap:var(--s-3);min-width:0;min-height:var(--ctl-h);padding:var(--s-2) var(--s-3);border:1px solid var(--accent-line);border-radius:0;background:transparent;color:var(--ink);font:400 var(--t-sm)/1.4 var(--sans);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;
  transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out),opacity var(--dur) var(--ease-out)}   /* 누르는 것 = 얇은 상자. 값(선택·슬라이더)은 상자 없음 */
body.site #ae-panel button::after{content:none}   /* 화살표 없음 — 행동 버튼은 상자+가운데 글자로만(2026-09-15 영빈님) */
body.site #ae-panel button:hover:not(:disabled){background:var(--accent-dim);color:var(--ink);border-color:var(--accent)}
body.site #ae-panel button:active:not(:disabled){opacity:.6}
body.site #ae-panel button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
body.site #ae-panel button:disabled{opacity:1;color:var(--ink-4);border-color:var(--rule-soft);cursor:not-allowed}

body.site #ae-panel button.pri{background:transparent;color:var(--ink);font-weight:600;border-color:var(--accent)}

body.site #ae-panel button.pri:hover:not(:disabled){background:var(--accent-dim);color:var(--ink);border-color:var(--accent)}
body.site #ae-panel button.on,body.site .ds-card.st button.on,body.site .ds-card.vw button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}

body.site #ds-free.on{background:var(--accent);color:var(--accent-ink);font-weight:600;border-color:var(--accent)}
/* 켬/끔: 오른쪽에 작은 사각 마크(채움 = 켬). 글자는 그대로(스크립트가 바꾼다) */
body.site #ae-panel .st-tg{justify-content:space-between;text-align:left;padding-right:var(--s-3)}   /* 켬끔 사각 마크가 테두리에 붙지 않게(2026-09-15 영빈님) */
body.site #ae-panel .st-tg::after{content:"";flex:none;width:9px;height:9px;margin-left:var(--s-4);align-self:center;border:1px solid var(--accent-line);background:transparent;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
body.site #ae-panel .st-tg.on,body.site #ae-panel .st-tg[aria-pressed="true"]{background:transparent;color:var(--ink);border-color:var(--accent);font-weight:500}
body.site #ae-panel .st-tg.on::after,body.site #ae-panel .st-tg[aria-pressed="true"]::after{background:var(--accent);border-color:var(--accent)}
body.site .st-na{opacity:.5;cursor:not-allowed}
/* 실행: 검정 띠 하나 */
body.site .ds-card #ds-still,body.site #ae-panel #ds-still{width:100%;margin-top:var(--s-4);padding:var(--s-4);border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font-size:var(--t-lg);font-weight:600;border-radius:0;transition:transform var(--dur) var(--ease-out),opacity var(--dur) var(--ease-out)}
body.site #ae-panel #ds-still:hover:not(:disabled){background:#EFB53A;color:var(--accent-ink);border-color:#EFB53A}
body.site #ae-panel #ds-still:active:not(:disabled){transform:scale(.985);opacity:1}
body.site #ae-panel #ds-still:disabled{background:var(--bg-2);color:var(--ink-4);border-color:var(--rule-soft)}

body.site #st-recmp{margin-top:var(--s-2);width:100%}
body.site .st-file{flex:1;display:flex;justify-content:center;align-items:baseline;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--accent);background:transparent;border-radius:0;font-size:var(--t-sm);font-weight:600;color:var(--ink);cursor:pointer;min-width:0;transition:background var(--dur) var(--ease-out)}

body.site .st-file:hover{background:var(--accent-dim);color:var(--ink);border-color:var(--accent)}
#st-file[hidden]{display:none}
body.site #st-file-open{width:100%}
body.site .st-file .st-file-w{display:none}
body.site .st-file.st-pending .st-file-t{display:none}
body.site .st-file.st-pending .st-file-w{display:inline}
body.site .st-file.st-pending{border-style:solid;border-color:var(--rule);color:var(--ink-2)}

/* ── 사양표: 라벨 | 값, 슬라이더는 값 아래 가는 선. 선택은 값 + 쉐브론, 박스 없음 ── */
body.site #ae-panel .ae-s{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--s-1);margin:0;padding:var(--s-2) 0 0;border-top:1px solid var(--rule-soft);font-size:var(--t-xs);color:var(--ink-3)}
body.site #ae-panel .ae-s b{margin-left:auto;color:var(--ink);font-weight:500;font-size:var(--t-md);font-variant-numeric:tabular-nums}
body.site #ae-panel .ae-s input[type=range]{flex:1 0 100%;width:100%;height:14px;margin:var(--s-1) 0 var(--s-2);-webkit-appearance:none;appearance:none;background:transparent;accent-color:var(--ink)}
body.site #ae-panel .ae-s input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--rule)}
body.site #ae-panel .ae-s input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:9px;height:9px;margin-top:-4px;background:var(--accent);border-radius:0;border:0}
body.site #ae-panel .ae-s input[type=range]::-moz-range-track{height:1px;background:var(--rule)}
body.site #ae-panel .ae-s input[type=range]::-moz-range-thumb{width:9px;height:9px;background:var(--accent);border-radius:0;border:0}
body.site #ae-panel .ae-s input[type=range]:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
body.site #ae-panel select{-webkit-appearance:none;appearance:none;background:transparent;color:var(--ink);border:0;border-radius:0;padding:0 var(--s-4) 0 0;font:500 var(--t-md)/1.3 var(--sans);cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238B8981' stroke-width='1'/></svg>");background-repeat:no-repeat;background-position:right 2px center}
body.site #ae-panel select:hover{color:var(--ink);border-color:transparent}
body.site #ae-panel select:focus-visible{outline:1px solid var(--ink);outline-offset:4px;box-shadow:none;border-color:transparent}
/* 값은 오른쪽 정렬하되 방향은 ltr 로 둔다(2026-09-16 영빈님 "선택지 글씨가 오른쪽에 정렬이 안되고 삐뚤빼뚤").
   direction:rtl 은 "3:2 · 사진"·"16:9 · 와이드"처럼 숫자·콜론·한글이 섞인 값에서 양방향 알고리즘이 조각 순서를
   바꿔 줄마다 들쭉날쭉해진다. text-align-last 면 닫힌 상태의 값만 오른쪽으로 붙는다. */
body.site #ae-panel .ae-s select{flex:0 0 auto;width:auto;max-width:70%;margin-left:auto;text-align:right;text-align-last:right}   /* 기본 css 의 width:100% 를 끄지 않으면 값이 다음 줄로 떨어진다 */
/* 펼친 목록은 OS 가 그리는 팝업이라 배경을 안 물려받는다 → 어두운 페이지에서 흰 바탕에 흰 글씨가 된다(영빈님 스샷). 항상 명시할 것. */
body.site select option,#st-auth select option{background:var(--bg);color:var(--ink)}
body.site #ae-panel .ae-s select option{direction:ltr;text-align:left;text-align-last:left}
/* 크레딧이 더 드는 선택은 툴팁이 아니라 화면에 적는다(2026-09-16 영빈님 "잘 보이게 써줘"). 체크박스 줄 아래 한 줄. */
body.site #ae-panel #st-pair-row .st-pair-note{flex:1 0 100%;margin:2px 0 0 19px;color:var(--accent);font-size:var(--t-xs);line-height:1.45;letter-spacing:0}
body.site #ae-panel .ae-row select{flex:0 1 auto;max-width:60%;height:var(--ctl-h);padding-top:0;padding-bottom:0;border-bottom:1px solid var(--rule-soft)}
body.site #ae-panel .ae-row select#st-olmode{flex:1 1 auto;max-width:100%;width:100%}
body.site #ae-panel .ae-row select#st-official{flex:1 1 auto;max-width:calc(100% - 52px)}
body.site #ae-panel .ae-row button#st-offpin{flex:0 0 auto;min-width:0;padding-left:var(--s-3);padding-right:var(--s-3)}

/* ── 조망점 탭(2026-09-16 개편): ①현재 뷰 저장 ②내가 찍은 뷰 ③카메라 설정 ④조망점 지정 ⑤거리 링 ⑥공식 조망점 ── */
body.site #ae-panel button.st-big{width:100%;min-height:44px;font-size:var(--t-md);font-weight:600;margin-bottom:var(--s-3)}
body.site #ae-panel .st-sub-h{margin:var(--s-4) 0 var(--s-1);font-size:var(--t-xs);letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
body.site #ae-panel .st-vps{display:flex;flex-direction:column;gap:1px;margin:0 0 var(--s-2)}
body.site #ae-panel .st-vps-empty{margin:0;padding:var(--s-2) 0;font-size:var(--t-xs);line-height:1.6;color:var(--ink-3)}
body.site #ae-panel .st-vp{display:flex;align-items:stretch;border-bottom:1px solid var(--rule-soft)}
body.site #ae-panel .st-vp.on{background:var(--accent-dim)}
body.site #ae-panel .st-vp button{border:0;border-radius:0;background:transparent;padding:var(--s-2) 0;min-height:0}
body.site #ae-panel .st-vp-go{flex:1;display:flex;align-items:baseline;gap:var(--s-2);text-align:left;color:var(--ink);font-size:var(--t-sm)}
body.site #ae-panel .st-vp-go b{font-weight:600}
body.site #ae-panel .st-vp-go span{margin-left:auto;color:var(--ink-3);font-size:var(--t-xs);font-variant-numeric:tabular-nums}
body.site #ae-panel .st-vp-del{flex:0 0 28px;color:var(--ink-3);font-size:var(--t-md);line-height:1}
body.site #ae-panel .st-vp-del:hover{color:var(--ink);background:var(--accent-dim)}
body.site #ae-panel .st-vp-go:hover{background:var(--accent-dim)}
/* 대안 비교(2026-09-29): 저장한 뷰 목록과 같은 줄 + 앞에 «한 번에 찍기» 체크 */
body.site #ae-panel .st-alt{align-items:center}
body.site #ae-panel .st-alt .st-alt-ck{margin:0 var(--s-2) 0 2px}
body.site #ae-panel .st-alt .st-vp-go{min-width:0}
body.site #ae-panel .st-alt .st-vp-go span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62%}
body.site #ae-panel .st-soon{color:var(--ink-3)}
body.site #ae-panel #st-alt-go{width:100%}
body.site #ds-still[hidden],body.site #st-etainfo[hidden],body.site #st-alt-shoot[hidden],body.site #st-model-remove[hidden],#st-alt-file[hidden]{display:none!important}
body.site #st-res{margin-left:auto;width:auto;max-width:none}
/* 지원 범위(2026-09-16 영빈님 "서울만 가능하다는 말을 주소 검색 밑에"): 검색창 바로 아래.
   서버 지오코더가 서울 bbox 밖 결과를 아예 걸러내므로(server.py) '검색되지 않습니다' 가 사실 그대로다. */
body.site #ae-panel .st-scope{margin:var(--s-2) 0 0;font-size:var(--t-xs);line-height:1.6;color:var(--ink-3)}
body.site #ae-panel .st-scope b{color:var(--accent);font-weight:600}
body.site #ae-panel .st-scope span{color:var(--ink-4)}
body.site #st-resinfo{font-variant-numeric:tabular-nums}
body.site #ae-panel input[type=color]{width:16px;min-width:16px;height:16px;padding:0;border:1px solid var(--rule);border-radius:0;background:transparent;cursor:pointer;align-self:center}
body.site #ae-panel input[type=color]::-webkit-color-swatch-wrapper{padding:0}
body.site #ae-panel input[type=color]::-webkit-color-swatch{border:0;border-radius:0}
body.ds.site #ae-panel .st-marker-row{flex-wrap:wrap}
body.ds.site #ae-panel .st-marker-row #st-marker{flex:1 0 100%!important;white-space:nowrap}
/* 전후 비교는 「이미지 만들기」 바로 위에서 눈에 띄어야 한다(2026-09-16 영빈님 "더 잘 보이게, 흰 글자로").
   column-gap 만 8px — gap 을 한 번에 주면 줄바꿈된 안내문까지 8px 씩 벌어진다. */
body.site #ae-panel #st-pair-row{display:flex;align-items:center;column-gap:var(--s-2);row-gap:0;margin-top:var(--s-4);padding:0;border:0;font-size:var(--t-md);color:var(--ink)}
body.site #ae-panel #st-pair-row[hidden]{display:none}
body.site #ae-panel :is(#st-pair,#st-ground-clean,.st-alt-ck){appearance:none;-webkit-appearance:none;width:11px;height:11px;margin:0;border:1px solid var(--accent-line);background:transparent;cursor:pointer;position:relative;flex:none}
body.site #ae-panel :is(#st-pair,#st-ground-clean,.st-alt-ck):checked{border-color:var(--accent)}
body.site #ae-panel :is(#st-pair,#st-ground-clean,.st-alt-ck):checked::after{content:"";position:absolute;inset:2px;background:var(--accent)}
body.site #ae-panel :is(#st-pair,#st-ground-clean,.st-alt-ck):focus-visible{outline:1px solid var(--ink);outline-offset:3px}
body.site #ae-panel :is(#st-pair,#st-ground-clean,.st-alt-ck):disabled{border-color:var(--ink-4);cursor:not-allowed}
body.site #ae-panel #st-pair-row:has(#st-pair:disabled){color:var(--ink-4)}
body.site #ae-panel #st-pair-row:has(#st-pair:disabled)::after{content:"· 모델을 올리면 켤 수 있습니다";font-size:var(--t-xs);color:var(--ink-4)}

/* ── 진행 표시: 1px 선 위 검정 눈금 ── */
#st-prog{margin-top:var(--s-4);font-size:var(--t-xs);color:var(--ink-2);line-height:1.5;font-variant-numeric:tabular-nums}
#st-prog[hidden]{display:none}
.st-bar{height:1px;background:var(--rule-soft);border-radius:0;overflow:visible;margin-bottom:var(--s-2);position:relative}
.st-bar i{display:block;height:3px;margin-top:-1px;width:38%;background:var(--accent);animation:stbar 1.4s linear infinite}
@keyframes stbar{0%{transform:translateX(-110%)}100%{transform:translateX(270%)}}
body.site .st-pending::before{content:"";display:inline-block;width:10px;height:10px;box-sizing:border-box;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:var(--s-2);vertical-align:-1px;flex:none;animation:stspin .7s linear infinite}
body.site button.st-pending,body.site .st-file.st-pending{cursor:progress}
body.site button.st-pending:disabled{opacity:1;color:var(--ink-2)}
body.site #st-info.st-pending,body.site #st-progt.st-pending{color:var(--ink)}
body.site #st-prog:not(:has(.st-pending)) .st-bar i{animation:none;width:100%;transform:none}
@keyframes stspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body.site .st-pending::before{animation:none;border-style:dotted}body.site .st-bar i{animation:none}}

/* ── 제작 중 오버레이: 3D 화면만 덮는 종이 + 정지화면 ── */
body.site #st-shade{position:fixed;inset:0;right:var(--st-rail);z-index:120;display:flex;align-items:center;justify-content:center;background:rgba(31,31,29,.97);cursor:progress;outline:0;touch-action:none}
body.site #st-shade[hidden]{display:none!important}
body.site #st-shade-still{position:absolute;display:block;pointer-events:none;opacity:.45;filter:saturate(.7)}
body.site #st-shade-still[hidden]{display:none}
body.ds.site.st-shaded #ae-panel{pointer-events:none}
body.site .st-shade-box{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2);max-width:min(420px,calc(100vw - 48px));padding:var(--s-6);background:var(--bg);border:0;border-top:1px solid var(--accent);border-radius:0;color:var(--ink);text-align:left;box-shadow:none;font:var(--t-sm)/1.5 var(--sans)}
body.site .st-shade-spin{width:12px;height:12px;box-sizing:border-box;border:1px solid var(--accent);border-right-color:transparent;border-radius:50%;animation:stspin .7s linear infinite}
body.site .st-shade-title{font-size:var(--t-lg);font-weight:600;letter-spacing:-.01em}
body.site .st-shade-stage{font-size:var(--t-sm);color:var(--ink-2);min-height:1.4em;line-height:1.5;word-break:keep-all;font-variant-numeric:tabular-nums}
body.site .st-shade-hint{font-size:var(--t-xs);color:var(--ink-3);line-height:1.6}
body.site #st-shade-skip{margin-top:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--accent-line);border-radius:0;background:transparent;color:var(--ink);font:400 var(--t-sm) var(--sans);cursor:pointer}

body.site #st-shade-skip:hover{background:var(--accent-dim);border-color:var(--accent)}
body.site #st-shade-skip[hidden]{display:none}
body.site.st-shaded{user-select:none;-webkit-user-select:none}
@media(prefers-reduced-motion:reduce){body.site .st-shade-spin{animation:none;border-style:dotted}}

/* ── 촬영 프레임: 밖은 종이 반투명, 안은 잉크 1px. 꼬리표는 프레임 아래 자간 넓은 한 줄 ── */
body.site #st-frame{position:fixed;overflow:hidden;pointer-events:none;z-index:6}
body.site #st-frame[hidden]{display:none}
body.site #st-frame-box{position:absolute;box-shadow:0 0 0 9999px rgba(31,31,29,.72);outline:1px solid var(--ink);outline-offset:-1px;transition:left .12s ease,top .12s ease,width .12s ease,height .12s ease}
body.site #st-frame-box::before,body.site #st-frame-box::after{content:'';position:absolute;inset:0;pointer-events:none}
body.site #st-frame-box::before{border-left:1px solid rgba(255,255,255,.18);border-right:1px solid rgba(255,255,255,.18);left:33.333%;right:33.333%}
body.site #st-frame-box::after{border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);top:33.333%;bottom:33.333%}
body.site #st-frame-tag{position:absolute;left:0;top:100%;margin-top:var(--s-2);padding:0;border-radius:0;background:transparent;color:var(--accent);font:var(--t-xs)/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-variant-numeric:tabular-nums}
body.site #st-frame.st-pillar #st-frame-tag{left:auto;right:100%;top:0;margin:0 var(--s-2) 0 0;writing-mode:vertical-rl;transform:rotate(180deg)}
body.ds.site #flight-credit{margin-left:calc(-1 * var(--st-rail) / 2);bottom:var(--s-4);padding:0;border-radius:0;background:transparent;color:var(--ink-3);font-size:var(--t-xs);letter-spacing:.02em;text-shadow:0 0 6px rgba(31,31,29,.9);opacity:1}

/* ── 비교 화면: 종이 위의 사진 두 장 ── */
body.site #cmp{background:rgba(31,31,29,.98);color:var(--ink);font:var(--t-sm)/1.5 var(--sans);gap:var(--s-3)}
body.site #cmp-stage{border-radius:0;box-shadow:none;background:var(--bg-2)}
body.site #cmp-bar{background:var(--accent);box-shadow:none;width:1px;margin-left:0}
body.site #cmp-bar span{width:28px;height:28px;border-radius:0;background:var(--accent);color:var(--accent-ink);font:var(--t-xs)/1 var(--sans);letter-spacing:0;box-shadow:none}
body.site #cmp .cmp-lab{top:var(--s-3);padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;mix-blend-mode:difference;font:500 var(--t-xs)/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
body.site #cmp .cmp-lab.l{left:var(--s-3)}body.site #cmp .cmp-lab.r{right:var(--s-3)}
body.site #cmp-stage{margin-top:var(--s-6)}
body.site #cmp-tools{gap:var(--s-2);padding:0;width:min(720px,calc(100vw - 32px));justify-content:flex-start;align-items:stretch}
body.site #cmp-tools button{padding:var(--s-2) var(--s-3);border:1px solid var(--accent-line);border-radius:0;background:transparent;color:var(--ink);font:400 var(--t-sm) var(--sans);cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
body.site #cmp-tools button:hover{background:var(--accent-dim);border-color:var(--accent)}
body.site #cmp-tools button:active{opacity:.6}
body.site #cmp-tools button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
body.site #cmp-tools button.pri{background:var(--accent);color:var(--accent-ink);font-weight:600;border-color:var(--accent)}
body.site #cmp-tools button.pri:hover{background:#EFB53A}
body.site #cmp-tools button[data-k=close]{margin-left:auto;border-color:var(--rule-soft);color:var(--ink-3)}
body.site #cmp-hint{color:var(--ink-3);font-size:var(--t-xs)}
body.site #st-desat-row,body.site #st-original-row{width:min(720px,calc(100vw - 32px));padding:var(--s-2) 0;color:var(--ink-3);font-size:var(--t-sm);border-top:1px solid var(--rule-soft)}
body.site #st-desat-row[hidden],body.site #st-original-row[hidden]{display:none}
body.site #st-desat-row label,body.site #st-original-row label{font-weight:500;color:var(--ink);white-space:nowrap}
body.site #st-desat-row input[type=range]{flex:1;min-width:120px;accent-color:var(--ink);margin:0;height:14px;-webkit-appearance:none;appearance:none;background:transparent}
body.site #st-desat-row input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--rule)}
body.site #st-desat-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:9px;height:9px;margin-top:-4px;background:var(--accent);border-radius:0;border:0}
body.site #st-desat-row output{min-width:3.2em;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
body.site #st-desat-row .st-desat-note{color:var(--ink-4);font-size:var(--t-xs);white-space:nowrap}
@media(max-width:600px){body.site #st-desat-row .st-desat-note{display:none}}
body.site #st-original-model{appearance:none;width:11px;height:11px;flex:none;margin:0;border:1px solid var(--accent-line);border-radius:0;background:transparent;cursor:pointer;position:relative}
body.site #st-original-model:checked{background:transparent;border-color:var(--accent)}
body.site #st-original-model:checked::after{content:"";position:absolute;inset:2px;background:var(--accent)}
body.site #st-original-model:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
@media(max-width:600px){body.site #st-original-row span{display:none}}

/* ── 내 이미지 목록: 종이 위 사진 격자, 카드 테두리 없음 ── */
body.site #st-gal{position:fixed;inset:0;z-index:140;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font:var(--t-sm)/1.5 var(--sans)}
body.site #st-gal.hidden{display:none}
body.site #st-gal-head{display:flex;align-items:baseline;gap:var(--s-3);padding:var(--s-6) var(--s-8) var(--s-3);border-bottom:1px solid var(--rule)}
body.site #st-gal-head b{font-size:var(--t-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase}
body.site #st-gal-sub{color:var(--ink-3);font-size:var(--t-xs)}
body.site #st-gal-close{margin-left:auto;padding:var(--s-2) var(--s-3);border:1px solid var(--accent-line);border-radius:0;background:transparent;color:var(--ink);font:inherit;cursor:pointer}
body.site #st-gal-close:hover{background:var(--accent-dim);border-color:var(--accent)}
body.site #st-gal-grid{flex:1;overflow:auto;align-content:start;display:grid;grid-auto-rows:max-content;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-8) var(--s-6);padding:var(--s-6) var(--s-8) var(--s-10)}
body.site .st-gal-card{display:block;height:auto;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}   /* <button> 을 flex 열로 두면 행 높이가 사진 전 높이(67px)에 굳어 제목 줄이 잘렸다(2026-09-15 실측) */
body.site .st-gal-card:hover img{opacity:.88}
body.site .st-gal-card:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
body.site .st-gal-card[aria-busy=true]{opacity:.5;cursor:progress}
body.site .st-gal-card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--bg-2);transition:opacity var(--dur) var(--ease-out)}
body.site .st-gal-meta{display:flex;flex-direction:column;gap:2px;padding:var(--s-2) 0 0;min-width:0;border-top:1px solid var(--rule-soft);margin-top:var(--s-2)}
body.site .st-gal-meta b{font-size:var(--t-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.site .st-gal-meta span{color:var(--ink-3);font-size:var(--t-xs)}
body.site .st-gal-msg{grid-column:1/-1;padding:var(--s-10) 0;text-align:left;color:var(--ink-3);font-size:var(--t-md);line-height:1.7}

/* ── 비교 화면 정리(2026-09-15 영빈님 «뭐가 너무 많다 · 현황까지 만들면 사진 변경이 뭔지 헷갈린다») ──
   사진 위 = 보기 전환 세그먼트(전후 결과만) + «편집·저장은 계획 기준». 사진 아래 = 핵심 편집 한 줄, «세부 설정» 접힘, 저장 줄. */
body.site #st-view-bar{display:flex;align-items:center;gap:var(--s-4);width:min(720px,calc(100vw - 32px));font-size:var(--t-xs);color:var(--ink-3)}
body.site #st-view-bar[hidden]{display:none}
body.site #st-view-bar b{color:var(--accent);font-weight:600}
body.site .st-seg{display:inline-flex;border:1px solid var(--accent-line)}
body.site .st-seg button{padding:var(--s-1) var(--s-3);border:0;border-radius:0;background:transparent;color:var(--ink-2);font:400 var(--t-sm) var(--sans);cursor:pointer;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}
body.site .st-seg button+button{border-left:1px solid var(--accent-line)}
body.site .st-seg button:hover{color:var(--ink)}
body.site .st-seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);font-weight:600}
body.site #st-edit-main{display:flex;align-items:center;gap:var(--s-6);flex-wrap:wrap;margin:0}
body.site #st-edit-main #st-original-row,body.site #st-edit-main #st-desat-row{display:flex;align-items:center;gap:var(--s-2);width:auto;padding:0;border:0;margin:0;font-size:var(--t-sm)}
body.site #st-edit-main #st-original-row[hidden],body.site #st-edit-main #st-desat-row[hidden]{display:none}
body.site #st-edit-main #st-desat-row input[type=range]{min-width:110px;width:130px;flex:none}
body.site #st-edit-main #st-desat-row label,body.site #st-edit-main #st-original-row label{font-weight:400;color:var(--ink-2)}
body.site #st-edit-main #st-original-row span,body.site #st-edit-main .st-desat-note{display:none}
body.site .st-edit-more{width:100%;margin-top:var(--s-1)}
body.site .st-edit-more summary{cursor:pointer;color:var(--ink-3);font-size:var(--t-xs);list-style:none;padding:var(--s-1) 0;display:flex;gap:var(--s-2);align-items:baseline}
body.site .st-edit-more summary::-webkit-details-marker{display:none}
body.site .st-edit-more summary::before{content:"+";color:var(--accent);font-weight:600}
body.site .st-edit-more[open] summary::before{content:"−"}
body.site .st-edit-more .st-edit-row{margin-top:var(--s-2)}
body.site .st-edit-k{color:var(--ink-3);font-size:var(--t-xs);margin-right:var(--s-1)}

/* ── 비교 화면 = 기본 화면과 같은 구조(2026-09-15 영빈님): 왼쪽 사진 크게, 오른쪽 세션(#cmp-rail, 레일과 같은 폭)에 보기·편집·저장 ── */
body.site #cmp{display:flex;flex-direction:row;align-items:stretch;justify-content:flex-start;gap:0;padding:0}
body.site #cmp-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;padding:var(--s-6)}
body.site #cmp-stage{margin-top:0}
body.site #cmp-rail{flex:none;width:300px;box-sizing:border-box;overflow-y:auto;padding:var(--s-6);border-left:1px solid var(--rule-soft);display:flex;flex-direction:column;gap:var(--s-3);background:var(--bg)}
body.site #cmp-rail::-webkit-scrollbar{width:6px}body.site #cmp-rail::-webkit-scrollbar-thumb{background:rgba(236,234,228,.16)}
body.site .cmp-h{font-size:var(--t-md);font-weight:600;color:var(--ink);letter-spacing:-.01em;margin:var(--s-4) 0 0;padding-top:var(--s-4);border-top:1px solid var(--rule)}
body.site #cmp-rail>.cmp-h:first-child,body.site #st-view-bar .cmp-h{margin-top:0;padding-top:0;border-top:0}
body.site #st-view-bar{flex-direction:column;align-items:stretch;gap:var(--s-2);width:auto;font-size:var(--t-xs)}
body.site #st-view-bar .st-seg{display:flex}
body.site #st-view-bar .st-seg button{flex:1;padding:var(--s-2) var(--s-2);text-align:center}
body.site #cmp-rail #st-editor{width:auto;border-top:0;padding-top:0}
body.site #cmp-rail #st-edit-main{flex-direction:column;align-items:stretch;gap:var(--s-2)}
body.site #cmp-rail #st-edit-main>label,body.site #cmp-rail #st-edit-main #st-original-row label,body.site #cmp-rail #st-edit-main #st-desat-row{display:flex;align-items:center;gap:var(--s-2);width:100%;padding:var(--s-1) 0}
body.site #cmp-rail #st-edit-main input[type=range]{flex:1 1 auto;width:auto;min-width:0}
body.site #cmp-rail #st-edit-main output{min-width:3.4em;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
body.site #cmp-rail #st-edit-main #st-desat-row label{flex:none;white-space:nowrap}
body.site #cmp-rail .st-edit-more .st-edit-row{gap:var(--s-2) var(--s-3)}
body.site #cmp-rail .st-edit-more label{flex:1 1 100%;display:flex;align-items:center;gap:var(--s-2)}
body.site #cmp-rail .st-edit-more label input[type=range]{flex:1;width:auto;min-width:0}
body.site #cmp-rail #cmp-tools{width:auto;flex-direction:column;align-items:stretch;gap:var(--s-2);padding:0}
body.site #cmp-rail #cmp-tools button{width:100%;text-align:center}
body.site #cmp-rail #cmp-tools button[data-k=close]{margin-left:0;margin-top:var(--s-2)}
body.site #cmp-rail #cmp-hint{width:auto;max-width:none;font-size:var(--t-xs);color:var(--ink-3)}
body.site #cmp-rail #cmp-hint{margin-top:auto;padding-top:var(--s-4)}
@media(max-width:900px){body.site #cmp{flex-direction:column}body.site #cmp-rail{width:auto;border-left:0;border-top:1px solid var(--rule-soft)}}

/* 편집 묶음: 기능 한 줄 + 바로 아래 세부 옵션(접기 없음, 2026-09-15 영빈님). 꺼져 있으면 세부는 흐리게. */
body.site #cmp-rail #st-edit-main{display:flex;flex-direction:column;gap:var(--s-3)}
body.site #cmp-rail #st-edit-model{display:flex;flex-direction:column;gap:var(--s-3)}
body.site #cmp-rail #st-edit-model[hidden],body.site #cmp-rail #st-edit-depth[hidden]{display:none}
body.site #cmp-rail .st-edit-group{display:flex;flex-direction:column;gap:var(--s-2);padding-bottom:var(--s-3);border-bottom:1px solid var(--rule-soft)}
body.site #cmp-rail .st-edit-group>label{display:flex;align-items:center;gap:var(--s-2);width:100%;color:var(--ink);font-size:var(--t-sm)}
body.site #cmp-rail .st-edit-group>label input[type=range]{flex:1;width:auto;min-width:0}
body.site #cmp-rail .st-edit-sub{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding-left:19px;transition:opacity var(--dur) var(--ease-out)}
body.site #cmp-rail .st-edit-group:has(>label input[type=checkbox]:not(:checked)) .st-edit-sub{opacity:.45}
body.site #cmp-rail .st-edit-sub label{display:flex;align-items:center;gap:var(--s-2);flex:1 1 100%;font-size:var(--t-xs);color:var(--ink-3);white-space:nowrap}   /* «선명한 범위» 가 두 줄로 꺾이지 않게 */
body.site #cmp-rail .st-edit-sub label input[type=range]{flex:1;width:auto;min-width:0}
body.site #cmp-rail .st-edit-sub select{font-size:var(--t-xs)}
body.site #cmp-rail #st-edit-status{font-size:var(--t-xs);color:var(--ink-4)}
body.site #cmp-rail #st-edit-main #st-original-row,body.site #cmp-rail #st-edit-main #st-desat-row{padding:0 0 var(--s-3);border-bottom:1px solid var(--rule-soft)}

/* 나란히·반반 저장 제거(2026-09-15 영빈님) — 저장은 계획 / 현황(전후) / 이미지 저장(일반) / 원본 3D 저장(일반)만 */
body.site #cmp-tools button[data-k=side],body.site #cmp-tools button[data-k=split]{display:none!important}
body.site #cmp-rail #st-depth-note:empty{display:none}

/* Login preview: isolated from viewer/editor controls. Images load on first open. */
body.site #st-auth{padding:0;border:1px solid var(--rule);border-radius:4px;background:var(--bg);color:var(--ink);width:min(1120px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);overflow:auto;font-family:var(--sans)}
#st-auth::backdrop{background:rgba(0,0,0,.7)}
#st-auth .st-auth-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px}
#st-auth #st-demo-slot{min-width:0;display:block}
:is(#st-auth,#st-demo-dlg) .st-auth-samples{padding:24px;min-width:0}
:is(#st-auth,#st-demo-dlg) .st-auth-sample-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;font-size:13px}
:is(#st-auth,#st-demo-dlg) button{font:inherit;font-size:13px;color:var(--ink);border:1px solid var(--accent-line);border-radius:3px;background:transparent;padding:9px 14px;cursor:pointer}
:is(#st-auth,#st-demo-dlg) button:hover{background:var(--accent-dim)}
#st-auth #st-auth-login{background:var(--accent);color:var(--accent-ink)}
:is(#st-auth,#st-demo-dlg) button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
:is(#st-auth,#st-demo-dlg) button:disabled{opacity:.5;cursor:default}
:is(#st-auth,#st-demo-dlg) :focus-visible{outline:2px solid var(--accent);outline-offset:4px}
:is(#st-auth,#st-demo-dlg) .st-auth-picture{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--bg-2)}
:is(#st-auth,#st-demo-dlg) .st-auth-picture canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
:is(#st-auth,#st-demo-dlg) #st-demo-left{clip-path:inset(0 50% 0 0)}
:is(#st-auth,#st-demo-dlg) #st-demo-loading{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink-2);background:var(--bg-2)}
:is(#st-auth,#st-demo-dlg) #st-demo-picture.st-focus-pick{cursor:crosshair}
/* 예시 선택(장소·시간대)·비교 대상·편집 체험(2026-09-16). 편집 탭(#st-editor)과 같은 행 구성 */
:is(#st-auth,#st-demo-dlg) .st-demo-pick{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
:is(#st-auth,#st-demo-dlg) .st-demo-pick [role=group]{display:flex;gap:4px;align-items:center}
:is(#st-auth,#st-demo-dlg) .st-demo-place{font-size:12px;color:var(--ink-2);padding:0 4px}
:is(#st-auth,#st-demo-dlg) .st-demo-row #st-demo-model{display:contents}
:is(#st-auth,#st-demo-dlg) .st-demo-modes{display:flex;gap:4px;margin:0 0 10px}
:is(#st-auth,#st-demo-dlg) .st-demo-modes button{font-size:12px;padding:6px 12px}
:is(#st-auth,#st-demo-dlg) .st-demo-edit{margin-top:14px;padding-top:10px;border-top:1px solid var(--rule-soft);font-size:12px;color:var(--ink-2)}
:is(#st-auth,#st-demo-dlg) .st-demo-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0}
:is(#st-auth,#st-demo-dlg) .st-demo-row label{display:flex;align-items:center;gap:6px;white-space:nowrap;color:var(--ink-2)}
:is(#st-auth,#st-demo-dlg) .st-demo-row input[type=checkbox]{accent-color:var(--accent);margin:0}
:is(#st-auth,#st-demo-dlg) .st-demo-row input[type=range]{width:110px;height:14px;margin:0;-webkit-appearance:none;appearance:none;background:transparent;accent-color:var(--ink)}
:is(#st-auth,#st-demo-dlg) .st-demo-row input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--rule)}
:is(#st-auth,#st-demo-dlg) .st-demo-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:9px;height:9px;margin-top:-4px;background:var(--accent);border-radius:0;border:0}
:is(#st-auth,#st-demo-dlg) .st-demo-row input[type=color]{width:16px;height:16px;padding:0;border:1px solid var(--rule);border-radius:0;background:transparent;cursor:pointer}
:is(#st-auth,#st-demo-dlg) .st-demo-row select{background:transparent;border:0;border-bottom:1px solid transparent;border-radius:0;padding:2px 0;color:var(--ink);font:inherit;font-size:12px;cursor:pointer}
:is(#st-auth,#st-demo-dlg) .st-demo-row select:hover{border-bottom-color:var(--ink)}:is(#st-auth,#st-demo-dlg) .st-demo-row option{background:var(--bg)}
:is(#st-auth,#st-demo-dlg) .st-demo-row output{min-width:38px;color:var(--ink-3);font-variant-numeric:tabular-nums}
:is(#st-auth,#st-demo-dlg) .st-demo-row button{font-size:12px;padding:5px 10px}:is(#st-auth,#st-demo-dlg) .st-demo-row button.on{background:var(--accent);color:var(--accent-ink)}
:is(#st-auth,#st-demo-dlg) .st-demo-hint,:is(#st-auth,#st-demo-dlg) #st-demo-note{font-size:11px;line-height:1.6;color:var(--ink-3);margin:8px 0 0}:is(#st-auth,#st-demo-dlg) #st-demo-note{color:#f0a3a3}
:is(#st-auth,#st-demo-dlg) .st-auth-divider{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--accent);pointer-events:none}
:is(#st-auth,#st-demo-dlg) .st-auth-picture span{position:absolute;top:12px;padding:5px 8px;background:rgba(0,0,0,.75);color:#fff;font-size:12px;pointer-events:none}
:is(#st-auth,#st-demo-dlg) .st-auth-before-label{left:12px}:is(#st-auth,#st-demo-dlg) .st-auth-plan-label{right:12px}
/* 예시 모델의 설계 출처(2026-09-16 영빈님 "레퍼런스 이미지 우하단에 referenced by iSM ARCHITECTS"). 사진 위 라벨과 같은 문법, 우하단·작게. */
:is(#st-auth,#st-demo-dlg) .st-auth-picture .st-auth-credit{top:auto;bottom:10px;right:12px;padding:4px 7px;font-size:10px;letter-spacing:.06em;background:rgba(0,0,0,.6);color:rgba(255,255,255,.85);z-index:1}
:is(#st-auth,#st-demo-dlg) .st-auth-slider-label{display:block;text-align:center;margin:16px 0 4px;font-size:12px;color:var(--ink-2)}
:is(#st-auth,#st-demo-dlg) #st-auth-range{width:100%;height:28px;margin:0;accent-color:var(--accent);cursor:ew-resize}
:is(#st-auth,#st-demo-dlg) .st-auth-caption{font-size:11px;line-height:1.6;color:var(--ink-3);margin:12px 0 0}
#st-auth .st-auth-action{position:relative;display:flex;align-items:center;padding:72px 24px 32px;border-left:1px solid var(--rule-soft)}
#st-auth #st-auth-close{position:absolute;right:24px;top:24px}
#st-auth .st-auth-brand{font-size:11px;letter-spacing:.14em;color:var(--ink-3);margin:0 0 24px}
#st-auth h2{font-size:24px;line-height:1.4;letter-spacing:-.04em;margin:0;font-weight:600;word-break:keep-all}
#st-auth .st-auth-copy{font-size:13px;line-height:1.8;color:var(--ink-2);margin:16px 0 24px}
#st-auth #st-auth-login{width:100%;min-height:44px;font-weight:600}
#st-auth #st-auth-status{font-size:12px;line-height:1.7;color:var(--ink-2);min-height:62px;margin:12px 0}
#st-auth a{font-size:11px;color:var(--ink-3);text-underline-offset:3px}
:is(#st-auth,#st-demo-dlg) [hidden]{display:none!important}
/* 이메일 코드 · 비밀번호 로그인(2026-09-16). 구글 버튼 아래 '또는 이메일로' 블록 */
#st-auth #st-auth-email{margin:4px 0 16px}
#st-auth .st-auth-or{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:11px;color:var(--ink-3)}
#st-auth .st-auth-or::before,#st-auth .st-auth-or::after{content:"";flex:1;height:1px;background:var(--rule-soft)}
#st-auth #st-auth-email label{display:block;margin:10px 0 4px;font-size:11px;color:var(--ink-3)}
#st-auth #st-auth-email input{width:100%;height:38px;padding:0 10px;border:1px solid var(--rule);border-radius:3px;background:var(--bg-2);color:var(--ink);font:inherit;font-size:13px;outline:none}
#st-auth #st-auth-email input:focus{border-color:var(--accent)}
#st-auth #st-auth-email input::placeholder{color:var(--ink-4)}
#st-auth #st-auth-email>button,#st-auth #st-auth-email div>button{width:100%;margin-top:10px;min-height:38px}
#st-auth .st-auth-row{display:flex;gap:8px}#st-auth .st-auth-row button{flex:1;margin-top:10px}
#st-auth #st-auth-email-status{font-size:12px;line-height:1.6;color:var(--ink-2);min-height:20px;margin:10px 0 4px}
#st-auth #st-auth-email-status.err{color:#f0a3a3}
#st-auth .st-auth-email-sub{font-size:12px;line-height:1.6;color:var(--ink-2);margin:0 0 4px}
#st-auth .st-auth-links{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:11px;color:var(--ink-4)}
#st-auth button.link{width:auto;margin:0;padding:0;min-height:0;border:0;background:transparent;color:var(--ink-3);font-size:11px;text-decoration:underline;text-underline-offset:3px}
#st-auth button.link:hover{background:transparent;color:var(--ink)}
@media(max-width:760px){body.site #st-auth{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}#st-auth .st-auth-layout{grid-template-columns:1fr}#st-auth .st-auth-samples{padding:64px 16px 16px}#st-auth .st-auth-action{position:static;padding:24px 16px;border-left:0;border-top:1px solid var(--rule-soft)}#st-auth #st-auth-close{top:12px;right:16px}#st-auth .st-auth-brand{margin-bottom:12px}#st-auth h2{font-size:21px}}

/* Account actions remain distinct from generation and preserve the scene. */
body.site .st-account{display:flex;align-items:center;gap:var(--s-2);margin-top:16px;min-width:0}
body.site #st-account-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);font-size:var(--t-sm)}
body.site #ae-panel #st-account-button{flex:0 0 auto;height:32px;min-height:32px;padding:0 12px;align-items:center;justify-content:center;letter-spacing:0;font-size:var(--t-sm);line-height:1}   /* 옆 «일반 사용자로 보기»와 높이·글자 통일(2026-09-30) */
/* 레일에서 색이 필요한 건 하나뿐 — 로그인(2026-09-16 영빈님 "조망점 지정에만 컬러가 들어갈 필요 없다, 차라리 로그인에").
   .st-cta 는 로그아웃 상태에서만 붙는다(site_auth.js renderAccount) — 로그아웃 버튼까지 채우면 강조가 의미를 잃는다. */
body.site #ae-panel #st-account-button.st-cta:not(:disabled){background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
body.site #ae-panel #st-account-button.st-cta:not(:disabled):hover{background:#EFB53A;color:var(--accent-ink)}
/* 체험 크레딧 잔여(2026-09-16 로드맵 ②): 계정 줄 아래 한 줄. 소진되면 회색으로 — 남았을 때만 앰버로 눈에 띈다. */
body.site #ae-panel #st-credit-note{margin:var(--s-2) 0 0;font-size:var(--t-xs);line-height:1.6;color:var(--accent)}
body.site #ae-panel #st-credit-note b{font-weight:600;font-size:var(--t-md)}
body.site #ae-panel #st-credit-note span{color:var(--ink-3)}
body.site #ae-panel #st-credit-note.out{color:var(--ink-2)}
body.site #ae-panel #st-credit-note[hidden]{display:none}

/* ── 화면 좌상단 상자 두 개(2026-09-16 영빈님 "남은 크레딧은 왼쪽 상단에 pill … 그 옆에 예시보기 … 네모박스로") ──
   레일이 오른쪽이라 3D 화면의 좌상단이 비어 있다. 이 사이트는 둥근 모서리를 안 쓰므로 알약이 아니라 각진 상자로. */
body.site #st-hud{position:fixed;top:var(--s-4);left:var(--s-4);z-index:5;display:flex;gap:var(--s-2);font:var(--t-sm)/1 var(--sans)}
body.ds.site.st-rail-left #st-hud{left:calc(var(--st-rail) + var(--s-4))}   /* 레일을 왼쪽으로 돌린 배치에서는 레일 옆으로 */
body.site #st-hud > *{display:flex;align-items:center;height:32px;padding:0 var(--s-3);border:1px solid var(--accent-line);border-radius:0;
  background:rgba(31,31,29,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);white-space:nowrap;letter-spacing:0}
body.site #st-hud #st-hud-credit{color:var(--accent);font-weight:600;gap:var(--s-1)}
body.site #st-hud #st-hud-credit small{color:var(--ink-2);font-size:var(--t-xs);font-weight:400}
body.site #st-hud #st-hud-credit.out{color:var(--ink-2);border-color:var(--rule)}
body.site #st-hud button{font:inherit;cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
body.site #st-hud button:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
body.site #st-hud button:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
body.site #st-hud [hidden]{display:none}
body.st-shaded #st-hud{display:none}          /* 제작 중에는 화면을 덮으므로 같이 숨는다 */

/* 좌하단 의견 버튼(2026-09-16 영빈님 "좌하단에 피드백 아이콘, 자유 피드백"). HUD 와 같은 각진 상자 문법. */
/* bottom 58px: 좌하단엔 이미 브이월드 출처 이미지(y 950~979)와 개인정보처리방침 링크(967~986, z-index 10)가 깔려 있다.
   16px 로 두면 그 띠와 정확히 겹친다(2026-09-16 영빈님 제보) — 법적 표기 위를 덮지 않도록 그 위에 얹는다. */
body.site #st-fb-open{position:fixed;left:var(--s-4);bottom:calc(var(--s-4) + 42px);z-index:5;display:flex;align-items:center;gap:var(--s-2);
  height:32px;padding:0 var(--s-3);border:1px solid var(--accent-line);border-radius:0;background:rgba(31,31,29,.82);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink-2);font:var(--t-sm)/1 var(--sans);cursor:pointer;
  transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
body.site #st-fb-open:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
body.site #st-fb-open:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
body.ds.site.st-rail-left #st-fb-open{left:calc(var(--st-rail) + var(--s-4))}
body.st-shaded #st-fb-open{display:none}
/* 개인정보처리방침은 기본 엔진이 좌하단 14/14 에 두는데, 거기엔 브이월드 출처 이미지가 깔린다 → 글자가 로고 위에 겹쳤다.
   (제 버튼 이전부터 있던 문제.) 「의견」 버튼 오른쪽으로 옮겨 한 줄로 세우고, 사이트 문법(각진·무배경)으로 맞춘다.
   body.site 범위라 TinySeoul 쪽 배치는 건드리지 않는다. */
/* 배경을 없애면 지도 밝기에 따라 글자가 사라진다(법적 표기라 항상 읽혀야 함) → HUD 와 같은 반투명 판을 깐다. */
body.site #privacy{left:calc(var(--s-4) + 82px);bottom:calc(var(--s-4) + 42px);z-index:5;display:flex;align-items:center;
  height:36px;padding:0 var(--s-3);border-radius:0;background:rgba(31,31,29,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  color:var(--ink-2);font:var(--t-xs)/1 var(--sans);text-decoration:none}
body.site #privacy:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
body.st-shaded #privacy{display:none}
/* 모바일 차단 화면은 기본 엔진이 body 를 통째 교체하므로 body.site 가 사라진다 → id 로만 건다.
   법적 링크를 여기에도 하나 둔다(뷰어에 못 들어가는 사람도 방침은 볼 수 있어야 한다). */
#ae-block .ae-block-legal{margin:18px 0 0}
#ae-block .ae-block-legal a{color:#8B8981;font-size:11px;text-decoration:underline;text-underline-offset:3px}
#ae-block .ae-block-legal a:hover{color:#ECEAE4}

/* 의견 보내기 창 — 소진 설문과 같은 문법 */
body.site #st-fb,#st-fb{padding:0;border:1px solid var(--rule);border-radius:0;background:var(--bg);color:var(--ink);width:min(440px,calc(100vw - 48px));max-width:none;font-family:var(--sans)}
#st-fb::backdrop{background:rgba(0,0,0,.7)}
#st-fb form{margin:0;padding:32px 28px 24px}
#st-fb .st-auth-brand{font-size:11px;letter-spacing:.14em;color:var(--ink-3);margin:0 0 20px}
#st-fb h2{font-size:24px;line-height:1.4;letter-spacing:-.04em;margin:0;font-weight:600;word-break:keep-all}
#st-fb p.c{font-size:13px;line-height:1.8;color:var(--ink-2);margin:14px 0 16px}
#st-fb textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--rule);border-radius:3px;background:var(--bg-2);color:var(--ink);font:inherit;font-size:13px;line-height:1.5;resize:vertical;outline:none}
#st-fb textarea:focus{border-color:var(--accent)}
#st-fb button[type=submit]{width:100%;min-height:44px;margin-top:14px;font:inherit;font-size:13px;font-weight:600;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:3px;cursor:pointer}
#st-fb button[type=submit]:hover:not(:disabled){background:#EFB53A}
#st-fb button[type=submit]:disabled{opacity:.6;cursor:default}
#st-fb #st-fb-status{font-size:12px;line-height:1.6;color:var(--ink-2);min-height:20px;margin:10px 0 0}
#st-fb button.link{display:block;margin:6px auto 0;background:transparent;border:0;color:var(--ink-3);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px}
#st-fb :focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* 「예시 보기」 창 = 로그인 모달의 왼쪽 판을 그대로 가져온다(ST_DEMO.adopt). 로그인 칸은 없다. */
/* 폭은 사진 높이를 정한다(사진이 3:2) — 860px 로 두면 사진만 573px 라 편집 줄이 화면 밖으로 밀린다.
   창 높이에 맞춰 폭을 잡되 700px 을 넘기지 않는다(2026-09-16 실측). */
body.site #st-demo-dlg,#st-demo-dlg{padding:0;border:1px solid var(--rule);border-radius:0;background:var(--bg);color:var(--ink);
  width:min(700px,calc(100vw - 48px),calc((100dvh - 300px) * 1.5));max-width:none;max-height:calc(100dvh - 48px);overflow:auto;font-family:var(--sans)}
#st-demo-dlg::backdrop{background:rgba(0,0,0,.7)}
#st-demo-dlg .st-demo-dlg-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-4) var(--s-6) 0}
#st-demo-dlg .st-demo-dlg-head p{margin:0;font-size:var(--t-xs);color:var(--ink-3)}
#st-demo-dlg button.st-demo-dlg-close{font:inherit;font-size:var(--t-sm);color:var(--ink);border:1px solid var(--accent-line);border-radius:0;background:transparent;padding:8px 14px;cursor:pointer}
#st-demo-dlg button.st-demo-dlg-close:hover{background:var(--accent-dim)}
#st-demo-dlg #st-demo-host{display:block}

/* 소진 설문(2026-09-16): 로그인 모달의 오른쪽 칸과 같은 문법(브랜드 · 큰 제목 · 본문 · 앰버 버튼) */
body.site #st-survey,#st-survey{padding:0;border:1px solid var(--rule);border-radius:0;background:var(--bg);color:var(--ink);width:min(440px,calc(100vw - 48px));max-width:none;font-family:var(--sans)}
#st-survey::backdrop{background:rgba(0,0,0,.7)}
#st-survey form{margin:0;padding:32px 28px 24px}
#st-survey .st-auth-brand{font-size:11px;letter-spacing:.14em;color:var(--ink-3);margin:0 0 20px}
#st-survey h2{font-size:24px;line-height:1.4;letter-spacing:-.04em;margin:0;font-weight:600;word-break:keep-all}
#st-survey .st-survey-copy{font-size:13px;line-height:1.8;color:var(--ink-2);margin:14px 0 20px}
#st-survey fieldset{border:0;padding:0;margin:0 0 16px}
#st-survey legend{font-size:13px;color:var(--ink);margin:0 0 8px;padding:0}
#st-survey fieldset label{display:inline-flex;align-items:center;gap:6px;margin-right:18px;font-size:13px;color:var(--ink);cursor:pointer}
#st-survey input[type=radio]{accent-color:var(--accent);margin:0}
#st-survey .st-survey-c{display:block;font-size:11px;color:var(--ink-3);margin:0 0 6px}
#st-survey .st-survey-c span{color:var(--ink-4)}
#st-survey textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--rule);border-radius:3px;background:var(--bg-2);color:var(--ink);font:inherit;font-size:13px;line-height:1.5;resize:vertical;outline:none}
#st-survey textarea:focus{border-color:var(--accent)}
#st-survey #st-survey-send{width:100%;min-height:44px;margin-top:14px;font:inherit;font-size:13px;font-weight:600;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:3px;cursor:pointer}
#st-survey #st-survey-send:hover:not(:disabled){background:#EFB53A}
#st-survey #st-survey-send:disabled{opacity:.6;cursor:default}
#st-survey #st-survey-status{font-size:12px;line-height:1.6;color:var(--ink-2);min-height:20px;margin:10px 0 0}
#st-survey button.link{display:block;margin:6px auto 0;background:transparent;border:0;color:var(--ink-3);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px}
#st-survey :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#st-demo-dlg #st-demo-host .st-auth-samples{padding:var(--s-4) var(--s-6) var(--s-6)}
body.site #st-account-button::after{content:none}
/* 관리자 전용 «일반 사용자로 보기»(2026-09-16): 보기 중엔 호박색 띠로 상태를 계속 알린다 */
body.site #ae-panel #st-account-viewas{flex:0 0 auto;height:32px;min-height:32px;padding:0 12px;align-items:center;justify-content:center;letter-spacing:0;font-size:var(--t-sm);line-height:1}
body.site #st-account-viewas::after{content:none}
body.site #st-account-viewas[hidden]{display:none}
body.site #st-viewas-badge{margin:8px 0 0;padding:6px 8px;border:1px solid var(--accent-line);background:var(--accent-dim);color:var(--accent);font-size:var(--t-xs);line-height:1.5}
body.site #st-viewas-badge[hidden]{display:none}
body.site #st-account-message{margin:8px 0 0;color:var(--ink-2);font-size:var(--t-xs);line-height:1.5}
body.site #st-account-message[hidden]{display:none}

/* 가이드 링크(2026-09-16): #st-hud 의 자식 공통 스타일을 그대로 받되 링크 꾸밈만 제거 */
body.site #st-hud a#st-hud-guide{color:inherit;text-decoration:none;cursor:pointer}

body.site #ae-panel #st-ground-clean-row .ae-s{border:0;padding:0;align-items:center;gap:var(--s-2);color:var(--ink);font-size:var(--t-md)}
body.site #ae-panel #st-ground-clean-row:has(input:disabled) .ae-s{color:var(--ink-4)}
body.site #st-ground-clean-hint{margin-left:19px}
/* 대안 편집 전환 줄(2026-09-29): 결과 편집창(#cmp, z 150) 위에 고정 */
#st-altbar{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:152;display:flex;align-items:center;gap:6px;padding:6px 10px;background:rgba(12,12,14,.92);border:1px solid var(--rule,#333);color:var(--ink,#eee);font:13px var(--sans,inherit)}
#st-altbar[hidden]{display:none!important}
#st-altbar b{font-weight:600;margin-right:4px}
#st-altbar button{background:transparent;color:inherit;border:1px solid var(--rule,#444);border-radius:0;padding:3px 10px;font:inherit;cursor:pointer}
#st-altbar button[aria-pressed="true"]{border-color:var(--accent,#e8b84b);color:var(--accent,#e8b84b)}
#st-altbar .st-altbar-all{margin-left:8px}
#st-altbar span{color:var(--ink-3,#999);font-size:12px;margin-left:6px}
body.site #st-alt-again[hidden]{display:none!important}
body.site #ae-panel .ae-s .st-num{margin-left:auto;width:5.5em;padding:1px 4px;border:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);font:500 var(--t-md)/1.2 inherit;font-variant-numeric:tabular-nums;text-align:right}   /* 지상 높이 직접 입력(2026-09-29) */
body.site #ae-panel .ae-s .st-num:focus-visible{outline:1px solid var(--accent);outline-offset:1px}
body.site #ae-panel .st-camalt{margin:0 0 var(--s-2)}
body.site #ae-panel .st-camalt b{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
body.site #ae-panel .st-qbar{display:flex;align-items:center;gap:var(--s-2);margin:14px 0 0;font-size:var(--t-xs);color:var(--ink-3)}   /* 화면 품질 — 작업 탭 위 한 줄(2026-09-29) */
body.site #ae-panel .st-qbar label{flex:none;color:var(--ink-3)}
body.site #ae-panel .st-qbar .st-qnote{flex:1;color:var(--ink-3);font-variant-numeric:tabular-nums}
body.site #ae-panel .st-qbar select{flex:none;width:auto;font-size:var(--t-sm);text-align:right;text-align-last:right}
