/* 레이아웃: 전체 화면 3D 캔버스 위에 모드 탭·설계 패널·타임라인 바를 얹은 단일 화면 도구. 어두운 우주 배경 단일 테마 */
:root{color-scheme:dark;--bg:#05070d;--pn:rgba(12,17,28,.92);--bd:#26324a;--tx:#e6ecf8;--mu:#8fa0bf;--ac:#ffb84d;--ac2:#4de3ff;--ok:#5ee38a;--bad:#ff6b6b;--ink2:#c9d4ea;--field:#0b1220;--row:#1a2438}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--tx);font:14px/1.45 -apple-system,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;overflow:hidden}
canvas#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}
#top{position:fixed;left:0;right:0;top:0;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;display:flex;flex-direction:column;gap:8px;pointer-events:none}
#top>*{pointer-events:auto}
h1{font-size:15px;margin:0;font-weight:700;letter-spacing:-.2px;padding-right:84px}
h1 small{color:var(--mu);font-weight:400;margin-left:6px;font-size:11px}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab,.btn{background:var(--pn);color:var(--tx);border:1px solid var(--bd);border-radius:10px;padding:7px 11px;font:inherit;font-size:13px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tab:focus-visible,.btn:focus-visible{outline:2px solid var(--ac2);outline-offset:2px}
.tab.on{border-color:var(--ac);color:var(--ac)}
.btn.on{border-color:var(--ac2);color:var(--ac2)}
#info{max-width:560px;background:var(--pn);border:1px solid var(--bd);border-radius:10px;padding:8px 11px;font-size:12.5px;color:var(--ink2)}
#info b{color:var(--ac)}
#gear{position:fixed;right:16px;top:calc(10px + env(safe-area-inset-top,0px));z-index:5}
#panel{position:fixed;right:0;top:calc(52px + env(safe-area-inset-top,0px));bottom:calc(70px + env(safe-area-inset-bottom,0px));width:330px;background:var(--pn);border-left:1px solid var(--bd);border-radius:12px 0 0 12px;padding:12px 16px;overflow:auto;transition:transform .25s}
#panel.hide{transform:translateX(105%)}
#panel h2{font-size:12px;color:var(--mu);font-weight:600;margin:14px 0 6px;letter-spacing:.3px}
#panel h2:first-child{margin-top:0}
.row{margin:8px 0}
.row label{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink2)}
.row label span:last-child{color:var(--ac);font-variant-numeric:tabular-nums}
input[type=range]{width:100%;accent-color:var(--ac)}
select{width:100%;background:var(--field);color:var(--tx);border:1px solid var(--bd);border-radius:8px;padding:7px;font:inherit}
.chk{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px}
table{width:100%;border-collapse:collapse;font-size:12.5px}
td{padding:3px 0;border-bottom:1px solid var(--row);vertical-align:top}
td:last-child{text-align:right;color:var(--ac);font-variant-numeric:tabular-nums}
td.mu{color:var(--mu)}
.ok{color:var(--ok)!important}.bad{color:var(--bad)!important}
.note{font-size:11px;color:var(--mu);margin-top:10px}
#bar{position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;align-items:center;background:var(--pn);border:1px solid var(--bd);border-radius:12px;padding:9px 12px}
#bar input{flex:1;min-width:0}
#bar .lab{font-size:12px;color:var(--mu);min-width:92px;text-align:right;font-variant-numeric:tabular-nums}
#err{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:var(--bg);padding:24px;text-align:center;z-index:20}
@media (max-width:760px){
 .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}   /* 탭은 한 줄, 옆으로 밀어 보기 */
 .tabs::-webkit-scrollbar{display:none}
 .tab,.btn{flex:0 0 auto}
 #info{max-height:4.8em;overflow:auto}
 .navs .navbtn{padding:4px 8px;font-size:11.5px}
 #panel{top:auto;bottom:calc(66px + env(safe-area-inset-bottom,0px));left:8px;right:8px;width:auto;max-height:23vh;border:1px solid var(--bd);border-radius:12px;padding:8px 12px;overscroll-behavior:contain}   /* 설계창: 기본으로 아래에, 작게, 안에서 스크롤 */
 #panel.hide{transform:translateY(120%)}
 #info{max-width:none;font-size:12px}
 h1 small{display:none}
 #gear{top:calc(8px + env(safe-area-inset-top,0px))}
 #bar .lab{min-width:76px}
}
@media (min-width:761px){#top{padding-right:366px}}
@media (prefers-reduced-motion:reduce){#panel{transition:none}}
/* 다른 페이지로 가는 버튼 (태양계·위성 페이지와 같은 색 규칙: 주황=위성, 보라=태양계) */
.navs{display:flex;gap:6px;flex-wrap:wrap}
.navbtn{display:inline-block;font-weight:700;font-size:12.5px;text-decoration:none;padding:6px 10px;border-radius:8px;color:#fff}
.navbtn.to-solar{background:#6741d9;border:1px solid #9775fa}.navbtn.to-solar:hover{background:#7048e8}
.navbtn.to-sat{background:#c2410c;border:1px solid #ff922b}.navbtn.to-sat:hover{background:#d9480f}


/* 고급 계산 상자(접기), 쉬운 설명, 판정 문장 */
details.adv{border:1px solid var(--bd);border-radius:8px;margin:8px 0;background:var(--field)}
details.adv>summary{cursor:pointer;padding:11px 10px;font-weight:600;font-size:13px;color:var(--tx);list-style-position:inside}
details.adv[open]>summary{border-bottom:1px solid var(--bd)}
details.adv>:not(summary){margin-left:10px;margin-right:10px}
details.adv>:last-child{margin-bottom:10px}
.easy{font-size:11.5px;color:var(--ink2);line-height:1.55;margin:6px 0}
.verdict{font-size:12.5px;padding:7px 9px;border-radius:6px;margin:8px 0;line-height:1.45}
.verdict.ok{background:rgba(94,227,138,.12)}.verdict.bad{background:rgba(255,107,107,.12)}
.note a{display:inline-block;padding:5px 0}
/* 탭 줄: 망원경 종류와 보기 전환 사이 구분선 */
.tabs .sep{flex:0 0 1px;align-self:stretch;background:var(--bd);margin:2px 4px}
/* 차양막 비교 카드 */
.shcard{border:1px solid var(--bd);border-radius:8px;padding:8px 10px;margin:6px 0;font-size:12px;background:rgba(0,0,0,.15)}
.shcard.on{border-color:var(--ac)}
.shcard>b{color:var(--tx)}
.shcard dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:6px 0 0}
.shcard dt{color:var(--mu);white-space:nowrap}.shcard dd{margin:0;color:var(--ink2)}
/* 형태 묶음 이름 (① ② ③ 기타) */
.tabs .grp{flex:0 0 auto;align-self:center;font-size:11px;color:var(--mu);margin:0 0 0 6px;white-space:nowrap}
.tabs .grp:first-child{margin-left:0}
/* 거울 맞추기 */
.seg3{display:flex;gap:4px;margin:6px 0}
.seg3 button,.steps button{flex:1;background:var(--pn);color:var(--tx);border:1px solid var(--bd);border-radius:8px;padding:7px 4px;font:inherit;font-size:12px;cursor:pointer}
.seg3 button.on,.steps button.on{border-color:var(--ac);color:var(--ac)}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:6px 0}
.steps button{padding:6px 2px;font-size:11px;line-height:1.25}
.row2{display:flex;gap:6px;margin:6px 0;flex-wrap:wrap}
.row2 .btn{flex:1;padding:7px 6px;font-size:12px}
#alnSec .mu{color:var(--mu)}
@media (max-width:760px){
 #alnC{max-width:150px!important}   /* 폰: 작은 설계창 안에서 별 그림과 단계 버튼이 함께 보이게 */
 .steps{grid-template-columns:repeat(5,1fr)}
 .steps button{font-size:10.5px;padding:5px 1px}
 .tabs .grp{font-size:10.5px}
}
.tabs .grpbox{display:flex;gap:6px;align-items:center;flex:0 0 auto;padding:2px 6px 2px 4px;border:1px dashed var(--bd);border-radius:12px}
#alnSec .note a{color:var(--ac2);display:inline;padding:0}
/* 설계창 묶음: 눌러서 접고 펼침 */
details.sec{border-top:1px solid var(--bd);padding:2px 0 6px}
details.sec:first-child{border-top:0}
details.sec>summary{list-style:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--tx);padding:10px 2px;display:flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent}
details.sec>summary::-webkit-details-marker{display:none}
details.sec>summary::after{content:'▸';margin-left:auto;color:var(--mu);transition:transform .15s}
details.sec[open]>summary::after{transform:rotate(90deg)}
details.more{margin:4px 0}
details.more>summary{cursor:pointer;font-size:11.5px;color:var(--ac2);padding:4px 0}
/* 폰: 거울 맞추기 별 그림을 띄우는 작은 창 */
#alnFloat{position:fixed;right:8px;z-index:6;width:132px;background:var(--pn);border:1px solid var(--bd);border-radius:10px;padding:4px 4px 5px;box-shadow:0 4px 16px rgba(0,0,0,.5)}
#alnFloat .ft{font-size:10.5px;color:var(--mu);text-align:center;margin-bottom:2px}
#alnFloat canvas{width:100%!important;max-width:none!important;margin:0 0 3px!important}
#alnFloatTxt{font-size:11px;text-align:center;color:var(--ac)}
/* 눌림 표시: 누르는 순간 색 반전 + 살짝 작아짐 (폰은 :active 가 짧아 .flash 로 0.25초 유지) */
.btn,.tab,.seg3 button,.steps button{transition:background .12s,color .12s,transform .08s}
.btn:active,.tab:active,.seg3 button:active,.steps button:active,
.btn.flash,.tab.flash,.seg3 button.flash,.steps button.flash{background:var(--ac);color:#05070d;border-color:var(--ac);transform:scale(.95)}
