:root{color-scheme:light dark;--t-xs:.75rem;--t-sm:.8125rem;--t-base:.9375rem;--t-body:1.0625rem;--t-lg:1.25rem;--t-xl:1.5rem;--t-2xl:1.75rem;--t-3xl:2.125rem;--lh-tight:1.25;--lh-snug:1.45;--lh-body:1.75;--track-tight:-.022em;--track-wide:.08em;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--measure:38.75rem;--sidebar:15rem;--toc-rail:13rem;--gutter:clamp(1rem, 4vw, 2rem);--header-h:3.5rem;--radius-sm:8px;--radius:12px;--radius-lg:16px;--bg:#fcfcfd;--bg-soft:#f3f5f7;--bg-card:#fff;--bg-sunken:#eef1f4;--fg:#141a21;--fg-muted:#55606d;--fg-faint:#5c6a79;--line:#e3e8ed;--line-strong:#c7d0da;--accent:#0b6ea3;--accent-hover:#095a86;--accent-soft:#e6f2f9;--accent-line:#a9d2e8;--accent-fg:#fff;--shadow-sm:0 1px 2px #141a210d;--shadow:0 1px 2px #141a210a, 0 6px 20px #141a210f;--fx-light:#ffffff6b;--fx-foam:#ffffffbf;--fx-cyan:#0a7fae;--fx-glow:#0b6ea33d;--fx-glow-strong:#0b6ea373;--fx-ring-a:#0b6ea3;--fx-ring-b:#36c2f0;--fx-ring-c:#8be3ff;--pool-a:#5fd0f3;--pool-b:#0b73b3;--pool-red:#e2464a;--pool-skin:#ffcf99;--pool-cap-a:#ff5a7a;--pool-cap-b:#ffd23f;--pool-white:#fff;--pool-ink:#3a4550;--n-gray:#5f6a78;--n-brown:#8a6144;--n-orange:#a35a12;--n-yellow:#816610;--n-green:#2c7346;--n-blue:#145c94;--n-purple:#6541a3;--n-pink:#a2376a;--n-red:#b93229;--n-bg-gray:#eef1f4;--n-bg-brown:#f4ebe4;--n-bg-orange:#fbeddc;--n-bg-yellow:#fbf4d8;--n-bg-green:#e4f3ea;--n-bg-blue:#e2eefa;--n-bg-purple:#efe8fa;--n-bg-pink:#fbe6f0;--n-bg-red:#fbe6e3}@media (prefers-color-scheme:dark){:root{--bg:#101317;--bg-soft:#171b21;--bg-card:#1b2027;--bg-sunken:#14181d;--fg:#e9edf2;--fg-muted:#a7b3c0;--fg-faint:#8d9aa8;--line:#272d35;--line-strong:#3a444f;--accent:#6ec1f2;--accent-hover:#92d2f7;--accent-soft:#16283a;--accent-line:#2a4a66;--accent-fg:#08131b;--shadow-sm:0 1px 2px #00000052;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000047;--fx-cyan:#8be3ff;--fx-glow:#6ec1f238;--fx-glow-strong:#6ec1f273;--fx-ring-a:#6ec1f2;--fx-ring-b:#2f8fd0;--fx-ring-c:#c4f1ff;--n-gray:#9aa6b3;--n-brown:#c2977a;--n-orange:#e0a05c;--n-yellow:#ddc063;--n-green:#79c996;--n-blue:#79bbeb;--n-purple:#b193e0;--n-pink:#e08bb4;--n-red:#ef8a80;--n-bg-gray:#242a32;--n-bg-brown:#33291f;--n-bg-orange:#3a2b19;--n-bg-yellow:#35301a;--n-bg-green:#1e3226;--n-bg-blue:#1b2c3d;--n-bg-purple:#2a2340;--n-bg-pink:#3a2130;--n-bg-red:#3a2320}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,Noto Sans KR,Segoe UI,sans-serif;font-size:var(--t-body);line-height:var(--lh-body);word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-underline-offset:.22em;text-decoration-thickness:from-font}a:hover{color:var(--accent-hover);text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}img,video{max-width:100%;height:auto}hr{border:0;border-top:1px solid var(--line)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:60;padding:var(--s-3) var(--s-4);background:var(--accent);color:var(--accent-fg);font-weight:600;position:absolute;top:0;left:0;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:30;align-items:center;gap:var(--s-3);min-height:var(--header-h);padding-inline:var(--gutter);background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.site-header__home{align-items:center;gap:var(--s-2);min-height:44px;font-size:var(--t-base);letter-spacing:var(--track-tight);color:var(--fg);padding-inline:.15rem;font-weight:700;text-decoration:none;display:inline-flex}.site-header__home:hover{color:var(--accent)}.site-header__spacer{flex:1}.site-header__chat{align-items:center;gap:var(--s-1);min-height:44px;padding:var(--s-2) var(--s-3);border:1px solid var(--line-strong);background:var(--bg-card);color:var(--fg-muted);font-size:var(--t-sm);white-space:nowrap;border-radius:999px;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.site-header__chat:hover{border-color:var(--accent);color:var(--accent)}.wrap{max-width:var(--measure);padding-inline:var(--gutter);margin-inline:auto}.wrap--wide{max-width:62rem}.wrap--wide>.prose{max-width:var(--measure)}.doc{gap:0 var(--s-6);max-width:calc(var(--sidebar) + var(--measure) + var(--toc-rail) + 2 * var(--s-6) + 2 * var(--gutter));padding-inline:var(--gutter);grid-template-columns:minmax(0,1fr);margin-inline:auto;display:grid}@media (width>=60rem){.doc{grid-template-columns:var(--sidebar) minmax(0, 1fr)}}@media (width>=78rem){.doc{grid-template-columns:var(--sidebar) minmax(0, 1fr) var(--toc-rail)}}.doc__main{min-width:0;max-width:var(--measure)}.sidebar{display:none}@media (width>=60rem){.sidebar{top:calc(var(--header-h) + var(--s-4));max-height:calc(100vh - var(--header-h) - var(--s-6));padding-block:var(--s-6) var(--s-4);font-size:var(--t-base);align-self:start;display:block;position:sticky;overflow-y:auto}}.sidebar__group+.sidebar__group{margin-top:var(--s-5)}.sidebar__title{margin:0 0 var(--s-2);padding-left:var(--s-2);font-size:var(--t-xs);letter-spacing:var(--track-wide);color:var(--fg-faint);font-weight:700}.sidebar__list{margin:0;padding:0;list-style:none}.sidebar__link{align-items:center;gap:var(--s-2);padding:var(--s-2);border-radius:var(--radius-sm);color:var(--fg-muted);line-height:var(--lh-snug);text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar__link:hover{background:var(--bg-soft);color:var(--fg)}.sidebar__link[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:700}.sidebar__icon{flex:none;line-height:1}.rail{display:none}@media (width>=78rem){.rail{top:calc(var(--header-h) + var(--s-4));max-height:calc(100vh - var(--header-h) - var(--s-6));padding-block:var(--s-6) var(--s-4);padding-left:var(--s-4);border-left:1px solid var(--line);font-size:var(--t-sm);align-self:start;display:block;position:sticky;overflow-y:auto}}.rail__title{margin:0 0 var(--s-2);font-size:var(--t-xs);letter-spacing:var(--track-wide);color:var(--fg-faint);font-weight:700}.toc-list{margin:0;padding:0;list-style:none}.toc-list li{margin:0}.toc-list a{color:var(--fg-muted);line-height:var(--lh-snug);padding:.3rem 0;text-decoration:none;display:block}.toc-list a:hover{color:var(--accent)}.toc-list li[data-level="1"] a{padding-left:var(--s-3)}.toc-list li[data-level="2"] a{padding-left:var(--s-5)}.toc-inline{margin:var(--s-5) 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft)}@media (width>=78rem){.toc-inline{display:none}}.toc-inline>summary{padding:var(--s-3) var(--s-4);cursor:pointer;font-size:var(--t-xs);letter-spacing:var(--track-wide);color:var(--fg-faint);font-weight:700;list-style:none}.toc-inline>summary::-webkit-details-marker{display:none}.toc-inline>summary:before{content:"▸";margin-right:var(--s-2);transition:transform .15s;display:inline-block}.toc-inline[open]>summary:before{transform:rotate(90deg)}.toc-inline .toc-list{padding:0 var(--s-4) var(--s-3)}.cover{background-color:var(--bg-soft);background-position:50% 12%;background-size:cover;height:clamp(132px,24vw,232px)}.page-head{padding-block:var(--s-6) var(--s-2)}.page-head__icon{margin-bottom:var(--s-3);font-size:2.5rem;line-height:1;display:block}.page-head h1{font-size:clamp(1.6rem, 5vw, var(--t-3xl));font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--track-tight);text-wrap:balance;margin:0}.page-head__meta{margin:var(--s-3) 0 0;color:var(--fg-faint);font-size:var(--t-sm)}.page-head__kicker{margin-bottom:var(--s-2);font-size:var(--t-xs);letter-spacing:var(--track-wide);color:var(--accent);font-weight:700;display:inline-block}.prose{padding-block:var(--s-2) var(--s-5)}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{font-weight:700;line-height:var(--lh-snug);letter-spacing:var(--track-tight);scroll-margin-top:calc(var(--header-h) + var(--s-4));text-wrap:balance}.prose h2{margin:var(--s-7) 0 var(--s-3);padding-bottom:var(--s-2);font-size:var(--t-2xl);border-bottom:1px solid var(--line)}.prose h3{margin:var(--s-6) 0 var(--s-3);font-size:var(--t-xl)}.prose h4{margin:var(--s-5) 0 var(--s-2);font-size:var(--t-lg)}.prose p{margin:var(--s-4) 0}.prose ul,.prose ol{margin:var(--s-4) 0;padding-left:1.3rem}.prose li{margin:var(--s-2) 0}.prose li::marker{color:var(--fg-faint)}.prose li>p{margin:.15rem 0}.prose li>ul,.prose li>ol{margin:var(--s-2) 0}.prose hr{margin:var(--s-7) 0}.prose blockquote{margin:var(--s-5) 0;padding:var(--s-1) 0 var(--s-1) var(--s-4);border-left:3px solid var(--accent-line);color:var(--fg-muted)}.prose blockquote p{margin:var(--s-2) 0}.prose code{background:var(--bg-sunken);color:var(--fg);border-radius:5px;padding:.14em .42em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.86em}.prose pre{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-sunken);overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose strong{font-weight:700}.table-scroll{margin:var(--s-5) 0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:var(--t-base)}.prose th,.prose td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose thead th{background:var(--bg-soft);white-space:nowrap;font-weight:700}.prose tbody tr:last-child td{border-bottom:0}.callout{gap:var(--s-3);margin:var(--s-5) 0;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft);display:flex}.callout__icon{flex:none;font-size:1.1rem;line-height:1.55}.callout__body{flex:1;min-width:0}.callout__body>:first-child{margin-top:0}.callout__body>:last-child{margin-bottom:0}.toggle{margin:var(--s-2) 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);transition:border-color .12s}.toggle:hover{border-color:var(--line-strong)}.toggle[open]{background:var(--bg-soft)}.toggle__summary{gap:var(--s-2);padding:var(--s-3) var(--s-4);cursor:pointer;border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;align-items:baseline;font-weight:600;list-style:none;display:flex}.toggle:not([open])>.toggle__summary{border-radius:calc(var(--radius) - 1px)}.toggle__summary::-webkit-details-marker{display:none}.toggle__summary:before{content:"▸";color:var(--fg-faint);flex:none;transition:transform .15s}.toggle[open]>.toggle__summary:before{transform:rotate(90deg)}.toggle__summary p,.toggle__title{font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:normal;color:inherit;scroll-margin-top:calc(var(--header-h) + var(--s-4));border-bottom:0;margin:0;padding:0}.toggle__body{padding:0 var(--s-4) var(--s-4) 2rem;border-top:1px solid var(--line)}.toggle__body>:first-child{margin-top:var(--s-3)}.toggle__body>:last-child{margin-bottom:0}.toggle__body .toggle{background:0 0}.lone-label{margin:var(--s-4) 0}.tint{margin:var(--s-4) 0;padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm)}.tint>:first-child{margin-top:0}.tint>:last-child{margin-bottom:0}.tint h2,.tint h3,.tint h4{border-bottom:0;margin:0}.columns{gap:var(--s-2) var(--s-6);margin:var(--s-5) 0;display:grid}@media (width>=40rem){.columns{grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr))}}.columns__col>:first-child{margin-top:0}.figure{margin:var(--s-5) 0}.figure img{width:auto;max-width:min(100%, var(--img-w,32rem));border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-soft);max-height:70vh;display:block}.figure figcaption{margin-top:var(--s-2);color:var(--fg-faint);font-size:var(--t-sm)}.figure--video video{border-radius:var(--radius-sm);border:1px solid var(--line);width:100%;max-width:20rem}.lite-yt{margin:var(--s-4) 0;max-width:32rem;display:block}.lite-yt__link{border-radius:var(--radius-sm);aspect-ratio:16/9;background:#000;text-decoration:none;display:block;position:relative;overflow:hidden}.lite-yt__poster{object-fit:cover;opacity:.82;width:100%;height:100%;transition:opacity .15s,transform .3s}.lite-yt__link:hover .lite-yt__poster{opacity:1;transform:scale(1.02)}.lite-yt__play{background:#0000009e;border-radius:10px;width:58px;height:40px;transition:background .15s;position:absolute;inset:50% auto auto 50%;translate:-50% -50%}.lite-yt__link:hover .lite-yt__play{background:red}.lite-yt__play:after{content:"";border:8px solid #0000;border-left:14px solid #fff;border-right-width:0;position:absolute;inset:50% auto auto 50%;translate:-40% -50%}.lite-yt__title{padding:var(--s-6) var(--s-3) var(--s-2);color:#fff;font-size:var(--t-sm);line-height:var(--lh-snug);background:linear-gradient(#0000,#000c);position:absolute;bottom:0;left:0;right:0}.lite-yt iframe{aspect-ratio:16/9;border-radius:var(--radius-sm);border:0;width:100%}.u{text-underline-offset:.15em;text-decoration:underline}.s{color:var(--fg-faint);text-decoration:line-through}.c-gray{color:var(--n-gray)}.c-brown{color:var(--n-brown)}.c-orange{color:var(--n-orange)}.c-yellow{color:var(--n-yellow)}.c-green{color:var(--n-green)}.c-blue{color:var(--n-blue)}.c-purple{color:var(--n-purple)}.c-pink{color:var(--n-pink)}.c-red{color:var(--n-red)}.c-teal{color:var(--n-green)}.c-gray_background{background:var(--n-bg-gray)}.c-brown_background{background:var(--n-bg-brown)}.c-orange_background{background:var(--n-bg-orange)}.c-yellow_background{background:var(--n-bg-yellow)}.c-green_background{background:var(--n-bg-green)}.c-blue_background{background:var(--n-bg-blue)}.c-purple_background{background:var(--n-bg-purple)}.c-pink_background{background:var(--n-bg-pink)}.c-red_background{background:var(--n-bg-red)}.c-teal_background{background:var(--n-bg-green)}span[class*=_background]{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:.06em .32em}.hero{padding-block:var(--s-7) var(--s-5)}.hero__icon{margin-bottom:var(--s-3);font-size:2.75rem;line-height:1;display:block}.hero h1{font-size:clamp(1.75rem,6vw,2.5rem);font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--track-tight);text-wrap:balance;margin:0}.hero__lead{margin:var(--s-3) 0 0;max-width:34rem;color:var(--fg-muted)}.hero__actions{gap:var(--s-2);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.nav-group{margin:var(--s-6) 0}.nav-group__title{align-items:center;gap:var(--s-3);margin:0 0 var(--s-3);font-size:var(--t-xs);letter-spacing:var(--track-wide);color:var(--fg-faint);font-weight:700;display:flex}.nav-group__title:after{content:"";background:var(--line);flex:1;height:1px}.card-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr));display:grid}.card{gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);color:inherit;align-items:flex-start;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.card:hover{border-color:var(--accent-line);box-shadow:var(--shadow);transform:translateY(-2px)}.card--must{border-color:var(--accent-line);background:linear-gradient(var(--accent-soft), var(--bg-card) 62%)}.card__icon{flex:none;font-size:1.35rem;line-height:1.3}.card>span:not([class]){min-width:0}.card__title{font-weight:600;line-height:var(--lh-snug);letter-spacing:var(--track-tight);display:block}.card__meta{margin-top:var(--s-1);color:var(--fg-faint);font-size:var(--t-sm);display:block}.card__ext{color:var(--fg-faint);font-size:var(--t-base)}.site-footer{margin-top:var(--s-7);padding-block:var(--s-6) var(--s-7);border-top:1px solid var(--line);background:var(--bg-soft);color:var(--fg-muted);font-size:var(--t-base)}.site-footer__links{gap:var(--s-1) var(--s-2);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.site-footer__links a{min-width:44px;min-height:44px;padding-inline:var(--s-2);justify-content:center;align-items:center;display:inline-flex}.site-footer__note{color:var(--fg-faint);font-size:var(--t-sm);margin:0}.pager{gap:var(--s-3);margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--line);display:flex}.pager a{min-width:0;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);color:inherit;font-size:var(--t-base);font-weight:600;line-height:var(--lh-snug);flex:1;text-decoration:none;transition:border-color .15s,background .15s}.pager a:hover{border-color:var(--accent-line);background:var(--accent-soft)}.pager span{margin-bottom:var(--s-1);color:var(--fg-faint);font-size:var(--t-xs);letter-spacing:var(--track-wide);font-weight:700;display:block}.pager .pager__next{text-align:right}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:48px;padding:var(--s-3) var(--s-5);border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-fg);font-size:var(--t-body);cursor:pointer;border:1px solid #0000;font-family:inherit;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.btn:hover{background:var(--accent-hover);color:var(--accent-fg)}.btn:disabled{opacity:.55;cursor:progress}.btn--ghost{background:var(--bg-card);border-color:var(--line-strong);color:var(--fg)}.btn--ghost:hover{background:var(--bg-soft);border-color:var(--accent);color:var(--accent)}.cover{isolation:isolate;position:relative;overflow:hidden}.cover__caustics{background:radial-gradient(ellipse 16% 9% at 18% 28%, var(--fx-light), transparent 70%), radial-gradient(ellipse 12% 7% at 68% 58%, var(--fx-light), transparent 70%), radial-gradient(ellipse 20% 11% at 42% 78%, var(--fx-light), transparent 70%), radial-gradient(ellipse 11% 6% at 86% 22%, var(--fx-light), transparent 70%), radial-gradient(ellipse 14% 8% at 30% 55%, var(--fx-light), transparent 72%);mix-blend-mode:soft-light;will-change:transform;pointer-events:none;animation:13s ease-in-out infinite alternate fx-drift;position:absolute;inset:-25%}.cover__caustics--b{background:radial-gradient(ellipse 13% 8% at 55% 20%, var(--fx-light), transparent 70%), radial-gradient(ellipse 18% 9% at 12% 70%, var(--fx-light), transparent 70%), radial-gradient(ellipse 10% 6% at 78% 80%, var(--fx-light), transparent 70%), radial-gradient(ellipse 15% 9% at 92% 48%, var(--fx-light), transparent 72%);mix-blend-mode:overlay;animation-duration:17s;animation-direction:alternate-reverse}@keyframes fx-drift{0%{transform:translate(-4%,-3%)rotate(-2deg)scale(1)}50%{transform:translate(3%,2%)rotate(1deg)scale(1.06)}to{transform:translate(-2%,4%)rotate(3deg)scale(.97)}}.cover:after{content:"";background:linear-gradient(105deg, transparent 35%, var(--fx-light) 48%, transparent 60%);mix-blend-mode:soft-light;pointer-events:none;animation:7s ease-in-out infinite fx-sheen;position:absolute;inset:0;translate:-100%}@keyframes fx-sheen{0%,55%{translate:-100%}to{translate:100%}}.cover__bubbles{pointer-events:none;position:absolute;inset:0}.cover__bubbles span{bottom:-24px;left:var(--x);width:var(--s);height:var(--s);background:radial-gradient(circle at 32% 30%, var(--fx-foam), transparent 62%);border:1px solid var(--fx-light);opacity:0;animation:fx-rise var(--d) ease-in infinite;animation-delay:var(--delay);will-change:transform, opacity;border-radius:50%;position:absolute}@keyframes fx-rise{0%{opacity:0;transform:translate(0,0)scale(.6)}12%{opacity:.9}50%{transform:translate(12px,-120px)scale(1)}85%{opacity:.7}to{opacity:0;transform:translate(-8px,-260px)scale(1.15)}}.cover__swimmer{z-index:2;filter:drop-shadow(0 3px 6px var(--fx-glow-strong));pointer-events:none;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1;animation:26s linear infinite fx-swim,1.4s ease-in-out infinite alternate fx-stroke;position:absolute;bottom:clamp(18px,3.2vw,34px);left:0}@keyframes fx-swim{0%{translate:calc(100vw + 40px)}to{translate:-80px}}@keyframes fx-stroke{0%{margin-bottom:0;rotate:-7deg}to{margin-bottom:5px;rotate:6deg}}.cover__wave{z-index:3;pointer-events:none;width:200%;height:clamp(28px,5vw,56px);position:absolute;bottom:-1px;left:0}.cover__wave path{fill:var(--bg)}.cover__wave--back{z-index:1;height:clamp(36px,6.5vw,70px);animation:16s linear infinite reverse fx-wave}.cover__wave--back path{opacity:.55}.cover__wave--front{animation:10s linear infinite fx-wave}@keyframes fx-wave{0%{translate:0}to{translate:-50%}}.hero__icon,.page-head__icon{transform-origin:50% 80%;animation:4s ease-in-out infinite fx-float}@keyframes fx-float{0%,to{translate:0;rotate:0deg}50%{translate:0 -6px;rotate:-4deg}}@supports (background-clip:text){.hero h1,.page-head h1{background:linear-gradient(100deg, var(--fg) 0%, var(--fg) 30%, var(--accent) 45%, var(--fx-cyan) 52%, var(--accent) 60%, var(--fg) 75%, var(--fg) 100%);-webkit-text-fill-color:transparent;background-size:280% 100%;-webkit-background-clip:text;background-clip:text;animation:9s ease-in-out infinite fx-tide}}@keyframes fx-tide{0%,to{background-position:100% 0}50%{background-position:0 0}}@property --fx-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.card--must{background:linear-gradient(var(--accent-soft), var(--bg-card) 62%) padding-box, conic-gradient(from var(--fx-angle), var(--fx-ring-a), var(--fx-ring-b), var(--fx-ring-c), transparent 45%, transparent 60%, var(--fx-ring-a)) border-box;border:1.5px solid #0000;animation:5s linear infinite fx-orbit}.card--must:nth-child(2n){animation-delay:-1.7s}.card--must:nth-child(3n){animation-delay:-3.1s}@keyframes fx-orbit{to{--fx-angle:360deg}}.card{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));transform-style:preserve-3d;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .2s;position:relative;overflow:hidden}.card:hover{--lift:-4px;transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift));box-shadow:var(--shadow), 0 14px 34px var(--fx-glow)}.card:before{content:"";z-index:0;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%), var(--fx-glow), transparent 65%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.card:hover:before{opacity:1}.card>*{z-index:1;position:relative}.card:hover .card__icon{animation:.7s fx-bob}@keyframes fx-bob{0%{translate:0;rotate:0deg}35%{translate:0 -5px;rotate:-12deg}70%{translate:0 1px;rotate:8deg}to{translate:0;rotate:0deg}}.btn,.pager a,.toggle__summary,.sidebar__link{position:relative;overflow:hidden}.fx-ripple{z-index:0;width:var(--size);height:var(--size);left:var(--x);top:var(--y);background:radial-gradient(circle, var(--fx-glow-strong) 0%, transparent 70%);opacity:1;pointer-events:none;border-radius:50%;animation:.7s cubic-bezier(.2,.7,.3,1) forwards fx-ripple;position:absolute;translate:-50% -50%;scale:0}@keyframes fx-ripple{to{opacity:0;scale:1}}.fx-bubble{z-index:100;left:var(--x);top:var(--y);width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);background:radial-gradient(circle at 32% 30%, var(--fx-foam), var(--fx-ring-b) 55%, transparent 72%);box-shadow:0 0 10px var(--fx-glow-strong);pointer-events:none;border-radius:50%;animation:.9s cubic-bezier(.15,.8,.3,1) forwards fx-burst;position:fixed}@keyframes fx-burst{0%{opacity:1;translate:0;scale:.3}70%{opacity:.9}to{translate:var(--dx) var(--dy);opacity:0;scale:1}}.btn:not(.btn--ghost){background:linear-gradient(120deg, var(--accent), var(--fx-cyan) 55%, var(--accent));background-size:200% 100%;transition:background-position .5s,transform .2s,box-shadow .2s;animation:2.6s ease-out 1s 3 fx-breathe}.btn:not(.btn--ghost):hover{box-shadow:0 10px 26px var(--fx-glow-strong);background-position:100% 0;transform:translateY(-2px)}.btn:not(.btn--ghost):after{content:"";background:linear-gradient(110deg, transparent 30%, var(--fx-light) 50%, transparent 70%);pointer-events:none;transition:translate .7s;position:absolute;inset:0;translate:-120%}.btn:not(.btn--ghost):hover:after{translate:120%}@keyframes fx-breathe{0%{box-shadow:0 0 0 0 var(--fx-glow-strong)}to{box-shadow:0 0 0 16px #0000}}.btn--ghost{transition:transform .2s,box-shadow .2s,border-color .2s,color .2s}.btn--ghost:hover{box-shadow:0 8px 20px var(--fx-glow);transform:translateY(-2px)}.fx-pending{opacity:0;translate:0 26px;scale:.98}.fx-in{animation:.7s cubic-bezier(.2,.8,.2,1) both fx-surface;animation-delay:calc(var(--fx-i,0) * 70ms)}@keyframes fx-surface{0%{opacity:0;filter:blur(3px);translate:0 26px;scale:.98}to{opacity:1;filter:blur();translate:0;scale:1}}.fx-progress{z-index:40;background:linear-gradient(90deg, var(--fx-ring-a), var(--fx-ring-b), var(--fx-ring-c));height:3px;box-shadow:0 0 10px var(--fx-glow-strong);transform-origin:0;pointer-events:none;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.site-header{transition:box-shadow .3s,background .3s}.is-scrolled .site-header{box-shadow:0 6px 24px var(--fx-glow)}.site-header__home>span[aria-hidden]{transition:rotate .4s,translate .4s;display:inline-block}.site-header__home:hover>span[aria-hidden]{translate:0 -2px;rotate:-14deg}.toc-list a{transition:color .2s,padding .2s;position:relative}.toc-list a[aria-current=location]{color:var(--accent);font-weight:700}.rail .toc-list a:before{content:"";left:calc(-1 * var(--s-4) - 1px);background:var(--accent);width:2px;box-shadow:0 0 8px var(--fx-glow-strong);border-radius:2px;transition:scale .25s;position:absolute;top:20%;bottom:20%;scale:1 0}.rail .toc-list a[aria-current=location]:before{scale:1}.sidebar__link[aria-current=page]{box-shadow:inset 3px 0 0 var(--accent)}.sidebar__link:hover .sidebar__icon{animation:.6s fx-bob}@supports selector(::details-content){:root{interpolate-size:allow-keywords}.toggle::details-content,.toc-inline::details-content{block-size:0;transition:block-size .35s cubic-bezier(.2, .8, .2, 1), content-visibility .35s allow-discrete;overflow:clip}.toggle[open]::details-content,.toc-inline[open]::details-content{block-size:auto}}.toggle{transition:border-color .2s,box-shadow .25s,background .25s}.toggle[open]{box-shadow:0 6px 22px var(--fx-glow);border-color:var(--accent-line)}.toggle__summary:before{transition:transform .3s cubic-bezier(.3,1.4,.5,1),color .2s}.toggle[open]>.toggle__summary:before{color:var(--accent)}@view-transition{navigation:auto}.site-header{view-transition-name:site-header}.sidebar{view-transition-name:sidebar}.fx-progress{view-transition-name:fx-progress}::view-transition-old(root){animation:.28s ease-in both fx-vt-out}::view-transition-new(root){animation:.42s cubic-bezier(.2,.8,.2,1) both fx-vt-in}@keyframes fx-vt-out{to{opacity:0;filter:blur(4px);translate:0 -14px}}@keyframes fx-vt-in{0%{opacity:0;filter:blur(4px);translate:0 22px}}.viz{--viz-a:var(--fx-ring-a);--viz-b:var(--fx-ring-b);--viz-c:var(--fx-ring-c);margin:var(--s-5) 0 var(--s-4);padding:var(--s-5) var(--s-4);border:1px solid var(--accent-line);border-radius:var(--radius-lg);background:radial-gradient(120% 80% at 100% 0%, var(--fx-glow), transparent 60%), radial-gradient(90% 70% at 0% 100%, var(--accent-soft), transparent 70%), var(--bg-card);box-shadow:var(--shadow), 0 18px 40px -24px var(--fx-glow-strong);isolation:isolate;position:relative;overflow:hidden}@media (width>=40rem){.viz{padding:var(--s-6)}}.viz:before{content:"";z-index:-1;border-radius:inherit;background:conic-gradient(from var(--fx-angle), transparent 0 70%, var(--viz-b), var(--viz-c), transparent 90%);-webkit-mask-composite:xor;pointer-events:none;padding:1.5px;animation:7s linear infinite fx-orbit;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.viz__head{margin-bottom:var(--s-4)}.viz__kicker{align-items:center;gap:var(--s-1);background:var(--accent-soft);color:var(--accent);font-size:var(--t-xs);letter-spacing:var(--track-wide);border-radius:999px;padding:.15rem .6rem;font-weight:700;display:inline-flex}.viz__title{margin:var(--s-2) 0 0;font-size:var(--t-xl);font-weight:800;line-height:var(--lh-tight);letter-spacing:var(--track-tight)}.viz__lead,.viz-note{margin:var(--s-2) 0 0;color:var(--fg-muted);font-size:var(--t-base);line-height:var(--lh-snug)}.viz-note{margin-top:var(--s-3);font-size:var(--t-sm)}.viz-sub{margin:var(--s-5) 0 var(--s-3);font-size:var(--t-base);letter-spacing:var(--track-tight);font-weight:700}.viz p{margin:0}.viz ul,.viz ol{margin:0;padding:0;list-style:none}.viz li{margin:0}.viz-link{font-weight:700}.viz-btn{align-items:center;gap:var(--s-1);min-height:44px;padding:var(--s-2) var(--s-4);background:linear-gradient(120deg, var(--accent), var(--fx-cyan));color:var(--accent-fg);font:inherit;font-size:var(--t-base);cursor:pointer;border:1px solid #0000;border-radius:999px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex}.viz-btn:hover{color:var(--accent-fg);box-shadow:0 8px 20px var(--fx-glow-strong);transform:translateY(-2px)}.viz-btn--ghost{background:var(--bg-card);border-color:var(--line-strong);color:var(--fg)}.viz-btn--ghost:hover{color:var(--accent);border-color:var(--accent)}.viz [style*=--i]{transition-delay:calc(var(--i,0) * 70ms)}html:not(.viz-js) .viz,.viz.is-live{--live:1}.viz{--live:0}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--s-1);padding:var(--s-2) var(--s-3);border:1px solid var(--accent-line);background:var(--bg-card);font-size:var(--t-base);opacity:calc(.25 + var(--live) * .75);translate:0 calc((1 - var(--live)) * 10px);border-radius:999px;font-weight:600;transition:opacity .5s,translate .5s cubic-bezier(.3,1.5,.5,1);display:inline-flex}.deadline{align-items:center;gap:var(--s-1) var(--s-3);margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--radius);background:var(--n-bg-orange);grid-template-columns:auto 1fr;display:grid}.deadline__clock{grid-row:span 2;font-size:1.6rem;animation:1s steps(2,end) infinite fx-tick}@keyframes fx-tick{50%{rotate:12deg}}.deadline__track{background:color-mix(in srgb, var(--n-orange) 20%, transparent);border-radius:999px;height:8px;overflow:hidden}.deadline__fill{height:100%;width:calc(var(--live) * 100%);border-radius:inherit;background:linear-gradient(90deg, var(--n-orange), var(--n-red));transition:width 2.4s cubic-bezier(.2,.8,.2,1);display:block}.deadline__text{font-size:var(--t-base);line-height:var(--lh-snug)}.steps{gap:var(--s-4);display:grid;position:relative;margin-top:var(--s-5)!important}.steps:before{content:"";background:linear-gradient(var(--viz-a), var(--viz-c));transform-origin:top;width:3px;scale:1 var(--live);border-radius:3px;transition:scale 1.6s cubic-bezier(.2,.8,.2,1);position:absolute;top:12px;bottom:12px;left:23px}.step{gap:var(--s-3);display:flex;position:relative}.step__badge{background:var(--bg-card);border:2px solid var(--accent);width:48px;height:48px;box-shadow:0 0 0 5px var(--accent-soft);z-index:1;border-radius:50%;flex:none;place-items:center;font-size:1.3rem;display:grid}.step__body{min-width:0;padding-top:var(--s-1)}.step__n{color:var(--accent);font-size:var(--t-xs);letter-spacing:var(--track-wide);font-weight:800;display:block}.step__title{font-weight:700;line-height:var(--lh-snug)}.step__desc{color:var(--fg-muted);font-size:var(--t-base);line-height:var(--lh-snug);margin-top:var(--s-1)!important}.step__actions{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.code-chip{align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-1) var(--s-3);border:1.5px dashed var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--fg);font:inherit;cursor:pointer;display:inline-flex}.code-chip__label{color:var(--fg-muted);font-size:var(--t-sm)}.code-chip__value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--t-lg);letter-spacing:.08em;font-weight:800}.code-chip__hint{color:var(--accent);font-size:var(--t-sm);font-weight:700}.is-copied .code-chip__hint:after,.is-copied.viz-btn:after{content:" ✓"}.guest{margin-top:var(--s-5);padding:var(--s-4);border-radius:var(--radius);background:var(--bg-soft)}.guest__title{font-weight:700}.guest__track{align-items:center;gap:var(--s-2);margin:var(--s-3) 0;flex-wrap:wrap;display:flex}.visit-dot{background:var(--accent);width:34px;height:34px;color:var(--accent-fg);font-weight:800;font-size:var(--t-sm);scale:calc(.4 + var(--live) * .6);opacity:calc(.3 + var(--live) * .7);transition:scale .5s cubic-bezier(.3,1.6,.5,1),opacity .5s;transition-delay:calc(var(--i) * .18s + .3s);border-radius:50%;place-items:center;display:grid}.guest__goal{margin-left:var(--s-1);color:var(--n-green);font-weight:800}.guest__desc{color:var(--fg-muted);font-size:var(--t-sm)}.nick{margin-top:var(--s-5);padding:var(--s-4);border:1px solid var(--accent-line);border-radius:var(--radius);background:linear-gradient(135deg, var(--accent-soft), var(--bg-card));scroll-margin-top:calc(var(--header-h) + var(--s-4))}.nick__title{font-weight:800}.nick__fields{gap:var(--s-3);margin-top:var(--s-3);display:grid}@media (width>=40rem){.nick__fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.nick__field{gap:var(--s-1);font-size:var(--t-sm);font-weight:700;display:grid}.nick__field small{color:var(--fg-muted);font-weight:400}.nick__field input,.nick__field select{width:100%;min-height:44px;padding:var(--s-2) var(--s-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--fg);font:inherit;font-size:1rem}.nick__preview{align-items:center;gap:var(--s-3);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.nick__out{padding:var(--s-2) var(--s-4);background:var(--fg);color:var(--bg);font-size:var(--t-lg);letter-spacing:.02em;box-shadow:0 6px 18px var(--fx-glow-strong);border-radius:999px;font-weight:800}.nick__out.is-bump{animation:.35s cubic-bezier(.3,1.6,.5,1) fx-bump}@keyframes fx-bump{40%{scale:1.08}}.rule-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(12.5rem,100%),1fr));display:grid}.rule-card{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);opacity:calc(.2 + var(--live) * .8);translate:0 calc((1 - var(--live)) * 16px);transition:opacity .6s,translate .6s cubic-bezier(.2,.8,.2,1),border-color .2s,box-shadow .2s}.rule-card:hover{border-color:var(--accent-line);box-shadow:0 10px 26px var(--fx-glow)}.rule-card__icon{width:44px;height:44px;margin-bottom:var(--s-2);background:linear-gradient(135deg, var(--accent-soft), var(--bg-soft));border-radius:14px;place-items:center;font-size:1.35rem;display:inline-grid}.rule-card:hover .rule-card__icon{animation:.7s fx-bob}.rule-card__title{font-weight:800;line-height:var(--lh-snug)}.rule-card__desc{color:var(--fg-muted);font-size:var(--t-sm);line-height:var(--lh-snug);margin-top:var(--s-1)!important}.strikes{align-items:center;gap:var(--s-2);margin-top:var(--s-4);padding:var(--s-3);border-radius:var(--radius);background:var(--n-bg-red);flex-wrap:wrap;display:flex}.strike{align-items:center;gap:var(--s-1);padding:var(--s-1) var(--s-3);background:var(--bg-card);color:var(--n-red);font-size:var(--t-sm);border-radius:999px;font-weight:800;display:inline-flex}.strike--out{background:var(--n-red);color:var(--bg)}.strike__arrow{color:var(--n-red);font-weight:800}.nick-change__row{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.nick-change__app{padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm);background:var(--bg-soft);font-weight:700;font-size:var(--t-base)}.nick-change__plus,.nick-change__eq{color:var(--accent);font-weight:800}.nick-change__label{color:var(--fg-muted);font-size:var(--t-sm);margin-top:var(--s-4)!important}.nick-change__sample{padding:var(--s-2) var(--s-4);background:var(--fg);color:var(--bg);border-radius:999px;font-weight:800;display:inline-block;margin-top:var(--s-2)!important}.nick-change__old{color:var(--fx-ring-c)}.viz--compact .viz__title{font-size:var(--t-lg)}.mini-tiles{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));display:grid}.mini-tile{gap:0 var(--s-2);padding:var(--s-3);border-radius:var(--radius-sm);background:var(--bg-soft);font-size:var(--t-sm);line-height:var(--lh-snug);grid-template-columns:auto 1fr;display:grid}.mini-tile>span:first-child{grid-row:span 2;font-size:1.2rem}.mini-tile>span:last-child{color:var(--fg-muted)}.flow{gap:var(--s-3);counter-reset:flow;display:grid}@media (width>=40rem){.flow{grid-template-columns:repeat(4,minmax(0,1fr))}}.flow__item{padding:var(--s-4) var(--s-3) var(--s-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);opacity:calc(.2 + var(--live) * .8);scale:calc(.94 + var(--live) * .06);transition:opacity .5s,scale .5s cubic-bezier(.3,1.5,.5,1);position:relative}.flow__item--key{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), 0 10px 24px var(--fx-glow)}.flow__icon{font-size:1.5rem}.flow__n{top:var(--s-2);right:var(--s-3);color:var(--accent);font-size:var(--t-xl);opacity:.35;font-weight:900;position:absolute}.flow__title{font-weight:800;line-height:var(--lh-snug);margin-top:var(--s-2)!important}.flow__desc{color:var(--fg-muted);font-size:var(--t-sm);line-height:var(--lh-snug);margin-top:var(--s-1)!important}.escalate{gap:var(--s-2);counter-reset:esc;flex-wrap:wrap;display:flex;margin-top:var(--s-4)!important}.escalate li{align-items:center;gap:var(--s-1);padding:var(--s-2) var(--s-3);background:var(--n-bg-red);font-size:var(--t-sm);border-radius:999px;display:inline-flex}.escalate li+li:before{content:"→";margin-right:var(--s-1);color:var(--n-red);font-weight:800}.type-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));display:grid}.type-card{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);opacity:calc(.2 + var(--live) * .8);rotate:calc((1 - var(--live)) * -3deg);transition:opacity .6s,rotate .6s cubic-bezier(.3,1.5,.5,1);position:relative}.type-card__icon{font-size:2rem}.type-card__name{align-items:center;gap:var(--s-2);font-size:var(--t-lg);font-weight:800;display:flex;margin-top:var(--s-1)!important}.type-card__who{background:var(--accent-soft);color:var(--accent);font-size:var(--t-xs);border-radius:999px;padding:.1rem .5rem;font-weight:700}.type-card__points{color:var(--fg-muted);font-size:var(--t-sm);line-height:var(--lh-snug);margin-top:var(--s-2)!important}.type-card__points li:before{content:"• ";color:var(--accent)}.unlock{gap:var(--s-1);margin-top:var(--s-3);padding:var(--s-3);border-radius:var(--radius-sm);background:var(--bg-soft);font-size:var(--t-sm);display:grid;position:relative}.unlock__row{align-items:center;gap:var(--s-2);display:flex}.unlock__label{min-width:5.5em;font-weight:700}.unlock__dots{gap:4px;display:flex}.unlock__dot{background:var(--accent);width:16px;height:16px;box-shadow:0 0 10px var(--fx-glow-strong);border-radius:50%;animation:2.8s ease-in-out infinite fx-pop}.unlock__dot:nth-child(2){animation-delay:.3s}.unlock__dot:nth-child(3){animation-delay:.6s}@keyframes fx-pop{0%,60%,to{scale:1}30%{scale:1.35}}.unlock__need{color:var(--accent);font-weight:800}.unlock__or{color:var(--fg-muted);font-size:var(--t-xs);font-weight:700}.unlock__key{right:var(--s-3);font-size:1.6rem;animation:3s ease-in-out infinite fx-float;position:absolute;top:50%;translate:0 -50%}.manners{gap:var(--s-5);display:grid}.checklist{padding:var(--s-4);border-radius:var(--radius);background:var(--bg-soft)}.checklist .viz-sub{margin-top:0}.checklist__items{gap:var(--s-2);display:grid}.check{align-items:center;gap:var(--s-3);min-height:48px;padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;transition:border-color .2s,background .2s;display:flex}.check input{opacity:0;pointer-events:none;position:absolute}.check__box{border:2px solid var(--line-strong);border-radius:8px;flex:none;place-items:center;width:24px;height:24px;transition:background .2s,border-color .2s,scale .3s cubic-bezier(.3,1.6,.5,1);display:grid}.check input:checked~.check__box{background:var(--accent);border-color:var(--accent);scale:1.1}.check input:checked~.check__box:after{content:"✓";color:var(--accent-fg);font-size:.9rem;font-weight:900}.check input:focus-visible~.check__box{outline:3px solid var(--accent);outline-offset:2px}.check:has(input:checked){border-color:var(--accent-line);background:var(--accent-soft)}.check:has(input:checked) .check__text{text-decoration:line-through;text-decoration-color:var(--accent);color:var(--fg-muted)}.check__icon{font-size:1.3rem}.check__text{font-weight:600;line-height:var(--lh-snug);display:grid}.check__text small{color:var(--fg-muted);font-weight:400}.checklist__meter{height:10px;margin-top:var(--s-3);background:var(--line);border-radius:999px;overflow:hidden}.checklist__fill{height:100%;width:calc(var(--done,0) * 100%);border-radius:inherit;background:linear-gradient(90deg, var(--viz-a), var(--viz-b), var(--viz-c));background-size:200% 100%;transition:width .5s cubic-bezier(.3,1.4,.5,1);animation:3s linear infinite fx-flow;display:block}@keyframes fx-flow{to{background-position:200% 0}}.checklist__status{font-size:var(--t-sm);color:var(--fg-muted);font-weight:700;margin-top:var(--s-2)!important}.checklist.is-done .checklist__status{color:var(--n-green);animation:.5s fx-bump}.pool__stage{aspect-ratio:640/300;border-radius:var(--radius);box-shadow:0 20px 40px -20px var(--fx-glow-strong);position:relative}.pool__svg{width:100%;height:100%;display:block}.pool__deck{fill:var(--bg-soft);stroke:var(--line)}.pool__water-a{stop-color:var(--pool-a)}.pool__water-b{stop-color:var(--pool-b)}.pool__shimmer{opacity:.35;animation:4s ease-in-out infinite alternate fx-shimmer}.pool__caustic{fill:none;stroke:var(--fx-light);stroke-width:2px}@keyframes fx-shimmer{to{opacity:.7}}.pool__rope{stroke:var(--fx-foam);stroke-width:4px}.pool__rope-beads{stroke:var(--pool-red);stroke-width:6px;stroke-dasharray:6 10;stroke-linecap:round}.pool__lane-label{fill:var(--pool-white);paint-order:stroke fill;stroke:var(--pool-ink);stroke-width:4px;stroke-linejoin:round;font-size:14px;font-weight:800}.pool__path{fill:none;stroke:var(--fx-foam);stroke-width:1.5px;stroke-dasharray:5 7;animation:1.2s linear infinite fx-dash}@keyframes fx-dash{to{stroke-dashoffset:-24px}}.pool__arrow{fill:none;stroke:var(--pool-white);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.pool__swimmer ellipse{fill:var(--pool-skin)}.pool__head{fill:var(--pool-cap-a)}.pool__swimmer--b .pool__head{fill:var(--pool-cap-b)}.pool__zone{fill:var(--pool-cap-b);opacity:.25;transition:opacity .3s}.pool__zone.is-on{opacity:.85;animation:.9s ease-in-out infinite alternate fx-blink}@keyframes fx-blink{to{opacity:.4}}.pool__nodive circle{fill:var(--pool-white);stroke:var(--pool-red);stroke-width:3px}.pool__nodive line{stroke:var(--pool-red);stroke-width:3px}.pool__spot{left:var(--x);top:var(--y);border:2px solid var(--pool-white);background:var(--fg);width:32px;height:32px;color:var(--bg);font:inherit;font-size:var(--t-sm);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-weight:900;transition:scale .2s,background .2s;display:grid;position:absolute;translate:-50% -50%;box-shadow:0 4px 12px #0000004d}.pool__spot:before{content:"";border-radius:50%;position:absolute;inset:-8px}@media (width<=40rem){.pool__spot{border-width:1.5px;width:24px;height:24px;font-size:11px}.pool__spot:before{inset:-12px}}.pool__spot:after{content:"";border:2px solid var(--pool-white);animation:2.4s ease-out infinite fx-ping;animation-delay:calc(var(--x) * 20ms);pointer-events:none;border-radius:50%;position:absolute;inset:-4px}@keyframes fx-ping{0%{opacity:.8;scale:1}80%,to{opacity:0;scale:1.9}}.pool__spot:hover,.pool__spot.is-on{background:var(--accent);color:var(--accent-fg);scale:1.18}.pool__tip{min-height:3em;padding:var(--s-3) var(--s-4);border-radius:var(--radius-sm);background:var(--fg);color:var(--bg);font-weight:700;line-height:var(--lh-snug);margin-top:var(--s-3)!important}.pool__tip.is-bump{animation:.35s fx-bump}.pool__rules{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(min(11rem,100%),1fr));display:grid;margin-top:var(--s-3)!important}.pool__rule{align-items:center;gap:var(--s-2);width:100%;min-height:44px;padding:var(--s-2);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--fg);font:inherit;font-size:var(--t-sm);text-align:left;cursor:pointer;font-weight:600;display:flex}.pool__rule.is-on{border-color:var(--accent);background:var(--accent-soft)}.pool__rule-n{background:var(--fg);width:24px;height:24px;color:var(--bg);font-size:var(--t-xs);border-radius:50%;flex:none;place-items:center;font-weight:900;display:grid}.lctl{gap:var(--s-2) var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.seg{background:var(--bg-sunken);border-radius:999px;padding:3px;display:inline-flex}.seg__btn{min-height:40px;padding:0 var(--s-3);color:var(--fg-muted);font:inherit;font-size:var(--t-sm);cursor:pointer;background:0 0;border:0;border-radius:999px;font-weight:700;transition:background .2s,color .2s,box-shadow .2s}.seg__btn[aria-pressed=true]{background:var(--bg-card);color:var(--accent);box-shadow:var(--shadow-sm), 0 0 0 1px var(--accent-line)}.fchips{gap:var(--s-2);flex-wrap:wrap;display:flex}.fchip{min-height:40px;padding:0 var(--s-3);border:1px solid var(--line-strong);background:var(--bg-card);color:var(--fg);font:inherit;font-size:var(--t-sm);cursor:pointer;border-radius:999px;font-weight:600;transition:all .2s}.fchip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-fg);box-shadow:0 6px 16px var(--fx-glow-strong)}.lrows{gap:var(--s-3);display:grid}.lrow{gap:var(--s-1) var(--s-3);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);transition:opacity .3s,translate .3s;display:grid}@media (width>=40rem){.lrow{grid-template-columns:9.5rem 1fr;align-items:center}.lrow__meta{grid-column:2}}.lrow[hidden]{display:none}.lrow__name{font-weight:800;line-height:var(--lh-snug)}.lbar{align-items:center;gap:var(--s-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.lessons[data-mode=three] .lbar[data-mode=two],.lessons[data-mode=two] .lbar[data-mode=three]{display:none}html:not(.viz-js) .lbar[data-mode=two]{margin-top:var(--s-1);display:grid}.lbar__track{background:var(--bg-sunken);border-radius:999px;height:26px;position:relative;overflow:hidden}.lbar__fill{width:calc(var(--live) * var(--vmax) * 100%);border-radius:inherit;background:linear-gradient(90deg, transparent calc(var(--v) / var(--vmax) * 100%), var(--fx-light) 0), linear-gradient(90deg, var(--viz-a), var(--viz-b));transition:width 1.2s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0}.lbar__fill:after{content:"";background:repeating-linear-gradient(115deg, transparent 0 12px, var(--fx-light) 12px 16px);opacity:.4;animation:1.6s linear infinite fx-slide;position:absolute;inset:0}.lbar--prepaid .lbar__fill{background:repeating-linear-gradient(135deg, var(--bg-card) 0 4px, transparent 4px 11px), linear-gradient(90deg, transparent calc(var(--v) / var(--vmax) * 100%), var(--fx-light) 0), linear-gradient(90deg, var(--viz-a), var(--viz-b))}.lbar--prepaid .lbar__fill:after{display:none}@keyframes fx-slide{to{background-position:32px 0}}.lbar__swimmer{top:50%;left:calc(var(--live) * var(--vmax) * 100%);font-size:1rem;transition:left 1.2s cubic-bezier(.2,.8,.2,1);animation:.9s ease-in-out infinite alternate fx-stroke;position:absolute;translate:-105% -50%}.lbar__num{min-width:5.5rem;color:var(--fg);font-size:var(--t-sm);white-space:nowrap;justify-items:end;font-weight:800;line-height:1.2;display:grid}.lbar__num small{color:var(--fg-muted);font-size:var(--t-xs);font-weight:600}.lbar--none,.lbar--text{padding-inline:var(--s-3);color:var(--fg-muted);font-size:var(--t-sm);align-items:center;font-weight:700;display:flex}.lbar--text{border-radius:var(--radius-sm);background:repeating-linear-gradient(135deg, var(--bg-sunken) 0 10px, var(--bg-soft) 10px 20px);height:auto;min-height:34px;color:var(--fg)}.lrow__meta{align-items:center;gap:var(--s-1) var(--s-3);flex-wrap:wrap;display:flex}.ease{font-size:var(--t-xs);color:var(--fg-muted);align-items:center;gap:2px;font-weight:800;display:inline-flex}.ease i{background:var(--line-strong);border-radius:7px 7px 2px 2px;width:12px;height:7px}.ease[style*=--ease\:1]{--ease-c:var(--n-green)}.ease[style*=--ease\:2]{--ease-c:var(--n-yellow)}.ease[style*=--ease\:3]{--ease-c:var(--n-orange)}.ease[style*=--ease\:4]{--ease-c:var(--n-red)}.ease[style*=--ease\:1] i:nth-child(-n+1),.ease[style*=--ease\:2] i:nth-child(-n+2),.ease[style*=--ease\:3] i:nth-child(-n+3),.ease[style*=--ease\:4] i:nth-child(-n+4){background:var(--ease-c)}.ease span{margin-left:var(--s-1);color:var(--ease-c,var(--fg-muted))}.lrow__note{color:var(--fg-muted);font-size:var(--t-xs);line-height:var(--lh-snug)}.lessons__empty{padding:var(--s-4);text-align:center;color:var(--fg-muted)}.cal__grid,.cal__row{align-items:center;gap:var(--s-1) var(--s-3);grid-template-columns:1fr;display:grid}@media (width>=40rem){.cal__grid,.cal__row{grid-template-columns:minmax(7rem,9rem) 1fr}}.cal__rows{gap:var(--s-2);display:grid;margin-top:var(--s-2)!important}.cal__when,.cal__live{font-size:var(--t-xs)}@media (width>=40rem){.cal__when,.cal__live{grid-column:2}}.cal__grid>.cal__name:empty{display:none}@media (width>=40rem){.cal__grid>.cal__name:empty{display:block}}.cal__when{color:var(--fg-muted)}.cal__live{background:var(--n-green);color:var(--bg);border-radius:999px;justify-self:start;padding:.1rem .5rem;font-weight:800;animation:1.6s ease-in-out infinite fx-pulse-soft}@keyframes fx-pulse-soft{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--n-green) 25%, transparent)}}.cal__name{font-size:var(--t-sm);font-weight:700;line-height:var(--lh-snug)}.cal__name small{color:var(--fg-muted);font-weight:400;display:block}.cal__days,.cal__track{grid-template-columns:repeat(31,1fr);height:22px;display:grid;position:relative}.cal__day{white-space:nowrap;color:var(--fg-faint);justify-content:center;font-size:10px;display:flex;overflow:visible}.cal__track{background:repeating-linear-gradient(90deg, var(--bg-sunken) 0 calc(100% / 31 - 1px), var(--bg-card) calc(100% / 31 - 1px) calc(100% / 31));border-radius:6px}.cal__seg{grid-column:var(--a) / calc(var(--b) + 1);background:linear-gradient(90deg, var(--viz-a), var(--viz-b));transform-origin:0;scale:var(--live) 1;border-radius:6px;grid-row:1;transition:scale 1s cubic-bezier(.2,.8,.2,1)}.cal__seg--unsure{background:repeating-linear-gradient(135deg, var(--viz-b) 0 6px, var(--viz-c) 6px 12px)}.cal__marker{top:-4px;bottom:-900%;left:calc((var(--today) - .5) / 31 * 100%);background:var(--n-red);width:2px;box-shadow:0 0 8px var(--n-red);pointer-events:none;z-index:2;position:absolute}.cal__marker:before{content:"오늘";background:var(--n-red);color:var(--bg);white-space:nowrap;border-radius:4px;padding:0 4px;font-size:10px;font-weight:800;position:absolute;top:-18px;left:50%;translate:-50%}.cal{margin-top:var(--s-4);position:relative;overflow:hidden}.cal__today{color:var(--accent);font-size:var(--t-sm)}.rental-top{gap:var(--s-4);display:grid}@media (width>=44rem){.rental-top{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}}.depth__stage{border-bottom:3px solid var(--line-strong);height:220px;padding-left:3.5rem;position:relative}.depth__person{z-index:2;height:calc(var(--person) * 100%);border-bottom:2px dashed var(--n-red);pointer-events:none;position:absolute;top:0;left:0;right:0}.depth__person:before{content:"";background:var(--n-red);opacity:.6;width:2px;position:absolute;top:0;bottom:0;left:1.1rem}.depth__person span{color:var(--n-red);white-space:nowrap;font-size:10px;font-weight:800;line-height:1.2;position:absolute;top:calc(100% + 3px);left:0}.depth__person:after{content:"🧍";font-size:1.8rem;line-height:1;position:absolute;bottom:2px;left:1.1rem;translate:-50%}.depth__cols{align-items:flex-start;gap:var(--s-3);height:100%;display:flex}.depth__col{flex:1;height:100%;position:relative}.depth__water{height:calc(var(--live) * var(--d) * 100%);background:linear-gradient(var(--pool-a), var(--pool-b));transition:height 1.6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * .15s);border-radius:0 0 12px 12px;position:absolute;inset:0 0 auto;overflow:hidden;box-shadow:inset 0 -10px 20px #0003}.depth__wave{background:radial-gradient(circle at 10px -4px, transparent 10px, var(--fx-foam) 11px) 0 0 / 20px 12px repeat-x;opacity:.7;width:200%;height:12px;animation:2.5s linear infinite fx-wave;position:absolute;top:-6px;left:0}.depth__val{top:var(--s-3);white-space:nowrap;word-break:normal;overflow-wrap:normal;color:var(--pool-white);font-weight:900;font-size:var(--t-lg);text-shadow:0 2px 6px #00000059;position:absolute;left:50%;translate:-50%}.depth__name{word-break:keep-all;text-align:center;font-size:11px;font-weight:700;line-height:1.2;position:absolute;top:calc(100% + 6px);left:0;right:0}.depth{padding-bottom:var(--s-6)}.cost__list{gap:var(--s-3);display:grid}.cost{align-items:center;gap:0 var(--s-2);grid-template-columns:7.5rem 1fr auto;display:grid}.cost__name{font-size:var(--t-sm);font-weight:700;line-height:var(--lh-snug)}.cost__track{background:var(--bg-sunken);border-radius:999px;height:14px;overflow:hidden}.cost__fill{height:100%;width:calc(var(--live) * var(--v) * 100%);border-radius:inherit;background:linear-gradient(90deg, var(--n-yellow), var(--n-orange), var(--n-red));min-width:6px;transition:width 1.4s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * .12s);display:block}.cost__num{font-size:var(--t-sm);white-space:nowrap;font-weight:800}.cost__note{color:var(--fg-muted);font-size:var(--t-xs);line-height:var(--lh-snug);grid-column:2/-1}.picker{margin-top:var(--s-4)}.picker__tabs{gap:var(--s-2);padding-bottom:var(--s-2);flex-wrap:wrap;display:flex}.picker__tab{min-height:40px;padding:0 var(--s-3);border:1px solid var(--line-strong);background:var(--bg-card);color:var(--fg);font:inherit;font-size:var(--t-sm);cursor:pointer;border-radius:999px;flex:none;font-weight:700}.picker__tab[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.picker__panel{margin-top:var(--s-2);padding:var(--s-4);border-radius:var(--radius);background:var(--bg-soft)}.viz-js .picker__panel:not([data-active]){display:none}.viz-js .picker__panel[data-active]{animation:.45s cubic-bezier(.2,.8,.2,1) fx-surface}.picker__name{font-size:var(--t-lg);font-weight:800}.badges{gap:var(--s-1);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.badge{background:var(--bg-card);border:1px solid var(--line);font-size:var(--t-xs);border-radius:999px;padding:.15rem .55rem;font-weight:700}.badge--yes{background:var(--n-bg-green);color:var(--n-green);border-color:#0000}.badge--no{background:var(--n-bg-red);color:var(--n-red);border-color:#0000}.picker__facts{gap:var(--s-1);font-size:var(--t-sm);display:grid;margin-top:var(--s-3)!important}.picker__facts li:before{content:"› ";color:var(--accent);font-weight:800}.tl-pair{gap:var(--s-4);display:grid}@media (width>=44rem){.tl-pair{grid-template-columns:1.4fr 1fr}}.tl__list{gap:var(--s-3);display:grid;position:relative}.tl__list:before{content:"";background:linear-gradient(var(--viz-a), var(--viz-c));transform-origin:top;width:2px;scale:1 var(--live);transition:scale 1.4s;position:absolute;top:8px;bottom:8px;left:17px}.tl__item{align-items:flex-start;gap:var(--s-3);opacity:calc(.2 + var(--live) * .8);transition:opacity .5s;display:flex;position:relative}.tl__dot{background:var(--bg-card);border:2px solid var(--accent);z-index:1;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.tl__text{font-size:var(--t-sm);font-weight:700;line-height:var(--lh-snug);padding-top:6px;display:grid}.tl__text small{color:var(--fg-muted);font-weight:400}.zones .seg{margin-bottom:var(--s-4)}.zaxis,.zrow__btn{align-items:center;gap:var(--s-2);grid-template-columns:2.6rem 1fr 4.2rem;display:grid}.zaxis__id{color:var(--fg-muted);font-size:var(--t-xs);font-weight:700}.zaxis__track{height:18px;position:relative}.zaxis__tick{left:calc(var(--p) * 100%);white-space:nowrap;word-break:normal;overflow-wrap:normal;color:var(--fg-faint);font-size:10px;position:absolute;translate:-50%}.zrows{gap:var(--s-2);display:grid}.zrow__btn{width:100%;min-height:44px;padding:var(--s-1) 0;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0}.zrow__id{font-weight:900;font-size:var(--t-sm)}.zrow__track{background:repeating-linear-gradient(90deg, var(--bg-sunken) 0 calc(100% / 11 - 1px), var(--line) calc(100% / 11 - 1px) calc(100% / 11));border-radius:999px;height:30px;position:relative}.zbar{top:0;bottom:0;left:calc(var(--a) * 100%);width:calc((var(--b) - var(--a)) * 100% * var(--live));background:hsl(calc(200 - var(--zi) * 38) 80% 28%);box-shadow:0 4px 14px hsl(calc(200 - var(--zi) * 38) 80% 40% / 45%);border-radius:999px;justify-content:center;align-items:center;transition:left .7s cubic-bezier(.3,1.3,.5,1),width .9s cubic-bezier(.3,1.3,.5,1),opacity .3s;display:flex;position:absolute}.zbar__label{color:var(--pool-white);font-size:var(--t-xs);white-space:nowrap;text-shadow:0 1px 2px #0006;font-weight:800}.zbar--na{background:repeating-linear-gradient(135deg, var(--bg-sunken) 0 8px, var(--bg-soft) 8px 16px);width:auto;box-shadow:none;left:0;right:0}.zbar--na .zbar__label{color:var(--fg-muted);text-shadow:none}.zones[data-hr-mode=all] .zbar[data-hr=thirty],.zones[data-hr-mode=thirty] .zbar[data-hr=all]{opacity:0;pointer-events:none}.zrow__val{font-size:var(--t-sm);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end;font-weight:800}.zones[data-hr-mode=all] .zrow__val[data-hr=thirty],.zones[data-hr-mode=thirty] .zrow__val[data-hr=all]{display:none}.zrow__detail{margin:var(--s-1) 0 var(--s-2) 3.1rem;padding:var(--s-3);border-radius:var(--radius-sm);background:var(--bg-soft);font-size:var(--t-sm);line-height:var(--lh-snug);display:none}html:not(.viz-js) .zrow__detail,.zrow.is-open .zrow__detail{animation:.4s fx-surface;display:block}.zchip{margin:0 var(--s-1) var(--s-2) 0;background:var(--bg-card);font-size:var(--t-xs);border-radius:999px;padding:.1rem .5rem;font-weight:700;display:inline-block}.week .seg{margin-bottom:var(--s-4)}.wcols{align-items:end;gap:var(--s-2);grid-template-columns:repeat(6,1fr);height:240px;display:grid}.wcol{grid-template-rows:auto 1fr auto auto;justify-items:center;height:100%;display:grid}.wcol__num{white-space:nowrap;font-size:11px;font-weight:800}.week[data-w-mode=m] [data-w=k],.week[data-w-mode=k] [data-w=m]{display:none}.wcol__bar{align-self:stretch;align-items:flex-end;width:100%;max-width:56px;display:flex;position:relative}.wcol__water{width:100%;height:calc(var(--live) * var(--m) * 100%);background:linear-gradient(var(--viz-c), var(--viz-a));box-shadow:0 8px 20px var(--fx-glow);transition:height 1.2s cubic-bezier(.3,1.2,.5,1);transition-delay:calc(var(--i) * 90ms);border-radius:12px 12px 6px 6px;position:relative;overflow:hidden}.week[data-w-mode=k] .wcol__water{height:calc(var(--live) * var(--k) * 100%);background:linear-gradient(var(--n-yellow), var(--n-orange))}.wcol__water:before{content:"";background:radial-gradient(circle at 8px -3px, transparent 8px, var(--fx-foam) 9px) 0 0 / 16px 10px repeat-x;width:200%;height:10px;animation:2s linear infinite fx-wave;position:absolute;top:-5px;left:0}.wcol__day{margin-top:var(--s-1);font-weight:900;font-size:var(--t-sm)}.wcol__min{color:var(--fg-muted);font-size:11px}.week__total{color:var(--fg-muted);font-size:var(--t-sm);margin-top:var(--s-3)!important}.original{margin:var(--s-3) 0 var(--s-5);border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--bg-soft)}.original__summary{align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-2) var(--s-4);cursor:pointer;color:var(--fg-muted);font-size:var(--t-sm);font-weight:700;list-style:none;display:flex}.original__summary::-webkit-details-marker{display:none}.original__summary:before{content:"📄"}.original__summary:after{content:"▾";margin-left:auto;transition:rotate .3s}.original[open]>.original__summary:after{rotate:180deg}.original__body{padding:0 var(--s-4) var(--s-4)}.original__body>:first-child{margin-top:0}@supports selector(::details-content){.original::details-content{block-size:0;transition:block-size .35s cubic-bezier(.2, .8, .2, 1), content-visibility .35s allow-discrete;overflow:clip}.original[open]::details-content{block-size:auto}}:root{--daylight:1;--sheet-bg:color-mix(in srgb, var(--bg) 88%, transparent);--sheet-line:color-mix(in srgb, var(--fx-foam) 60%, transparent)}@media (prefers-color-scheme:dark){:root{--sheet-bg:color-mix(in srgb, var(--bg) 86%, transparent);--sheet-line:color-mix(in srgb, var(--fx-light) 30%, transparent)}}[data-daypart=dawn],[data-daypart=morning]{--fx-glow:#ffaabe3d;--fx-glow-strong:#ff96aa6b}[data-daypart=golden],[data-daypart=dusk]{--fx-glow:#ff965a42;--fx-glow-strong:#ff825073}[data-daypart=night]{--fx-glow:#7896ff3d;--fx-glow-strong:#78a0ff73}html{background:var(--bg)}body{background:0 0}.scene{z-index:-1;background:var(--pool-b);position:fixed;inset:0;overflow:hidden}.scene__stack{transform-origin:50%;will-change:transform;position:absolute;inset:0;transform:scale(1.08)}.scene__img{object-fit:cover;object-position:50% 35%;width:100%;height:100%;position:absolute;inset:0}.scene__img--fade{opacity:0}.scene__img:not([src]){visibility:hidden}.scene__canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scene__veil{background:radial-gradient(120% 70% at 50% 110%, color-mix(in srgb, var(--bg) 55%, transparent), transparent 70%), linear-gradient(to bottom, rgb(0 0 0/calc((1 - var(--daylight)) * 25%)), transparent 30%);pointer-events:none;position:absolute;inset:0}.sheet{border:1px solid var(--sheet-line);background:var(--sheet-bg);backdrop-filter:blur(22px)saturate(1.4);border-bottom:0;border-radius:28px 28px 0 0;max-width:88rem;margin:0 auto;position:relative;box-shadow:0 -24px 60px -20px #00000047}.sheet:before{content:"";background:linear-gradient(90deg, transparent, var(--fx-ring-c), var(--fx-ring-b), transparent);opacity:.8;background-size:200% 100%;border-radius:28px 28px 0 0;height:2px;animation:6s linear infinite fx-flow;position:absolute;inset:-1px -1px auto}.sheet--doc{padding-bottom:var(--s-6);margin-top:clamp(120px,24vh,260px)}main{padding-bottom:0}.site-footer{background:var(--sheet-bg);backdrop-filter:blur(22px);margin-top:0}.site-header{background:color-mix(in srgb, var(--bg) 72%, transparent)}.stage{min-height:calc(100svh - var(--header-h));padding:var(--s-7) var(--gutter) clamp(90px, 14vh, 150px);perspective:1200px;align-items:center;display:grid;position:relative;overflow:hidden}.stage__inner{z-index:2;gap:var(--s-6);align-items:center;width:100%;max-width:62rem;margin:0 auto;display:grid;position:relative}@media (width>=56rem){.stage__inner{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}.stage__card{padding:var(--s-6) var(--s-5);border:1px solid var(--sheet-line);background:color-mix(in srgb, var(--bg) 78%, transparent);backdrop-filter:blur(18px)saturate(1.5);box-shadow:0 30px 80px -30px #00000073, inset 0 1px 0 var(--fx-light);transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transform-style:preserve-3d;border-radius:28px;transition:transform .4s cubic-bezier(.2,.8,.2,1);animation:1.1s cubic-bezier(.2,.8,.2,1) both fx-rise-in}@keyframes fx-rise-in{0%{opacity:0;filter:blur(8px);translate:0 40px}}.stage__card .hero{padding:0}.stage__daypart{align-items:center;gap:var(--s-1);margin-bottom:var(--s-3);background:var(--accent-soft);color:var(--accent);font-size:var(--t-xs);letter-spacing:var(--track-wide);border-radius:999px;padding:.2rem .7rem;font-weight:800;display:inline-flex}.polaroid{background:var(--pool-white);max-width:26rem;transform:rotate(-4deg) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));border-radius:10px;margin:0 auto;padding:12px 12px 44px;transition:transform .5s cubic-bezier(.2,.8,.2,1);animation:1.3s cubic-bezier(.2,.8,.2,1) .2s both fx-rise-in,6s ease-in-out 1.5s infinite fx-bobble;position:relative;box-shadow:0 40px 70px -30px #0000008c}@keyframes fx-bobble{50%{translate:0 -10px}}.polaroid img{aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;border-radius:4px;width:100%;display:block}.polaroid figcaption{color:var(--pool-ink);font-size:var(--t-sm);text-align:center;font-weight:700;position:absolute;bottom:10px;left:0;right:0}.polaroid:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffff8c 48%,#0000 60%) 0 0/250% 100%;border-radius:4px;animation:5s ease-in-out infinite fx-gloss;position:absolute;inset:12px 12px 44px}@keyframes fx-gloss{0%,40%{background-position:120% 0}to{background-position:-120% 0}}.stage__scroll{z-index:4;padding:var(--s-2) var(--s-3);backdrop-filter:blur(8px);color:var(--pool-white);font-size:var(--t-xs);letter-spacing:var(--track-wide);background:#081e309e;border-radius:999px;justify-items:center;gap:4px;font-weight:800;text-decoration:none;display:grid;position:absolute;bottom:clamp(56px,9vh,96px);left:50%;translate:-50%}@media (width<=55.99rem){.stage__scroll{margin-top:var(--s-5);justify-self:center;position:relative;bottom:auto;left:auto;translate:none}.stage{min-height:auto;padding-bottom:var(--s-6)}.polaroid{max-width:min(26rem,78vw)}}@media (width>=56rem){.stage__scroll-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.stage__scroll:after{content:"";background:radial-gradient(circle,currentColor 2px,#0000 3px) 50% 8px/6px 6px no-repeat;border:2px solid;border-radius:12px;width:22px;height:34px;animation:1.8s ease-in-out infinite fx-scroll}@keyframes fx-scroll{50%{background-position:50% 18px}}.hero-water{pointer-events:none;z-index:3;height:100%;position:absolute;inset:auto 0 0}.hero-water .cover__wave path{fill:var(--sheet-bg)}.hero-water .cover__swimmer{bottom:clamp(26px,4vw,44px)}.sheet--home{padding-top:var(--s-4);border-top:0;border-radius:0;margin-top:-2px}.sheet--home:before{display:none}.sunclock{display:inline-flex}.sunclock__pill{align-items:center;gap:var(--s-1);min-height:44px;padding:0 var(--s-3) 0 var(--s-2);border:1px solid var(--sheet-line);background:color-mix(in srgb, var(--bg) 70%, transparent);backdrop-filter:blur(16px)saturate(1.6);color:var(--fg);font:inherit;font-size:var(--t-sm);cursor:pointer;box-shadow:0 10px 30px -10px var(--fx-glow-strong);border-radius:999px;font-weight:800;transition:transform .2s;display:inline-flex}.sunclock__pill:hover{transform:translateY(-2px)}.sunclock__icon{font-size:1.25rem;animation:4s ease-in-out infinite fx-float}.sunclock__city{color:var(--fg-muted);font-weight:600}@media (width<=40rem){.sunclock__city{display:none}}.is-preview .sunclock__pill{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), 0 10px 30px -10px var(--fx-glow-strong)}.sunclock__panel{top:calc(100% + var(--s-2));right:var(--gutter);width:min(20rem, calc(100vw - 2 * var(--gutter)));padding:var(--s-4);border:1px solid var(--sheet-line);background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(20px)saturate(1.5);border-radius:22px;animation:.35s cubic-bezier(.2,.8,.2,1) fx-surface;position:absolute;box-shadow:0 30px 60px -20px #0006}.sunclock__panel[hidden]{display:none}.sunclock__title{justify-content:space-between;align-items:center;margin:0;font-weight:800;display:flex}.sunclock__badge{background:var(--accent);color:var(--accent-fg);font-size:var(--t-xs);border-radius:999px;padding:.1rem .5rem;display:none}.is-preview .sunclock__badge{display:inline-block}.sunclock__arc{width:100%;margin:var(--s-2) 0;display:block}.sunclock__g1{stop-color:var(--pool-cap-a)}.sunclock__g2{stop-color:var(--pool-cap-b)}.sunclock__g3{stop-color:var(--n-orange)}.sunclock__track{fill:none;stroke:var(--line-strong);stroke-width:3px;stroke-dasharray:3 5}.sunclock__fill{fill:none;stroke:url(#sunclock-grad);stroke-width:4px;stroke-linecap:round}.sunclock__horizon{stroke:var(--fg-faint);stroke-width:1px}.sunclock__dot{fill:var(--pool-cap-b);stroke:var(--pool-white);stroke-width:2px;filter:drop-shadow(0 0 6px var(--pool-cap-b));transition:cx .3s,cy .3s}.sunclock__dot.is-moon{fill:var(--pool-white);filter:drop-shadow(0 0 6px var(--fx-ring-c))}.sunclock__times{gap:var(--s-2);text-align:center;grid-template-columns:repeat(3,1fr);margin:0;display:grid}.sunclock__times dt{color:var(--fg-muted);font-size:var(--t-xs)}.sunclock__times dd{font-size:var(--t-base);font-variant-numeric:tabular-nums;margin:0;font-weight:800}.sunclock__status{margin:var(--s-3) 0 0;color:var(--accent);font-size:var(--t-sm);text-align:center;font-weight:700}.sunclock__range{gap:var(--s-1);margin-top:var(--s-3);font-size:var(--t-sm);font-weight:700;display:grid}.sunclock__range input{width:100%;min-height:32px;accent-color:var(--accent)}.sunclock__jumps{gap:var(--s-1);margin-top:var(--s-2);grid-template-columns:repeat(4,1fr);display:grid}.sunclock__jumps button,.sunclock__live{min-height:40px;padding:0 var(--s-1);border:1px solid var(--line-strong);background:var(--bg-card);color:var(--fg);font:inherit;font-size:var(--t-xs);cursor:pointer;border-radius:12px;font-weight:700}.sunclock__jumps button:hover{border-color:var(--accent);color:var(--accent)}.sunclock__live{width:100%;margin-top:var(--s-2);background:var(--accent);color:var(--accent-fg);border-color:#0000}.sunclock__live[hidden]{display:none}.sunclock__note{margin:var(--s-3) 0 0;color:var(--fg-muted);font-size:var(--t-xs);text-align:center}
