:root{--section-gap:clamp(32px,5vw,56px);--page-title-size:clamp(38px,5.5vw,64px)}:root:not([data-theme=dark]){--accent:#087f75;--border:rgba(21,25,29,.24)}.main{padding-top:clamp(32px,5vw,56px);padding-bottom:var(--section-gap)}.projects-header,.writing-header,.page-header,.post-header{margin-top:0;margin-bottom:var(--section-gap)}.post-title,.page-header h1,.projects-header h1,.writing-header h1{font-size:var(--page-title-size);line-height:1.08;letter-spacing:-.045em;text-wrap:balance;overflow-wrap:break-word}.post-description,.contact-intro,.about-intro,.projects-header>p{font-size:clamp(16px,1.6vw,18px);line-height:1.65;max-width:65ch}.post-content{font-size:clamp(16px,1.5vw,18px);line-height:1.75}.post-content h2,.post-content h3,.project-entry h2,.writing-entry h2,.home-project-card h3{text-wrap:balance;overflow-wrap:break-word}.post-content :is(h2,h3,h4)[id]{scroll-margin-top:100px}:is(.project-entry__tags,.home-project-meta,.resume-chips){row-gap:8px}:is(button,input,select,textarea){accent-color:var(--accent)}:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}:is(.home-project-card,.project-entry,.writing-entry):focus-within{background:color-mix(in srgb,var(--accent) 6%,transparent)}:is(.home-project-card,.project-entry,.writing-entry):focus-within :is(.home-project-arrow,.project-entry__arrow,.writing-entry__arrow){color:var(--accent);transform:translateX(3px)}.magnetic-btn{will-change:transform;transition:transform .16s cubic-bezier(.2,.75,.25,1)}@media(prefers-reduced-motion:reduce),(hover:none){.magnetic-btn{transform:none!important;transition:none}}:is(.home-action,.resume-btn,.contact-btn,.contact-quick-btn,.post-action-btn,.motion-toggle,.header-icon-link,.site-graph__btn):focus-visible{border-color:var(--accent)}.header-icon-link:hover,.lang-switch a:hover,.motion-toggle:hover{background:var(--tertiary);color:var(--primary)}.post-content a:not(.anchor){text-decoration-thickness:1px;text-underline-offset:3px}.post-content a:not(.anchor):hover{color:var(--accent)}:root:not([data-theme=dark]) :is(.home-action-primary,.resume-btn-primary,.contact-btn-primary):hover{color:#fff}.external-indicator{display:inline-block;font-size:.8em;margin-inline-start:.25em;white-space:nowrap}.footer{max-width:var(--main-width);margin-inline:auto;padding:28px var(--gap);text-align:left;line-height:1.6}.footer-links{display:grid;grid-template-columns:1fr auto;gap:16px 24px;align-items:center}.footer-social{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}.footer-social a{border-bottom:0;display:inline-flex;align-items:center;min-height:44px;gap:4px}.footer-preferences{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.footer .motion-toggle{margin:0}.footer-credit{grid-column:1/-1;margin:0;padding-top:16px;border-top:1px solid var(--border);opacity:1;font-size:12px;line-height:1.8}.footer a:hover{color:var(--accent)}::highlight(language-untyped){color:transparent;text-shadow:none}@media(max-width:760px){.main{padding-top:30px}.post-content :is(h2,h3,h4)[id]{scroll-margin-top:20px}.footer-links{grid-template-columns:1fr;gap:12px}.footer-social{gap:8px 20px}.footer-preferences{display:grid;grid-template-columns:1fr 1fr}.footer .motion-toggle{padding:8px;font-size:12px}.project-entry__tags,.home-project-meta{font-size:11px;letter-spacing:.02em}}:root{--text-scale:1}:root[data-text-size=large]{--text-scale:1.15}:root[data-theme=dark]{--entry:#151b25;--tertiary:#202938;--code-bg:#202938;--border:rgba(220,232,242,.22)}:root[data-contrast=high]{--secondary:#30383d;--border:#64716f;--accent:#00675d}:root[data-theme=dark][data-contrast=high]{--primary:#fff;--content:#f4f4f4;--secondary:#e2e6eb;--border:#82919d;--accent:#79ffee}html[data-text-size=large] :is(.post-content,.resume-body,.home-intro,.about-intro,.contact-intro){font-size:calc(18px * var(--text-scale))}html[data-text-size=large] :is(.post-content p,.post-content li,.resume-desc,.project-entry__body>p,.home-project-card p,.writing-entry p){font-size:calc(16px * var(--text-scale))}html[data-text-size=large] :is(.post-content code,.post-content pre){font-size:calc(14px * var(--text-scale))}:root[data-theme=dark] :is(.settings-dialog,.cmdk-panel){box-shadow:0 20px 64px #0008;border-color:var(--border)}:root[data-theme=dark] :is(.contact-card,.post-action-btn,.motion-toggle){background:var(--entry)}.action-feedback{display:inline-block;margin:6px 8px;font-size:13px;line-height:1.5;color:var(--accent);max-width:32ch;white-space:normal}.action-feedback.is-error{color:var(--content)}pre .action-feedback{position:absolute;top:40px;right:8px;padding:6px;background:var(--entry);color:var(--content);z-index:2}#appearance-reset{margin-top:22px;width:100%}.appearance-help{margin:8px 0 16px;color:var(--secondary);font-size:13px;line-height:1.5}#appearance-dialog{max-height:calc(var(--visible-height,100dvh) - 32px);overflow:auto;overscroll-behavior:contain}.settings-dialog__header{position:sticky;top:-24px;padding-block:12px;background:var(--entry);z-index:2}#cmdk-overlay{padding-top:max(12px,min(8vh,64px));height:var(--visible-height,100dvh);top:var(--visible-top,0px);bottom:auto}#cmdk-overlay .cmdk-panel{max-height:calc(var(--visible-height,100dvh) - 32px - min(8vh,64px))}#cmdk-overlay .cmdk-inputrow{flex-shrink:0}#cmdk-overlay .cmdk-inputrow input{min-width:0;font-size:16px}#cmdk-clear,#cmdk-close{min-width:36px;min-height:40px}#cmdk-message{padding:10px 16px;font-size:14px}#cmdk-retry{margin:0 16px 10px;padding:10px;border:1px solid var(--border);border-radius:4px}#cmdk-overlay .cmdk-results{min-height:0;overscroll-behavior:contain}#cmdk-overlay .cmdk-result-summary{-webkit-line-clamp:3}#top-link{display:grid;place-items:center;box-sizing:border-box;width:44px;height:44px;padding:0;bottom:max(20px,env(safe-area-inset-bottom));right:16px;border:1px solid var(--border);border-radius:50%;background:var(--entry);color:var(--content);box-shadow:var(--surface-shadow);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s,background-color .18s ease,border-color .18s ease,color .18s ease}#top-link.is-visible{opacity:1;visibility:visible;transition:opacity .2s ease,visibility 0s,background-color .18s ease,border-color .18s ease,color .18s ease}#top-link svg{display:block;width:18px;height:18px;transform:translateY(1px)}#top-link:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--entry));color:var(--accent)}#top-link:focus-visible{border-color:var(--accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){#top-link{transition:none}}.mobile-toc{max-width:100%}.reading-wide .mobile-toc{display:block;padding:12px;background:var(--entry);border:1px solid var(--border)}.mobile-toc[open]{max-height:50dvh;overflow:auto}@media(max-width:760px){input:not([type=range]):not([type=checkbox]),select,textarea{font-size:16px}#appearance-dialog{max-height:calc(var(--visible-height,100dvh) - 24px);padding:20px}#cmdk-overlay .cmdk-footer{flex-wrap:wrap;gap:8px}.footer{padding-bottom:76px}}html[data-motion=paused]::view-transition-old(root),html[data-motion=paused]::view-transition-new(root){animation:none}@media print{@page{margin:18mm}:root,:root[data-theme=dark]{--theme:#fff;--entry:#fff;--primary:#000;--content:#000;--secondary:#333;--border:#bbb;--accent:#000;--code-bg:#f3f3f3;--code-block-bg:#f3f3f3}html,body{background:#fff!important;color:#000!important;font-size:11pt!important}*,*::before,*::after{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}.header,.footer,#starfield-canvas,#cursor-comet,#page-arrival,.reading-progress,#top-link,.post-actions,.resume-actions,.resume-toggle-all,.share-buttons,.paginav,.mobile-toc,.post-toc-aside,.copy-code,.action-feedback,dialog{display:none!important}.main,.post-single#post-single-root,.about-page,.post-content{display:block!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important}.post-header{margin-bottom:20pt}.post-title{font-size:26pt}.post-content,.post-content p,.post-content li,.resume-body,.resume-desc{font-size:11pt!important;line-height:1.5}h1,h2,h3,h4,.resume-section-title{break-after:avoid}.post-content pre,.post-content pre code{white-space:pre-wrap!important;overflow-wrap:anywhere;overflow:visible!important;max-height:none;background:#f3f3f3!important;color:#000!important}.post-content pre span{color:#000!important;background:0 0!important}pre,blockquote,.resume-grid>div{break-inside:avoid}.post-content a{color:#000;text-decoration:underline}.external-indicator,.anchor{display:none!important}.resume-section{margin-top:16pt}.resume-section-title::before{display:none}}html[data-text-size=large] .demo-frame :is(label,button,select,.pf__status,.site-graph__status,.wv__status,.fl__status,.sc__status){font-size:15px}@media print{body *{color:#000!important;border-color:#bbb!important}.resume-section{content-visibility:visible}}#appearance-dialog{position:fixed;inset-inline:0;top:calc(var(--visible-top,0px) + var(--visible-height,100dvh)/2);bottom:auto;margin:0 auto;transform:translateY(-50%)}#shortcuts-overlay{height:var(--visible-height,100dvh);top:var(--visible-top,0px);bottom:auto;overflow:auto}@media(min-width:761px) and (max-width:900px){.mobile-toc{top:110px}}:root{--control-radius:6px;--control-height:44px;--surface-shadow:0 4px 18px #11182009}:root:not([data-theme=dark]){--theme:#f3f0e9;--entry:#fcfaf5;--tertiary:#e8e4db;--code-bg:#eae6de}:where(.home-action,.resume-btn,.contact-btn,.contact-quick-btn,.post-action-btn,.motion-toggle,.site-graph__btn,.project-filters button,.project-filters select,.quality-control select,.demo-frame button,.demo-frame select){min-height:var(--control-height);border-radius:var(--control-radius);font:inherit}:is(.home-action,.resume-btn,.contact-btn,.contact-quick-btn,.post-action-btn,.motion-toggle,.site-graph__btn,.project-filters button,.project-filters select,.quality-control select){min-height:44px;border-radius:6px;display:inline-flex;align-items:center;padding:10px 14px;line-height:1.35}:is(button,select):disabled{opacity:.45;cursor:not-allowed}:is(button,[role=button])[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}:root:not([data-theme=dark]) :is(.settings-dialog,.cmdk-panel,.contact-card,.contact-email-row,.project-filters,.demo-saved-settings){background:var(--entry);box-shadow:var(--surface-shadow)}:root:not([data-theme=dark]) :is(.settings-dialog,.cmdk-panel){box-shadow:0 18px 70px #25241d25}:root[data-background-intensity=subtle] #starfield-canvas{opacity:.35}:root[data-background-intensity=minimal] #starfield-canvas{visibility:hidden}:is(.projects-header,.writing-header,.page-header,.post-header){max-width:720px;margin:0 0 36px;text-align:left}:is(.projects-header,.writing-header,.page-header,.post-header) .breadcrumbs{margin-bottom:18px;font-size:13px;line-height:1.5;color:var(--secondary)}:is(.projects-header,.writing-header,.page-header,.post-header) h1{margin:0;font-family:Georgia,times new roman,serif;font-weight:400;font-size:var(--page-title-size);line-height:1.1;letter-spacing:-.045em}:is(.writing-header>p,.projects-header>p,.post-description,.about-intro,.contact-intro){margin-top:20px;font-size:clamp(16px,1.6vw,18px);line-height:1.65;color:var(--secondary)}:is(.home-project-card,.project-entry,.writing-entry){border-radius:6px;transition:background-color .18s ease}:is(.home-project-card,.project-entry,.writing-entry):is(:hover,:focus-within){background:color-mix(in srgb,var(--accent) 7%,var(--theme))}:is(.home-project-arrow,.project-entry__arrow,.writing-entry__arrow){width:24px;text-align:center;align-self:start;font-size:20px;line-height:1.4}:is(.home-project-link,.project-entry__link,.writing-entry__link):focus-visible{outline-offset:-2px}.project-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px;margin-bottom:24px;border:1px solid var(--border);border-radius:8px}.project-filters[hidden],.project-entry[hidden],.reading-resume[hidden]{display:none}.project-filters label{font-size:14px}.project-filters select{min-width:0;max-width:100%;background:var(--theme);color:var(--primary);border:1px solid var(--border)}.project-filters button{background:0 0;color:var(--content);border:1px solid var(--border)}.project-filters [role=status]{margin-inline-start:auto;font-size:13px;color:var(--secondary)}.workspace-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}.workspace-toolbar .workspace-toggle{margin:0}.quality-control{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;margin-inline-start:auto}.quality-control select{border:1px solid var(--border);background:var(--entry);color:var(--primary)}.reading-resume{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:18px;margin:24px 0;border:1px solid var(--border);border-radius:8px;background:var(--entry);font-size:14px}.reading-resume-label{grid-column:1;color:var(--accent);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.reading-resume a{grid-column:1;text-decoration:underline;text-underline-offset:3px}.reading-resume small{grid-column:1;color:var(--secondary)}.reading-resume button{grid-column:2;grid-row:1/4;align-self:start;min-height:44px;padding:8px;color:var(--secondary)}.section-copy{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;vertical-align:middle;margin-inline-start:8px;color:var(--accent);font:16px ui-monospace,monospace;border-radius:6px;opacity:.6}.section-copy:is(:hover,:focus-visible){opacity:1;background:var(--tertiary)}.post-content .action-feedback{font:13px/1.5 ui-sans-serif,system-ui,sans-serif;letter-spacing:normal}.code-panel{margin-block:24px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--code-block-bg)}.code-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:4px;width:fit-content;max-width:100%;margin-inline-start:auto;padding:4px 8px 8px;border:0;background:0 0;color:#d5d5d6}.code-panel .copy-code{position:static;opacity:1;display:block;flex-shrink:0;min-height:44px;min-width:44px;margin:0;background:0 0;color:inherit;border:0;border-radius:5px}.code-toolbar .action-feedback{margin:0;font-size:12px}.post-content .code-panel pre{margin:0;border-radius:0;background:var(--code-block-bg)!important}.post-content .highlight:has(.code-panel){margin-block:24px}.post-content .highlight .code-panel{margin:0}.reading-wide .post-content>.code-panel{max-width:none}.cmdk-history-settings{padding:8px 16px;font-size:12px;border-bottom:1px solid var(--border);color:var(--secondary)}.cmdk-history-settings label{display:flex;align-items:center;gap:8px;margin-top:8px}.cmdk-history-settings button{padding:8px 0;min-height:44px;color:var(--accent)}.cmdk-recent{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px}.cmdk-recent[hidden]{display:none}.cmdk-recent button{padding:8px 12px;min-height:44px;border:1px solid var(--border);border-radius:6px;color:var(--primary)}@media(max-width:560px){.project-filters select{flex:1}.project-filters label,.project-filters [role=status]{width:100%;margin:0}.quality-control{margin:0}.reading-resume{padding:14px;gap:6px}.reading-resume button{font-size:12px}.code-toolbar{flex-wrap:wrap}.code-toolbar .action-feedback{flex-basis:100%}}@media(prefers-reduced-motion:reduce){:is(.home-project-card,.project-entry,.writing-entry){transition:none}}@media print{.reading-resume,.section-copy,.code-toolbar,.project-filters,.workspace-toolbar{display:none!important}.code-panel{overflow:visible;border:0}}[hidden]:not([hidden=until-found]){display:none!important}.home-action.home-graph-toggle{display:none}@media(max-width:820px){.home-action.home-graph-toggle{display:inline-flex}}.home-action.focus-exit{display:none}.demo-focused .home-action.focus-exit{display:inline-flex}@media(max-width:560px){.project-filters select{flex-basis:100%;width:100%}.project-filters [role=status]{width:auto;flex:1;text-align:right}}.section-share{font:500 12px var(--font-mono,monospace);margin-inline-start:8px;padding:6px;border:1px solid var(--border);border-radius:4px;color:var(--secondary);vertical-align:middle}.section-share:hover{color:var(--primary);background:var(--tertiary)}.reading-exit{position:fixed;right:20px;bottom:20px;z-index:100;padding:12px 18px;border:1px solid var(--border);border-radius:8px;background:var(--entry);color:var(--primary);box-shadow:var(--surface-shadow)}.reading-mode :is(.header,.footer,#starfield-canvas,#cursor-comet,.post-actions,.post-toc-aside,.related-pages,.project-question,.paginav,.share-buttons){display:none!important}.reading-mode .main{max-width:800px!important;padding-top:24px;padding-bottom:90px}.reading-mode .post-single#post-single-root{display:block!important}.reading-mode .mobile-toc{display:block;position:sticky;top:0;padding:12px;background:var(--entry);border:1px solid var(--border);z-index:3}.mobile-toc summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-toc a.is-active{color:var(--primary);text-decoration:underline;text-underline-offset:4px}.code-toolbar{flex-wrap:wrap;font-size:12px}.code-language{font-family:monospace;color:#adb4bc;padding:6px 8px}.code-toolbar button{min-height:44px;padding:6px 8px;border:0;border-radius:5px;color:inherit;background:0 0}.code-toolbar button:is(:hover,:focus-visible){color:#fff;text-decoration:underline;text-underline-offset:4px}.code-toolbar button:focus-visible{outline:2px solid #48dcca;outline-offset:-2px}.code-toolbar button[aria-pressed=true]{color:#48dcca;text-decoration:underline;text-underline-offset:4px}.post-content .code-panel[data-wrap=on] pre,.post-content .code-panel[data-wrap=on] code{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.post-content .code-panel[data-wrap=off] pre,.post-content .code-panel[data-wrap=off] code{white-space:pre;overflow-wrap:normal;word-break:normal}.code-panel.is-collapsible:not(.is-expanded) pre{max-height:26rem;overflow:auto}.related-pages{margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.related-pages h2{font-size:22px;margin-bottom:20px}.related-pages article{padding:16px 0;border-bottom:1px solid var(--border)}.related-pages h3{font-size:19px;margin:6px 0}.related-pages p,.topic-entry p{font-size:15px;line-height:1.6;color:var(--secondary);margin:8px 0 0}.related-type,.topic-total{font-size:13px;color:var(--secondary)}.project-question{margin-top:32px}.topic-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;padding:0}.topic-grid a{display:flex;align-items:center;gap:12px;padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--entry)}.topic-grid a:hover{border-color:var(--secondary)}.topic-grid a span:last-child{margin-inline-start:auto}.topic-group{margin:32px 0}.topic-group h2{font-size:22px}.topic-entry{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--border)}.topic-entry h3{font-size:20px}.topic-entry time{font-size:13px;color:var(--secondary);padding-top:5px}.local-data{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.local-data summary{cursor:pointer;font-weight:600}.local-data p{font-size:14px;color:var(--secondary);line-height:1.5;margin:8px 0}.local-data-row{padding:16px 0;border-bottom:1px solid var(--border)}.local-data-row h3{font-size:16px}.local-data-row button{min-height:44px;padding:8px 12px;margin:4px 6px 0 0;border:1px solid var(--border);border-radius:6px;color:var(--primary);background:var(--entry)}.cmdk-parent-title{display:block;font-size:12px;color:var(--secondary)}.cmdk-section-result{border-inline-start:3px solid var(--border);margin-inline-start:12px}.site-graph__canvas{touch-action:pan-y}.site-graph__canvas[data-touch-edit=true]{touch-action:none}.graph-touch-toggle{display:none}@media(any-pointer:coarse){.graph-touch-toggle{display:inline-block}}@media(max-width:560px){.topic-entry{grid-template-columns:1fr;gap:4px}.reading-exit{right:12px;bottom:12px}}@media print{.reading-exit,.section-share,.project-question,.related-pages{display:none!important}.code-panel.is-collapsible:not(.is-expanded) pre{max-height:none;overflow:visible}}.post-tags a,.paginav a,.share-buttons a{min-height:44px;padding:10px 14px;border-radius:6px;line-height:1.35}.post-tags a:focus-visible,.paginav a:focus-visible,.share-buttons a:focus-visible{border-color:var(--accent)}.paginav,.share-buttons{background:0 0;border:0;border-radius:0;padding:0;gap:12px}.paginav a{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1;min-width:0;padding:16px}.paginav a br{display:none}.paginav a.next{align-items:flex-end}.paginav span:hover:not(.title){box-shadow:none}.share-buttons{flex-wrap:wrap;justify-content:flex-start;overflow:visible}.share-buttons a{justify-content:center;width:44px;padding:10px}.share-buttons svg{width:22px;height:22px}@media(max-width:560px){.paginav{flex-direction:column}.paginav .prev,.paginav .next{width:100%}.paginav a.next{align-items:flex-start;text-align:start}}@media(prefers-reduced-motion:reduce){.post-tags a,.paginav a,.share-buttons a{transition:none}}#daylight-sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 88% 12%,#e8bd6830,transparent 32%),linear-gradient(155deg,#b8d8e349,transparent 48%,#f3e3c626)}:root[data-theme=dark] #daylight-sky{display:none}#solar-system{position:absolute;width:min(100vh,100vw);height:min(100vh,100vw);right:0;top:0;opacity:.65}.solar-label{font:12px ui-monospace,monospace;fill:#655641;paint-order:stroke;stroke:#faf7f0;stroke-width:3px;stroke-linejoin:round}.solar-caption{position:fixed;z-index:6;pointer-events:none;right:18px;bottom:12px;text-align:right;color:#73634c;font:11px/1.6 ui-monospace,monospace;opacity:.75}.solar-caption span{font-size:9px}@media(max-width:700px){#solar-system{right:0;top:5%;width:100vw;height:100vw;opacity:.35}.solar-caption{bottom:4px;right:8px;max-width:240px}}:root[data-background-intensity=subtle] #daylight-sky{opacity:.5}:root[data-background-intensity=minimal] #daylight-sky,.reading-mode #daylight-sky{display:none}:root[data-contrast=high] #daylight-sky{opacity:.15}:root[data-theme-reveal]::view-transition-group(root){animation-duration:0s}:root[data-theme-reveal]::view-transition-old(root){animation:none;z-index:1;mix-blend-mode:normal}:root[data-theme-reveal]::view-transition-new(root){animation:theme-reveal .48s cubic-bezier(.2,.65,.3,1)both;z-index:2;mix-blend-mode:normal}@keyframes theme-reveal{from{clip-path:circle(0 at var(--reveal-x) var(--reveal-y))}to{clip-path:circle(var(--reveal-radius) at var(--reveal-x) var(--reveal-y))}}@media(prefers-reduced-transparency:reduce),(forced-colors:active){#daylight-sky{display:none}}@media print{#daylight-sky{display:none}}.link-preview{position:fixed;z-index:150;width:min(320px,calc(100vw - 24px));padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--entry);color:var(--content);box-shadow:0 12px 36px #0002;font-size:14px;line-height:1.6}.link-preview[hidden]{display:none}.link-preview strong{display:block;color:var(--primary);font-size:16px;margin-top:6px}.link-preview p{margin:8px 0 0}.link-preview small{color:var(--accent);font-size:11px;letter-spacing:.04em}.edge-light{position:relative;isolation:isolate}.edge-light::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;padding:1px;background:radial-gradient(180px circle at var(--edge-x,50%) var(--edge-y,50%),var(--accent),transparent 80%);mask:linear-gradient(#fff 0 0)content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity .2s}@media(hover:hover) and (pointer:fine){.edge-light:hover::after{opacity:.65}}.edge-light:focus-within::after,.contact-card:focus-visible::after{opacity:.7;background:var(--accent)}@media(prefers-reduced-motion:reduce){.edge-light::after{transition:none}}@media print{.link-preview,.edge-light::after{display:none}}#page-arrival{position:fixed;inset:-12vmax;z-index:1000;pointer-events:none;background:radial-gradient(circle at var(--arrival-x,70%) var(--arrival-y,20%),var(--entry) 0,transparent 16rem),radial-gradient(circle at var(--arrival-x,70%) var(--arrival-y,20%),var(--accent) 0,transparent 42rem);mix-blend-mode:soft-light;will-change:opacity,transform}@media(prefers-reduced-transparency:reduce),(forced-colors:active){#page-arrival{display:none}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.solar-caption button{pointer-events:auto;border:1px solid var(--border);border-radius:5px;padding:5px 9px;background:var(--theme);color:var(--primary);font:12px ui-monospace,monospace;margin-bottom:5px}#solar-dialog{width:min(900px,94vw);max-width:94vw;max-height:90vh;padding:20px;border:1px solid var(--border);border-radius:12px;background:#faf7f0;color:#514a3e}#solar-dialog::backdrop{background:#151d24a6;backdrop-filter:blur(8px)}#solar-dialog header{display:flex;align-items:center;justify-content:space-between}#solar-dialog header button{padding:8px 14px;border:1px solid #bfb5a4;border-radius:6px}#solar-dialog p{font:12px/1.6 ui-monospace,monospace;margin-top:10px}.solar-detail-map{overflow:auto}.solar-detail-map svg{display:block;width:100%;min-width:700px}.solar-detail-map .solar-label{font-size:16px}:root[data-theme=dark] .solar-caption,:root[data-background-intensity=minimal] .solar-caption,.reading-mode .solar-caption{display:none}@media print{.solar-caption{display:none}}.astra-caption{position:fixed;right:18px;bottom:12px;z-index:6;pointer-events:none;text-align:right;color:var(--secondary);font:11px/1.6 ui-monospace,monospace;opacity:.75}.astra-caption span{font-size:9px}.astra-caption button{pointer-events:auto;margin-bottom:5px;padding:5px 9px;border:1px solid var(--border);border-radius:5px;background:var(--theme);color:var(--primary);font:12px ui-monospace,monospace}:root:not([data-theme=dark]) .astra-caption,.reading-mode .astra-caption{display:none}#astra-dialog{width:min(940px,94vw);max-width:94vw;max-height:90vh;padding:20px;border:1px solid #455369;border-radius:12px;background:#10161f;color:#dbe6ed}#astra-dialog::backdrop{background:#080d16b8;backdrop-filter:blur(8px)}#astra-dialog header{display:flex;align-items:center;justify-content:space-between}#astra-dialog header button{padding:8px 14px;border:1px solid #53657a;border-radius:6px}#astra-dialog p{font:12px/1.6 ui-monospace,monospace;margin:10px 0}.astra-detail-map{overflow:auto}#astra-map{display:block;width:100%;min-width:700px;font:14px ui-monospace,monospace}:is(#solar-dialog,#astra-dialog) select{font:13px inherit;color:inherit;background:0 0;border:1px solid;border-radius:5px;padding:6px;margin:10px}:is(#solar-dialog,#astra-dialog) a{text-decoration:underline;text-underline-offset:3px}.space-sources{border-top:1px solid #8a8a8a55;padding-top:12px}:root[data-sol-detail=off] #daylight-sky{visibility:hidden}:root[data-astra-detail=off] #starfield-canvas{visibility:hidden}@media print{.astra-caption{display:none}}#solar-moons{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}#solar-moons figure{margin:0;border:1px solid #d5cbbb;border-radius:8px;padding:10px}#solar-moons figcaption{font:13px ui-monospace,monospace}#solar-moons svg{display:block;width:100%}#solar-moons .solar-label{font-size:12px}#solar-object-list{font:12px/1.8 ui-monospace,monospace;padding-left:20px}.solar-caption,.astra-caption{right:90px;max-width:calc(100vw - 110px)}@media(max-width:700px){.solar-caption,.astra-caption{right:76px;bottom:8px;max-width:calc(100vw - 96px)}}:root[data-theme=dark] .footer-credit-sol,:root:not([data-theme=dark]) .footer-credit-astra{display:none}.solar-main-systems{display:block;font-size:13px;line-height:1.5;margin:10px 0}.solar-main-systems input{margin-right:6px}.solar-scale-note{color:#70624f}.footer-controls{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);align-items:center;gap:12px 24px}.footer-controls .footer-preferences{grid-column:auto}.footer-space-explore{justify-self:end;box-sizing:border-box;min-width:0;max-width:100%}@media(max-width:700px){.footer-controls{grid-template-columns:minmax(0,1fr);gap:12px}.footer-space-explore{justify-self:start}.footer-space-explore :is(.solar-caption,.astra-caption){text-align:left}}.footer-space-explore :is(.solar-caption,.astra-caption){position:static;max-width:100%;margin:0;pointer-events:auto;white-space:normal;overflow-wrap:anywhere}.astra-controls{border-block:1px solid #455369;margin-block:16px;padding-block:12px}.astra-controls :is(input,select,button){min-height:44px;max-width:100%;box-sizing:border-box;font:inherit;color:inherit;background:#10161f;border:1px solid #637e90;border-radius:5px;padding:8px}.astra-controls button{cursor:pointer}.astra-time-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#astra-coordinates:not([hidden]){display:grid;grid-template-columns:auto minmax(0,160px);align-items:center;gap:10px;margin-block:12px}#astra-coordinates input{width:100%}#astra-coordinates button{grid-column:1/-1;justify-self:start}.astra-controls :is(input,select,button):focus-visible{outline:2px solid #e9b66d;outline-offset:3px}#solar-dialog header #sol-signal{padding:0;border:0;border-radius:0;font:inherit;color:inherit;cursor:pointer}#sol-signal:focus-visible{outline:2px solid currentColor;outline-offset:5px}#hail-mary-dialog{width:min(420px,90vw);max-height:90vh;box-sizing:border-box;margin:auto;padding:28px;color:#e7dfcb;background:#101820;border:1px solid #8b795a;border-radius:14px;text-align:center}#hail-mary-dialog::backdrop{background:#080d16c9;backdrop-filter:blur(6px)}#hail-mary-dialog svg{display:block;width:100%;max-width:260px;margin:10px auto}#hail-mary-dialog h2{font:40px Georgia,serif;margin:8px 0;color:#e9cf8a}#hail-mary-dialog p{margin:16px 0;font-size:14px}#hail-mary-dialog button{min-height:44px;padding:8px 14px;border:1px solid #8b795a;border-radius:6px;color:inherit;background:0 0;cursor:pointer}#hail-mary-dialog button:focus-visible{outline:2px solid #e9cf8a;outline-offset:3px}#hail-mary-close{display:block;margin-left:auto}#hail-mary-dialog .hail-mary-signal{font:11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.15em;color:#e9cf8a}#hail-mary-dialog .hail-mary-credit{font-size:12px;color:#b6b6b0}#hail-mary-status{min-height:1.5em;color:#8bd2c5}#hail-mary-bump:disabled{opacity:.65;cursor:default}.space-time{margin-block:16px;border-block:1px solid currentColor;padding:12px 0}.space-time summary{cursor:pointer;font-weight:600}.space-time form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.space-time :is(button,input){min-height:44px;max-width:100%;box-sizing:border-box;padding:8px;border:1px solid;border-radius:5px;color:inherit;background:0 0;font:inherit}.space-time input[type=range],.space-time input[type=url]{display:block;width:100%}.space-time input[type=range]{padding:0}.space-time :is(button,input):focus-visible{outline:2px solid currentColor;outline-offset:3px}.sol-exploration details{margin-block:12px;padding:12px;border:1px solid #c3b8a5;border-radius:6px}.sol-exploration summary{cursor:pointer;font-weight:600}.sol-exploration svg{display:block;width:100%;min-width:560px}.sol-exploration details{overflow:auto}.sol-exploration :is(button,input){min-height:44px;max-width:100%;box-sizing:border-box;padding:8px;color:inherit;background:0 0;border:1px solid;border-radius:5px;font:inherit}.sol-exploration input[type=range]{display:block;width:100%}#solar-dialog [role=button]:focus-visible{outline:2px solid #306c80;outline-offset:4px}.solar-detail-map svg[data-focus]:not([data-focus=system]) .solar-label{font-size:22px}.solar-detail-map svg[data-focus]:not([data-focus=system]){min-width:0}@media(max-width:600px){.solar-detail-map svg[data-focus]:not([data-focus=system]) .solar-label{font-size:28px!important}.solar-detail-map svg[data-focus]:not([data-focus=system]) [data-focus-label]{font-size:32px!important}}.footer-space-explore :is(.solar-caption,.astra-caption) span{display:block;max-width:100%;white-space:normal}.space-object-browser{margin-block:16px}.space-object-card{border:1px solid;border-radius:8px;padding:16px;margin-block:12px}.space-object-card dl{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.5fr);gap:8px;font:13px/1.5 ui-monospace,monospace}.space-object-card dd{margin:0;overflow-wrap:anywhere}.space-object-card button,.space-object-browser select{min-height:44px;padding:8px;border:1px solid;border-radius:5px;background:0 0;color:inherit;max-width:100%}.space-object-card h3:focus{outline:2px solid currentColor;outline-offset:4px}#flyby-map{min-width:0;height:auto}#sol-flyby select{max-width:100%}#sol-flyby input[type=range]{margin-inline:0}#transfer-map{min-width:0;height:auto}#sol-designer select{max-width:100%}#sol-designer input[type=range]{margin-inline:0}#astra-worlds :is(input,select){max-width:100%;box-sizing:border-box}#chain-map{min-width:0;height:auto}#sol-chain :is(input,select){max-width:100%;box-sizing:border-box}#sol-chain input[type=range]{margin-inline:0}#sol-trajectory>details>summary{display:none}#sol-trajectory>details{border:0;padding-inline:0}#sol-trajectory select{max-width:100%}#sol-trajectory .trajectory-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-block:1rem;align-items:end}#sol-trajectory .trajectory-field{display:flex;flex-direction:column;gap:.35rem;min-width:0}#sol-trajectory .trajectory-field :is(input,select){width:100%;box-sizing:border-box;margin:0}#sol-trajectory .trajectory-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}#sol-trajectory :is(#chain-map,#transfer-map){max-height:480px}@media(max-width:600px){#sol-trajectory .trajectory-controls{grid-template-columns:minmax(0,1fr)}}:is(#solar-system,#solar-dialog) [data-moon-orbit]{stroke:#80715e;stroke-opacity:.85;stroke-width:1.5px;vector-effect:non-scaling-stroke}#solar-dialog :is(#chain-map,#transfer-map,#flyby-map) [fill=none][stroke]{stroke-opacity:1;stroke-width:1.5px;vector-effect:non-scaling-stroke}#solar-dialog :is(#chain-map,#transfer-map) circle[fill=none]{stroke:#8b8071}#solar-dialog :is(#chain-map,#transfer-map,#flyby-map) polyline{stroke-width:2px}#galaxy-map{min-width:0;height:auto;max-height:480px}@media(max-width:700px){.footer-space-explore{max-width:calc(100% - 60px)}}:root{--control-radius:6px;--control-height:44px;--surface-raised:var(--entry);--control-gap:8px}.settings-group{min-width:0;margin:20px 0;padding:16px;border:1px solid var(--border);border-radius:var(--control-radius)}.settings-group legend{padding-inline:6px;color:var(--primary);font-size:15px;font-weight:600}.settings-actions{display:flex;flex-wrap:wrap;gap:var(--control-gap);margin-top:12px}:is(.settings-dialog,#solar-dialog,#astra-dialog) :is(button,select,input:not([type=checkbox]):not([type=range])){min-height:var(--control-height);box-sizing:border-box;border-radius:var(--control-radius)}.settings-dialog :is(button,select,input){font:inherit}.settings-dialog label{line-height:1.5}.settings-dialog select{width:100%;max-width:100%}.settings-dialog button{white-space:normal}.skip-link{position:fixed;top:8px;left:8px;z-index:10000;padding:12px 18px;background:var(--theme);color:var(--primary);border:2px solid var(--accent);transform:translateY(-150%)}.skip-link:focus{transform:none}.section-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--secondary);margin-bottom:20px}.section-breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.reading-table{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;margin-block:24px;border:1px solid var(--border);border-radius:6px}.reading-table table{margin:0;display:table;min-width:100%}.reading-table th{background:var(--entry)}.post-content :is(.footnotes [id],[id^=fnref],:target){scroll-margin-top:110px}.post-content :target{outline:2px solid var(--accent);outline-offset:5px}:is(.mobile-toc,.post-toc-aside) a[aria-current=location]{color:var(--accent);font-weight:600}@media print{.skip-link,.section-breadcrumbs{display:none}.reading-table{overflow:visible;border:0}}:is(#solar-dialog,#astra-dialog){max-height:calc(var(--visible-height,100dvh) - 24px);overflow:auto;overscroll-behavior:contain}:is(#solar-dialog,#astra-dialog)>header{position:sticky;top:-20px;z-index:5;background:inherit;padding-block:8px;gap:12px}@media(max-height:500px){.settings-group{padding:10px;margin-block:12px}}.footer-space-explore .astra-caption [data-astra-clock-caption]{display:inline;font:inherit}:is(#solar-dialog,#astra-dialog)>header :is(h2,button){color:inherit}