.lab-drawer{z-index:70;background:var(--paper);border-right:1px solid var(--line-strong);width:320px;color:var(--ink);flex-direction:column;font-size:14px;display:flex;position:fixed;top:0;bottom:0;left:0}@media (width>=1200px){html.lab-on:not(.lab-closed) body{padding-left:320px}}html.lab-closed .lab-drawer{display:none}.lab-pill{z-index:70;background:var(--ink);min-height:44px;color:var(--paper);padding:0 18px;font-size:14px;font-weight:700;position:fixed;bottom:16px;left:16px;box-shadow:0 6px 20px #00000040}html:not(.lab-closed) .lab-pill{display:none}.lab-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.lab-kicker{letter-spacing:-.03em;font-size:18px;font-weight:800}.lab-count{color:var(--muted);margin-top:2px;font-size:13px}.lab-count b{color:var(--accent-text)}.lab-fold{border:1px solid var(--line-strong);min-height:36px;padding:0 12px;font-size:13px;font-weight:600}@media (hover:hover){.lab-fold:hover{border-color:var(--ink)}}.lab-body{overscroll-behavior:contain;flex:1;padding:14px 18px 28px;overflow-y:auto}.lab-intro{color:var(--muted);font-size:13px;line-height:1.6}.lab-sub{letter-spacing:.04em;color:var(--muted);margin:18px 0 8px;font-size:12px;font-weight:700}.lab-presets{gap:6px;display:grid}.lab-preset{border:1px solid var(--line-strong);text-align:left;gap:2px;padding:10px 12px;transition:border-color .2s,background .2s;display:grid}@media (hover:hover){.lab-preset:hover{border-color:var(--ink);background:var(--paper-2)}}.lp-name{font-weight:800}.lp-desc{color:var(--muted);font-size:12px;line-height:1.45}.lab-reset .lp-name{color:var(--muted)}.lab-preset.is-new{border-color:color-mix(in srgb, var(--accent) 45%, var(--line-strong))}.lp-badge,.lo-needs{vertical-align:2px;letter-spacing:.02em;margin-left:6px;padding:0 5px;font-size:10.5px;font-weight:800;line-height:1.6;display:inline-block}.lp-badge{background:var(--accent);color:var(--accent-ink)}.lp-badge.lp-applied{background:var(--ink);color:var(--paper)}.lo-needs{border:1px solid var(--line-strong);color:var(--muted);font-weight:700}.lab-jump{gap:4px;margin:14px 0 4px;display:flex}.lab-jump a{border:1px solid var(--line-strong);place-items:center;min-width:34px;height:30px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:700;display:inline-grid}@media (hover:hover){.lab-jump a:hover{border-color:var(--ink)}}.lab-jump a.is-new{border-color:color-mix(in srgb, var(--accent) 50%, var(--line-strong));color:var(--accent-text)}.lab-batch{background:var(--ink);color:var(--paper);margin:34px 0 -8px;padding:12px 12px 10px}.lab-batch-title{font-size:15px;font-weight:800}.lab-batch-sub{opacity:.75;margin-top:2px;font-size:12px}.lab-group{border:0;margin:22px 0 0;padding:0;scroll-margin-top:8px}.lab-group-title{border-bottom:1px solid var(--ink);align-items:baseline;gap:8px;width:100%;padding-bottom:8px;font-size:15px;font-weight:800;display:flex}.lab-group-title small{color:var(--muted);margin-left:auto;font-size:12px;font-weight:500}.lg-no{color:var(--accent-text);font-family:Georgia,Times New Roman,serif}.lab-opt{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:18px 24px minmax(0,1fr);align-items:start;gap:8px;padding:10px 0;display:grid}.lab-opt input{width:16px;height:16px;accent-color:var(--accent);margin:3px 0 0}.lo-no{color:var(--faint);font-variant-numeric:tabular-nums;padding-top:1px;font-size:12px;font-weight:800}.lab-opt:has(input:checked) .lo-no,.lab-opt:has(input:checked) .lo-title{color:var(--accent-text)}.lo-title{font-weight:700;line-height:1.4;display:block}.lo-swatch{width:fit-content;box-shadow:0 0 0 1px var(--line-strong);margin-bottom:4px;display:flex}.lo-swatch i{width:18px;height:14px}.lo-sum{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:3px;font-size:12.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.lab-opt:has(input:checked) .lo-sum,.lab-opt:has(.lo-more[open]) .lo-sum{-webkit-line-clamp:unset}.lo-more{margin-top:4px;font-size:12.5px;line-height:1.55}.lo-more summary{color:var(--ink-2);cursor:pointer;text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--line-strong);padding:4px 0;font-weight:600;display:inline-block}.lo-more p{color:var(--ink-2);margin-top:4px}.lo-more .lo-note{color:var(--muted)}.lab-foot{gap:10px;margin-top:24px;display:grid}.lab-copy{background:var(--ink);min-height:44px;color:var(--paper);font-weight:700}.lab-link{text-underline-offset:3px;font-size:13px;font-weight:600;text-decoration:underline}@media (width<=1199px){.lab-drawer{border-right:0;border-top:1px solid var(--line-strong);width:auto;max-height:78svh;top:auto;right:0;box-shadow:0 -10px 30px #0003}@media (width>=700px){.lab-drawer{width:380px;max-height:calc(100svh - var(--header-h) - 24px);border:1px solid var(--line-strong);bottom:12px;left:12px;right:auto}}}.lab-chip{border:1px solid var(--line-strong);background:var(--paper);min-height:36px;color:var(--ink);white-space:nowrap;padding:0 12px;font-size:13px;font-weight:700;box-shadow:0 2px 10px #00000014}@media (hover:hover){.lab-chip:hover{border-color:var(--ink)}}.lab-chip small{color:var(--faint);font-weight:500}.lab-panel-btn{display:none}@media (width<=900px){.lab-panel-btn:not([hidden]){align-items:center;display:inline-flex}}.lab-cartouche{outline-offset:2px;color:#3b2a1f;background:#fffdf3eb;border:1px solid #5b3a29;outline:3px double #5b3a29;min-width:170px;padding:10px 14px 12px}html[data-theme=dark] .lab-cartouche{color:#f1e6da;background:#20241deb;border-color:#e9d9c9;outline-color:#e9d9c9}.c-kicker{letter-spacing:.12em;font-size:11.5px;font-weight:700}.c-title{letter-spacing:-.03em;margin-top:2px;font-size:22px;font-weight:800;line-height:1.2}.c-scale{margin-top:4px;font-size:12px}.lab-legend{background:color-mix(in srgb, var(--paper) 94%, transparent);border:1px solid var(--line-strong);color:var(--ink);gap:5px;max-width:240px;padding:10px 12px;font-size:12.5px;display:grid}.lab-atlas .lab-legend{color:#3b2a1f;background:#fffdf3f0;border-color:#5b3a29}html[data-theme=dark] .lab-atlas .lab-legend{color:#f1e6da;background:#20241df0;border-color:#e9d9c9}.l-head{letter-spacing:.08em;font-size:12px;font-weight:800}.l-row{align-items:center;gap:8px;display:flex}.l-sym{flex:none;width:16px;height:16px;display:inline-block}.l-dot{background:#b5462a;border-radius:50%;width:11px;height:11px;margin:0 2.5px;box-shadow:0 0 0 2px #fff}.l-cluster{background:#7a2e1c;border-radius:50%;box-shadow:0 0 0 2px #fff}.l-border{border-top:2px dashed #b5527f;height:0}.l-grid{border-top:1px solid #4f8fbf;height:0}.l-swatch{border-radius:50%;width:12px;height:12px;margin:0 2px}.l-btn{text-align:left;width:100%;min-height:30px}.l-btn small{color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto}@media (hover:hover){.l-btn:hover span:nth-child(2){text-underline-offset:3px;text-decoration:underline}}.l-btn.is-off{opacity:.38}.l-note{color:var(--muted);margin-top:2px;font-size:11.5px;line-height:1.45}.map.lab-figure{background:#e9e9e6}html[data-theme=dark] .map.lab-figure{background:#050505}.map.lab-blueprint{background:#173f72}.map.lab-blueprint:after,.map.lab-sketch:after{content:"";z-index:1;pointer-events:none;position:absolute;inset:0}.map.lab-blueprint:after{background-image:linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px),linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px}.map.lab-sketch{background:#ebe6d8}html[data-theme=dark] .map.lab-sketch{background:#181b1a}.map.lab-sketch:after{opacity:.22;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .32  0 0 0 0 .28  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}html[data-theme=dark] .map.lab-sketch:after{mix-blend-mode:screen;opacity:.12}.map.lab-night{background:radial-gradient(1px 1px at 12% 18%,#fff 50%,#0000 51%),radial-gradient(1px 1px at 72% 12%,#cfd8ff 50%,#0000 51%),radial-gradient(1.5px 1.5px at 34% 76%,#fff 50%,#0000 51%),radial-gradient(1px 1px at 88% 64%,#fff 50%,#0000 51%),radial-gradient(1px 1px at 56% 40%,#fff 50%,#0000 51%),radial-gradient(1px 1px at 22% 52%,#dfe6ff 50%,#0000 51%),radial-gradient(1.2px 1.2px at 8% 88%,#fff 50%,#0000 51%),radial-gradient(1px 1px at 94% 30%,#fff 50%,#0000 51%),#04050a radial-gradient(at 50% 120%,#101a35 0%,#04050a 60%)}.map.lab-blueprint .maplibregl-ctrl-attrib,.map.lab-night .maplibregl-ctrl-attrib{color:#ffffffbf;background:#00000073}.lab-titleblock{color:#fff;background:#173f72e0;border:1.5px solid #ffffffd9;min-width:250px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11.5px;display:grid}.tb-row{grid-template-columns:64px minmax(0,1fr);display:grid}.tb-row+.tb-row{border-top:1px solid #ffffff73}.tb-k{color:#ffffffbf;border-right:1px solid #ffffff73;padding:4px 8px}.tb-v{font-family:var(--font);padding:4px 8px;font-weight:600}.tb-row:first-child .tb-v{font-size:13px;font-weight:800}.cat-donut{filter:drop-shadow(0 1px 3px #00000040);cursor:pointer;border-radius:50%;padding:0;display:block}.cat-donut svg{display:block}html.lab-full .map-head,html.lab-full .map-list,html.lab-full .site-footer,html.lab-full .endcard{display:none}html.lab-full .map-shell{position:relative}html.lab-full .map-stage{height:calc(100svh - var(--header-h));border:0}html.lab-full .map-tools{z-index:4;pointer-events:none;max-width:none;padding:0;position:absolute;top:12px;left:12px;right:392px}html.lab-full .map-tools>*{pointer-events:auto}html.lab-full .map-tools .chip,html.lab-full .map-tools .views{background:var(--paper);box-shadow:0 2px 10px #0000001f}html.lab-full .map-tools .chip.is-active{background:var(--ink)}html.lab-full .map .ui-tl{top:120px}@media (width<=900px){html.lab-full .map-tools{right:56px}html.lab-full .map .ui-tl{top:108px}html.lab-full .map-panel{border:0;border-top:1px solid var(--line-strong);visibility:hidden;max-height:62%;transition:transform .35s var(--ease), visibility 0s linear .35s;border-radius:14px 14px 0 0;display:block;bottom:0;left:0;right:0;transform:translateY(105%)}html.lab-full .map-panel:before{content:"";background:var(--line-strong);border-radius:2px;width:40px;height:4px;margin:8px auto 0;display:block}html.lab-full .map-panel.is-open{visibility:visible;transition:transform .35s var(--ease);transform:none}}.lab-intro-counter{background:var(--ink);color:var(--paper);letter-spacing:.02em;align-self:center;padding:8px 16px;font-size:15px;font-weight:800}.lab-timeline{background:color-mix(in srgb, var(--paper) 94%, transparent);border:1px solid var(--line-strong);grid-template-columns:auto auto minmax(0,1fr) auto;align-items:end;gap:4px 12px;padding:10px 14px;display:grid;box-shadow:0 4px 16px #0000001f}.tl-head{letter-spacing:.04em;grid-column:1/-1;font-size:12px;font-weight:800}.tl-play{background:var(--ink);width:40px;height:40px;color:var(--paper);font-size:14px}.tl-main{gap:2px;min-width:0;display:grid}.tl-bars{align-items:flex-end;gap:2px;height:46px;padding-top:12px;display:flex}.tl-bar{height:var(--h);background:var(--line-strong);flex:1;min-width:3px;padding:0;position:relative}.tl-bar.is-on{background:var(--ink)}.tl-bar[data-year]:before{content:attr(data-year);color:var(--muted);white-space:nowrap;font-size:10.5px;font-weight:700;position:absolute;bottom:calc(100% + 2px);left:0}.tl-range{width:100%;accent-color:var(--accent);margin:0}.tl-label{text-align:right;min-width:128px;padding-bottom:8px;font-size:13px;font-weight:700}@media (width<=600px){.lab-timeline{grid-template-columns:auto minmax(0,1fr)}.tl-label{text-align:left;grid-column:1/-1;padding:0}}.map-panel.has-index .panel-intro,.map-panel.has-index .recent-wrap{display:none}.lab-index,.lab-routes,.lab-notebook{margin-bottom:28px}.ix-head{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;padding-bottom:8px;display:flex}.ix-count{color:var(--ink);font-size:13px;font-weight:700}.ix-note{color:var(--muted);margin-top:8px;font-size:12.5px;line-height:1.5}.ix-list,.rt-list{margin-top:6px}.ix-item{border-bottom:1px solid var(--line);text-align:left;grid-template-columns:auto 40px minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:8px 0;display:grid}.rt-list .ix-item{grid-template-columns:40px minmax(0,1fr)}.ix-item img{object-fit:cover;background:var(--paper-2);width:40px;height:50px}.ix-photo-empty{background:var(--paper-2);border:1px solid var(--line);width:40px;height:50px;display:block;position:relative}.ix-num{background:var(--ink);min-width:22px;height:22px;color:var(--paper);border-radius:11px;place-items:center;padding:0 4px;font-size:11.5px;font-weight:800;display:inline-grid}.ix-txt{gap:2px;min-width:0;display:grid}.ix-name{color:var(--ink);font-size:14.5px;font-weight:700;line-height:1.35}@media (hover:hover){.ix-item:hover .ix-name{text-underline-offset:3px;text-decoration:underline}}.ix-meta{color:var(--muted);font-size:12.5px}.lab-trip-btn{background:var(--accent);color:var(--accent-ink);text-align:left;transition:transform .2s var(--ease);justify-items:start;padding:10px 14px;font-size:15px;font-weight:800;line-height:1.3;display:grid;box-shadow:0 6px 18px #00000038}@media (hover:hover){.lab-trip-btn:hover{transform:translateY(-2px)}}.trip-q{opacity:.85;font-size:12px;font-weight:600}.trip-card{border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:18px}.trip-cover img{aspect-ratio:4/5;object-fit:cover;background:var(--paper-2);width:100%}.trip-line{letter-spacing:-.03em;margin:14px 0 12px;font-size:20px;font-weight:800;line-height:1.4}.lab-routebar{z-index:2;background:var(--ink);color:var(--paper);gap:4px;padding:14px 20px;display:grid;position:sticky;top:0}.rb-meta{opacity:.8;font-size:12px;font-weight:600}.rb-title{font-size:16px;font-weight:800;line-height:1.4}@media (hover:hover){.rb-title:hover{text-underline-offset:3px;text-decoration:underline}}.rb-order{border:1px solid #fff6;align-self:start;margin-top:6px;display:flex}html[data-theme=dark] .rb-order{border-color:#0000004d}.rb-seg{min-height:32px;color:inherit;opacity:.7;padding:0 10px;font-size:12.5px;font-weight:700}.rb-seg[aria-pressed=true]{background:var(--paper);color:var(--ink);opacity:1}.rb-nav{align-items:center;gap:6px;margin-top:6px;display:flex}.rb-btn{min-width:40px;min-height:36px;color:inherit;border:1px solid #fff6;padding:0 10px;font-weight:700}html[data-theme=dark] .rb-btn{border-color:#0000004d}.rb-btn:last-child{margin-left:auto;font-size:13px}.rb-step{text-align:center;min-width:52px;font-size:13px;font-weight:700}.rt-in{border-top:1px solid var(--line);gap:4px;margin-top:18px;padding-top:14px;display:grid}.rt-link{text-align:left;text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--line-strong);padding:4px 0;font-size:13.5px;font-weight:600}.map-panel.quiz-mode .panel-empty,.map-panel.quiz-mode .panel-body{display:none!important}.lab-quiz{padding:24px;display:none}.map-panel.quiz-mode .lab-quiz{align-content:start;gap:10px;display:grid}.qz-title{letter-spacing:-.035em;font-size:22px;font-weight:800}.qz-text{color:var(--ink-2);font-size:14px;line-height:1.6}.qz-photo{aspect-ratio:4/5;object-fit:cover;background:var(--paper-2);width:100%;max-height:46svh}.qz-q{font-size:19px;font-weight:800}.qz-hint{color:var(--muted);font-size:13px}.qz-btn{background:var(--ink);min-height:44px;color:var(--paper);justify-self:start;padding:0 18px;font-weight:700}.qz-btn-sub{color:var(--ink);border:1px solid var(--line-strong);background:0 0}.qz-score{color:var(--accent-text);font-size:30px;font-weight:800}.qz-answer-name{font-size:18px;font-weight:800}.qz-link{text-underline-offset:3px;font-size:14px;font-weight:700;text-decoration:underline}.qz-guess{background:var(--ink);width:28px;height:28px;color:var(--paper);border-radius:50%;place-items:center;font-size:18px;font-weight:800;line-height:1;display:grid}.qz-answer-wrap{padding-bottom:6px}.qz-answer{background:var(--accent);color:var(--accent-ink);white-space:nowrap;padding:5px 10px;font-size:13px;font-weight:800;position:relative}.qz-answer:after{content:"";border:6px solid #0000;border-top-color:var(--accent);position:absolute;top:100%;left:50%;transform:translate(-50%)}.qz-grade{color:#d23a2a;width:92px;height:92px;font-family:"Nanum Brush Script", "Apple SD Gothic Neo", var(--font);border:4px solid #d23a2a;border-radius:50%;justify-self:start;place-items:center;margin:6px 0;font-size:52px;font-weight:900;line-height:1;display:grid;transform:rotate(-12deg)}.qz-total{font-size:18px;font-weight:800}.qz-list{border-top:1px solid var(--line);counter-reset:q;margin:4px 0 8px;display:grid}.qz-list li{border-bottom:1px solid var(--line);counter-increment:q;justify-content:space-between;gap:12px;padding:8px 0;font-size:13.5px;display:flex}.qz-l-name:before{content:counter(q) ". ";color:var(--muted)}.qz-l-d{color:var(--muted);flex:none}.lab-quiz-open{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (width<=900px){.lab-quiz{padding:18px}.qz-photo{max-height:28svh}}.nb-bar,.nb-mini{background:var(--paper-2);height:8px;margin-top:10px;display:block;position:relative;overflow:hidden}.nb-bar:after,.nb-mini:after{content:"";width:var(--p);background:var(--accent);position:absolute;inset:0 auto 0 0}.nb-regions{gap:6px;margin-top:12px;display:grid}.nb-regions li{grid-template-columns:82px minmax(0,1fr) 52px;align-items:center;gap:8px;font-size:12.5px;display:grid}.nb-mini{height:6px;margin:0}.nb-n{text-align:right;color:var(--muted)}.nb-actions{align-items:center;gap:12px;margin-top:14px;display:flex}.nb-reset{color:var(--muted);text-underline-offset:3px;font-size:12.5px;text-decoration:underline}.nb-stamp{border:1.5px dashed var(--accent);min-height:38px;color:var(--accent-text);margin-top:12px;padding:0 14px;font-size:13.5px;font-weight:800}.nb-stamp.is-on{background:var(--accent);color:var(--accent-ink);border-style:solid}.nb-stamp.is-stamped{animation:lab-stamp .45s var(--ease)}@keyframes lab-stamp{0%{opacity:0;transform:scale(1.6)rotate(-8deg)}60%{opacity:1;transform:scale(.94)rotate(-3deg)}to{transform:none}}@media (prefers-reduced-motion:reduce){.nb-stamp.is-stamped{animation:none}}
