@font-face { font-family:"Public Sans Local"; src:url("fonts/PublicSans-Regular.woff2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Public Sans Local"; src:url("fonts/PublicSans-Italic.woff2") format("woff2"); font-style:italic; font-weight:400; font-display:swap; }
@font-face { font-family:"Public Sans Local"; src:url("fonts/PublicSans-Medium.woff2") format("woff2"); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:"Public Sans Local"; src:url("fonts/PublicSans-SemiBold.woff2") format("woff2"); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:"Public Sans Local"; src:url("fonts/PublicSans-Bold.woff2") format("woff2"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"Aller Local"; src:url("fonts/Aller-Bold.ttf") format("truetype"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"Courier Prime Code Local"; src:url("fonts/CourierPrimeCode-Regular.ttf") format("truetype"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"League Spartan Local"; src:url("fonts/LeagueSpartan-Bold.woff2") format("woff2"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"Montserrat Subrayada Local"; src:url("fonts/MontserratSubrayada-Bold.ttf") format("truetype"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"Random Grotesque Local"; src:url("fonts/RandomGrotesque-Bold.otf") format("opentype"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"OpenDyslexic Local"; src:url("fonts/OpenDyslexic-Regular.otf") format("opentype"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"OpenDyslexic Local"; src:url("fonts/OpenDyslexic-Italic.otf") format("opentype"); font-style:italic; font-weight:400; font-display:swap; }
@font-face { font-family:"OpenDyslexic Local"; src:url("fonts/OpenDyslexic-Bold.otf") format("opentype"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"OpenDyslexic Local"; src:url("fonts/OpenDyslexic-BoldItalic.otf") format("opentype"); font-style:italic; font-weight:700; font-display:swap; }
:root { color-scheme:dark; --frame-pad:max(20px,4vmin); --anchor-offset:calc(var(--frame-pad) + .75rem); --theme-bg:#242424; --theme-text:#f2f2f2; --frame-mask-bg:var(--theme-bg); --map-land-color:#242424; --map-water-color:#242424; --map-line-color:#f2f2f2; --map-label-color:#f2f2f2; --map-line-alpha:.027; --map-water-alpha-scale:1; --map-label-alpha-scale:1; --accessibility-text-scale:1; --dyslexia-letter-spacing:normal; --heading-font:"League Spartan Local",sans-serif; --heading-tracking:-.045em; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { margin:0; background:var(--theme-bg); color:var(--theme-text); font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:var(--theme-text); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; transition:text-decoration-thickness .18s ease,text-underline-offset .18s ease; }
a:hover { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.skip-link { position:fixed; z-index:1000; top:calc(var(--frame-pad) + .5rem); left:calc(var(--frame-pad) + .5rem); padding:.65rem .85rem; background:var(--theme-bg); color:var(--theme-text); font-weight:600; transform:translateY(calc(-100% - var(--frame-pad) - 1rem)); transition:transform .15s ease; }
.skip-link:focus { transform:translateY(0); }
:where(a,button,input,[tabindex]):focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.site-main { position:relative; z-index:2; min-height:100vh; background:transparent; color:var(--theme-text); letter-spacing:-.025em; padding:.25rem .5rem; }
.motion-background { position:fixed; z-index:1; inset:var(--frame-pad); overflow:hidden; background:var(--map-land-color); pointer-events:none; }
.motion-background:focus-visible { outline:2px solid var(--theme-text); outline-offset:-6px; }
.motion-background canvas { position:absolute; inset:0; display:block; width:100%; height:100%; will-change:transform; }
.map-surface-layer { z-index:0; }
[data-motion-background] { z-index:1; }
.map-label-layer { position:fixed; z-index:1; inset:var(--frame-pad); display:block; width:calc(100% - max(40px,8vmin)); height:calc(100% - max(40px,8vmin)); pointer-events:none; }
html[data-map-labels="false"] .map-label-layer { display:none; }
.map-credit { position:fixed; z-index:110; left:.55rem; bottom:.45rem; display:flex; height:24px; align-items:center; padding:0; color:var(--theme-text); font-size:9px; font-weight:400; line-height:1; text-decoration:none; opacity:.78; }
.map-credit:hover { text-decoration:underline; opacity:1; }
.data-credits { position:fixed; z-index:110; bottom:.45rem; left:10.2rem; display:flex; height:24px; align-items:center; gap:.35rem; margin:0; padding:0; color:var(--theme-text); font-size:9px; font-weight:400; line-height:1; opacity:.78; white-space:nowrap; }
.data-credits a { color:inherit; text-decoration:none; }
.data-credits a:hover { text-decoration:underline; }
.tacoma-status-bar { position:fixed; z-index:110; top:max(0px,calc((var(--frame-pad) - 24px) / 2)); right:calc(var(--frame-pad) + .75rem); display:flex; height:24px; align-items:center; gap:24px; color:var(--theme-text); font-size:12px; font-weight:400; line-height:1; text-align:right; text-transform:uppercase; white-space:nowrap; }
.tacoma-time { position:relative; display:flex; height:24px; align-items:center; margin:0; color:inherit; font:inherit; line-height:inherit; text-align:inherit; text-transform:inherit; white-space:inherit; }
.tacoma-time time { font-variant-numeric:tabular-nums; }
.home-snapshot { display:flex; height:24px; align-items:center; color:inherit; font:inherit; line-height:inherit; text-align:inherit; text-transform:inherit; white-space:inherit; }
.home-snapshot-data { display:flex; align-items:center; gap:24px; margin:0; }
.home-snapshot-data div { position:relative; display:flex; align-items:center; gap:3px; opacity:.58; transition:opacity .16s ease; }
.home-snapshot-data div:hover { opacity:1; }
.home-snapshot-data dt,.home-snapshot-data dd { margin:0; }
.home-snapshot-data dd { font-variant-numeric:tabular-nums; }
.home-snapshot-data div[data-expanded-label],.tacoma-time[data-expanded-label] { cursor:default; }
.home-snapshot-expanded { position:absolute; z-index:3; top:50%; right:-.25rem; display:flex; width:max-content; max-width:min(430px,calc(100vw - var(--frame-pad) * 2 - 1rem)); align-items:center; gap:4px; padding:.22rem .25rem .22rem .9rem; overflow:hidden; background:var(--frame-mask-bg); clip-path:inset(0 0 0 100%); color:var(--theme-text); font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,sans-serif; font-size:12px; font-weight:400; letter-spacing:normal; line-height:1; opacity:0; pointer-events:none; text-align:right; text-transform:none; transform:translateY(-50%); transition:clip-path .32s steps(14,end),opacity .08s linear; white-space:nowrap; }
.home-snapshot-data div[data-expanded-label]:hover > .home-snapshot-expanded,.tacoma-time[data-expanded-label]:hover > .home-snapshot-expanded { clip-path:inset(0); opacity:1; }
.home-snapshot-data div[data-expanded-label]:hover > dt,.home-snapshot-data div[data-expanded-label]:hover > dd,.tacoma-time[data-expanded-label]:hover > time { opacity:0; }
.home-snapshot-tide dd,.home-snapshot-water-temperature dd,.home-snapshot-tide-difference dd,.home-snapshot-tide-next dd,.home-snapshot-sun dd,.home-snapshot-uv dd,.home-snapshot-visibility dd,.home-snapshot-rain dd,.home-snapshot-pressure dd,.home-snapshot-moon dd,.home-snapshot-alert dd { display:flex; align-items:center; gap:4px; }
.home-snapshot-tide { flex:0 0 42px; width:42px; overflow:hidden; }
.home-snapshot-tide dd { flex:0 0 max-content; width:max-content; }
.home-snapshot-tide:hover { overflow:visible; }
.home-snapshot-tide:hover > .home-snapshot-expanded { animation:tacoma-tide-expanded-marquee 12s linear infinite alternate; }
@keyframes tacoma-tide-expanded-marquee { 0%,3% { transform:translateY(-50%) translateX(0); } 90%,100% { transform:translateY(-50%) translateX(var(--tacoma-tide-marquee-shift,0px)); } }
.home-snapshot-tide-icon { display:block; width:18px; height:14px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.25; }
.home-snapshot-water-icon { display:block; width:13px; height:16px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.25; }
.home-snapshot-delta { font-size:14px; line-height:1; }
.home-snapshot-tide-direction { display:block; min-width:10px; font-family:"Public Sans Local","Public Sans",sans-serif; font-size:16px; line-height:1; text-align:center; }
.home-snapshot-sun-icon { display:block; min-width:25px; font-family:"Public Sans Local","Public Sans",sans-serif; font-size:15px; line-height:1; text-align:center; }
.home-snapshot-uv-icon { display:block; min-width:14px; font-family:"Public Sans Local","Public Sans",sans-serif; font-size:17px; line-height:1; text-align:center; }
.home-snapshot-visibility-icon { display:block; width:17px; height:11px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.2; }
.home-snapshot-rain-icon { display:block; width:18px; height:15px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.2; }
.home-snapshot-pressure-icon { display:block; width:16px; height:16px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.2; }
.home-snapshot-alert-icon { font-size:13px; line-height:1; }
.home-snapshot-alert[hidden] { display:none!important; }
.home-snapshot-wind dd { display:flex; align-items:center; gap:4px; }
.home-snapshot-wind-icon { display:block; width:14px; height:10px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.35; }
.home-snapshot-moon-icon { display:block; min-width:20px; font-family:"Public Sans Local","Public Sans",sans-serif; font-size:21px; line-height:1; text-align:center; }
.map-contents { position:fixed; z-index:110; right:calc(var(--frame-pad) + 9rem); bottom:calc(var(--frame-pad) + 1rem); color:var(--theme-text); line-height:1.3; text-align:right; }
.map-contents-trigger { min-height:28px; margin:0; padding:.35rem 0; border:0; background:transparent; color:inherit; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(.9rem * var(--accessibility-text-scale)); font-weight:500; letter-spacing:var(--heading-tracking,-.04em); line-height:1.65; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; cursor:pointer; transition:text-decoration-thickness .18s ease,text-underline-offset .18s ease; }
.map-contents-trigger:hover,.map-contents-trigger:focus-visible { text-decoration-thickness:2px; text-underline-offset:3px; }
.map-contents-panel { position:absolute; right:0; bottom:calc(100% + .55rem); display:grid; width:440px; max-height:calc(100vh - var(--frame-pad) * 2 - 6rem); padding:1.1rem 1.25rem; overflow:auto; border:1px solid color-mix(in srgb,var(--theme-text) 52%,transparent); background:var(--frame-mask-bg); box-shadow:0 12px 32px color-mix(in srgb,#000 18%,transparent); font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,sans-serif; font-size:calc(.9rem * var(--accessibility-text-scale)); opacity:0; visibility:hidden; text-align:left; transform:translateY(.5rem); transition:opacity .18s ease,transform .18s ease,visibility .18s; }
.map-contents:hover .map-contents-panel,.map-contents:focus-within .map-contents-panel,.map-contents.is-open .map-contents-panel { opacity:1; visibility:visible; transform:translateY(0); }
.map-contents-panel a { color:inherit; }
.map-contents-section { display:grid; gap:.55rem; padding:1rem 0; border-top:1px solid color-mix(in srgb,var(--theme-text) 38%,transparent); }
.map-contents-section:first-child { padding-top:0; border-top:0; }
.map-contents-section:last-child { padding-bottom:0; }
.map-contents-section-link { display:table; padding:.12rem 0 .16rem; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(1.08rem * var(--accessibility-text-scale)); font-weight:700; letter-spacing:var(--heading-tracking,-.04em); line-height:1.25; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; transition:text-decoration-thickness .18s ease,text-underline-offset .18s ease; }
.map-contents-section-link:hover,.map-contents-section-link:focus-visible { text-decoration-thickness:3px; text-underline-offset:4px; }
.map-contents-subsection { display:grid; gap:.12rem; margin-left:.1rem; padding-left:1rem; border-left:1px solid color-mix(in srgb,var(--theme-text) 60%,transparent); }
.map-contents-subsection a { display:table; padding:.28rem 0; font-size:calc(.9rem * var(--accessibility-text-scale)); font-weight:500; line-height:1.4; text-decoration:none; text-decoration-thickness:2px; text-underline-offset:3px; transition:text-decoration-thickness .18s ease,text-underline-offset .18s ease; }
.map-contents-subsection a:hover,.map-contents-subsection a:focus-visible { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.map-contents-subsection a span { display:block; margin-top:.18rem; font-size:calc(.68rem * var(--accessibility-text-scale)); font-weight:400; letter-spacing:.02em; line-height:1.3; opacity:.68; text-decoration:none; text-transform:none; }
.map-contents-subsection-link { display:table; margin:.35rem 0 0 1.1rem; padding:.12rem 0; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(.96rem * var(--accessibility-text-scale)); font-weight:700; letter-spacing:var(--heading-tracking,-.04em); line-height:1.35; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; transition:text-decoration-thickness .18s ease,text-underline-offset .18s ease; }
.map-contents-subsection-link:hover,.map-contents-subsection-link:focus-visible { text-decoration-thickness:2px; text-underline-offset:3px; }
.map-contents-subsection--nested { margin-left:1.1rem; padding-left:1rem; }
html[data-name-font="2"] .map-contents-section-link,html[data-name-font="2"] .map-contents-subsection-link { text-decoration:none; }
html[data-name-font="2"] .map-contents-section-link:hover,html[data-name-font="2"] .map-contents-section-link:focus-visible,html[data-name-font="2"] .map-contents-subsection-link:hover,html[data-name-font="2"] .map-contents-subsection-link:focus-visible { text-shadow:0 .035em 0 currentColor; }
.frame-masks { position:fixed; z-index:90; inset:0; pointer-events:none; }
.frame-mask { position:absolute; display:block; background:var(--frame-mask-bg); }
.frame-mask--top,.frame-mask--bottom { left:0; width:100%; height:var(--frame-pad); }
.frame-mask--top { top:0; }
.frame-mask--bottom { bottom:0; }
.frame-mask--left,.frame-mask--right { top:var(--frame-pad); bottom:var(--frame-pad); width:var(--frame-pad); }
.frame-mask--left { left:0; }
.frame-mask--right { right:0; }
.portfolio-frame { position:fixed; z-index:100; inset:var(--frame-pad); pointer-events:none; }
.frame-edge { position:absolute; display:block; background:var(--theme-text); opacity:.5; }
.frame-edge--left,.frame-edge--right { top:0; width:1px; height:100%; }
.frame-edge--left { left:0; }
.frame-edge--right { right:0; }
.frame-edge--top,.frame-edge--bottom { left:0; width:100%; height:1px; }
.frame-edge--top { top:0; }
.frame-edge--bottom { bottom:0; }
.appearance-controls { position:fixed; z-index:110; left:calc(var(--frame-pad) - .15em); bottom:var(--frame-pad); display:flex; gap:15px; color:var(--theme-text); font-size:12px; font-weight:400; line-height:1; text-transform:uppercase; white-space:nowrap; transform:rotate(-90deg); transform-origin:left bottom; }
.appearance-colors { display:flex; gap:15px; }
.appearance-option { display:flex; min-height:24px; gap:3px; align-items:center; margin:0; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-transform:inherit; cursor:pointer; }
.appearance-marker { position:relative; display:inline-block; flex:0 0 11px; width:11px; height:11px; }
.appearance-marker::before { position:absolute; inset:0; border:1px solid currentColor; content:""; }
.appearance-option:is(.is-selected,[aria-pressed="true"]) .appearance-marker::before { background:currentColor; }
.appearance-option:is(.is-selected,[aria-pressed="true"]) .appearance-marker::after { position:absolute; inset:1px; background:linear-gradient(45deg,transparent 39%,var(--frame-mask-bg) 39% 61%,transparent 61%),linear-gradient(-45deg,transparent 39%,var(--frame-mask-bg) 39% 61%,transparent 61%); content:""; }
.map-label-controls { position:fixed; z-index:110; right:calc(var(--frame-pad) - .15em); bottom:var(--frame-pad); display:flex; align-items:center; gap:15px; color:var(--theme-text); font-size:12px; font-weight:400; line-height:1; text-transform:uppercase; white-space:nowrap; transform:rotate(90deg); transform-origin:right bottom; }
.map-intensity-control { display:flex; align-items:center; gap:7px; }
.map-intensity-slider { width:88px; height:24px; margin:0; padding:0; direction:rtl; color:var(--theme-text); background:transparent; cursor:pointer; appearance:none; -webkit-appearance:none; }
.map-intensity-slider::-webkit-slider-runnable-track { height:1px; background:color-mix(in srgb,currentColor 55%,transparent); }
.map-intensity-slider::-webkit-slider-thumb { width:8px; height:8px; margin-top:-3.5px; border:0; border-radius:0; background:currentColor; appearance:none; -webkit-appearance:none; }
.map-intensity-slider::-moz-range-track { height:1px; background:color-mix(in srgb,currentColor 55%,transparent); }
.map-intensity-slider::-moz-range-thumb { width:8px; height:8px; border:0; border-radius:0; background:currentColor; }
.map-drag-controls { --map-control-height:24px; position:fixed; z-index:110; left:50%; bottom:max(0px,calc((var(--frame-pad) - var(--map-control-height)) / 2)); display:flex; height:var(--map-control-height); align-items:center; gap:15px; color:var(--theme-text); font-size:12px; font-weight:400; line-height:1; text-transform:uppercase; white-space:nowrap; transform:translateX(-50%); }
.map-drag-controls button { position:relative; height:var(--map-control-height); min-height:24px; margin:0; padding:3px 8px; border:0; background:transparent; color:inherit; font:inherit; line-height:1; text-transform:inherit; cursor:pointer; }
.map-drag-controls button::after { position:absolute; inset:2px; border:1px solid color-mix(in srgb,currentColor 48%,transparent); content:""; pointer-events:none; }
.map-drag-controls button:hover { background:transparent; }
.map-drag-controls button:hover::after { background:color-mix(in srgb,currentColor 8%,transparent); border-color:currentColor; }
.map-direction-controls { display:flex; align-items:center; gap:4px; }
.map-direction-controls button { display:grid; width:24px; padding:0; place-items:center; font-size:14px; line-height:1; }
body.can-drag-map .site-main { cursor:grab; }
body.is-map-dragging,body.is-map-dragging .site-main { cursor:grabbing; user-select:none; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.accessibility-wizard { --wizard-tab-width:62px; --wizard-panel-width:min(390px,calc(100vw - var(--frame-pad) * 2 - var(--wizard-tab-width))); --wizard-shadow:rgba(48,48,48,.2); position:fixed; z-index:120; top:50%; right:var(--frame-pad); display:flex; contain:layout paint; align-items:center; width:var(--wizard-tab-width); height:auto; max-height:calc(100vh - var(--frame-pad) * 2 - 16px); overflow:hidden; color:var(--theme-text); pointer-events:none; transform:translateY(-50%); transition:width .5s cubic-bezier(.22,.8,.24,1); }
.accessibility-wizard.is-open { width:calc(var(--wizard-panel-width) + var(--wizard-tab-width)); }
.accessibility-wizard:not(.is-open) .accessibility-wizard-panel { visibility:hidden; }
.accessibility-wizard-tab { position:relative; flex:0 0 var(--wizard-tab-width); align-self:center; width:var(--wizard-tab-width); height:var(--wizard-tab-width); margin:0; padding:0; overflow:hidden; border:1px solid color-mix(in srgb,var(--theme-text) 30%,transparent); border-right:0; border-radius:50% 0 0 50%; background:var(--frame-mask-bg); color:var(--theme-text); box-shadow:none; pointer-events:auto; cursor:pointer; }
.accessibility-wizard.is-open .accessibility-wizard-tab { box-shadow:-10px 6px 14px -10px var(--wizard-shadow); }
.accessibility-wizard-tab img { position:absolute; left:57%; top:57%; display:block; width:80px; max-width:none; height:auto; filter:grayscale(1); transform:translate(-50%,-50%); transition:filter .18s ease; image-rendering:auto; pointer-events:none; }
.accessibility-wizard-tab:hover img { filter:grayscale(0); }
.accessibility-wizard-tab:focus-visible { outline:2px solid currentColor; outline-offset:-5px; }
.accessibility-wizard-panel { position:relative; flex:0 0 var(--wizard-panel-width); min-width:0; max-height:calc(100vh - var(--frame-pad) * 2 - 16px); overflow-y:auto; border:1px solid color-mix(in srgb,var(--theme-text) 30%,transparent); border-right:0; border-left:0; background:var(--frame-mask-bg); color:var(--theme-text); box-shadow:none; pointer-events:auto; scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--theme-text) 35%,transparent) transparent; }
.accessibility-wizard.is-open .accessibility-wizard-panel { box-shadow:-12px 8px 18px -12px var(--wizard-shadow-open,var(--wizard-shadow)); }
.accessibility-wizard.is-open::before,.accessibility-wizard.is-open::after { position:absolute; left:var(--wizard-tab-width); z-index:2; width:1px; height:calc(50% - var(--wizard-tab-width) / 2); background:color-mix(in srgb,var(--theme-text) 30%,transparent); content:""; pointer-events:none; }
.accessibility-wizard.is-open::before { top:0; }
.accessibility-wizard.is-open::after { bottom:0; }
.accessibility-wizard-content { padding:24px; font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:calc(.825rem * var(--accessibility-text-scale)); font-weight:400; line-height:1.45; letter-spacing:-.015em; text-transform:none; }
.accessibility-wizard-title { margin:0 0 24px; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(1.55rem * var(--accessibility-text-scale)); font-weight:700; line-height:1; letter-spacing:var(--heading-tracking,-.04em); text-transform:none; }
.accessibility-wizard-section { padding:18px 0; border-top:1px solid color-mix(in srgb,var(--theme-text) 18%,transparent); }
.accessibility-wizard-section--first { padding-top:0; border-top:0; }
.accessibility-wizard-section-title { margin:0 0 14px; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(.95rem * var(--accessibility-text-scale)); font-weight:700; line-height:1.15; letter-spacing:.025em; text-transform:none; }
.wizard-option { width:100%; justify-content:flex-start; text-align:left; text-transform:none; }
.wizard-choice-row { display:flex; align-items:center; gap:18px; }
.wizard-compact-option { min-width:0; text-transform:none; }
.wizard-setting-stack { display:grid; min-width:0; gap:12px; }
.wizard-font-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 12px; }
.wizard-font-options .wizard-option { min-height:24px; }
.wizard-font-options .wizard-option:first-child { grid-column:1/-1; }
.wizard-font-preview { min-width:0; overflow-wrap:anywhere; letter-spacing:normal!important; line-height:1.2; }
.wizard-font-preview--dyslexia { font-family:"OpenDyslexic Local",sans-serif!important; font-weight:400; }
.wizard-font-preview--aller { font-family:"Aller Local",sans-serif!important; font-weight:700; }
.wizard-font-preview--league { font-family:"League Spartan Local",sans-serif!important; font-weight:700; }
.wizard-font-preview--subrayada { font-family:"Montserrat Subrayada Local",sans-serif!important; font-weight:700; }
.wizard-font-preview--random { font-family:"Random Grotesque Local",sans-serif!important; font-weight:700; }
.wizard-font-preview--mono { font-family:"Courier Prime Code Local",monospace!important; font-weight:400; }
.wizard-letter-spacing { margin-top:14px; }
.wizard-letter-spacing[hidden] { display:none; }
.wizard-slider-control,.wizard-stepper,.wizard-color-control { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:12px; }
.wizard-slider-control > span,.wizard-stepper > span,.wizard-color-control > span { min-width:0; overflow-wrap:anywhere; }
.wizard-range { flex:1 1 auto; min-width:90px; height:24px; margin:0; padding:0; direction:ltr; color:var(--theme-text); background:transparent; cursor:pointer; appearance:none; -webkit-appearance:none; }
.wizard-range::-webkit-slider-runnable-track { height:1px; background:color-mix(in srgb,currentColor 55%,transparent); }
.wizard-range::-webkit-slider-thumb { width:8px; height:8px; margin-top:-3.5px; border:0; border-radius:0; background:currentColor; appearance:none; -webkit-appearance:none; }
.wizard-range::-moz-range-track { height:1px; background:color-mix(in srgb,currentColor 55%,transparent); }
.wizard-range::-moz-range-thumb { width:8px; height:8px; border:0; border-radius:0; background:currentColor; }
.wizard-stepper-controls { display:grid; grid-template-columns:28px 52px 28px; align-items:center; text-align:center; }
.wizard-stepper-controls button { width:28px; height:24px; margin:0; padding:0; border:1px solid color-mix(in srgb,var(--theme-text) 35%,transparent); background:transparent; color:inherit; font:inherit; cursor:pointer; }
.wizard-stepper-controls output { font-variant-numeric:tabular-nums; }
.wizard-color-control { cursor:pointer; }
.wizard-color-control input { width:32px; height:24px; margin:0; padding:2px; border:1px solid color-mix(in srgb,var(--theme-text) 35%,transparent); border-radius:0; background:transparent; cursor:pointer; }
.wizard-color-control input::-webkit-color-swatch-wrapper { padding:0; }
.wizard-color-control input::-webkit-color-swatch { border:0; }
.wizard-color-control input::-moz-color-swatch { border:0; }
.wizard-reset-button { justify-self:start; margin:3px 0 0; padding:7px 10px; border:1px solid color-mix(in srgb,currentColor 48%,transparent); background:transparent; color:inherit; font:inherit; line-height:1; cursor:pointer; }
.wizard-reset-button:hover { background:color-mix(in srgb,currentColor 8%,transparent); border-color:currentColor; }
.mobile-header,.mobile-footer { display:none; }
.page-body { width:100%; padding-top:calc(var(--frame-pad) + 1.6rem); font-size:calc(.9rem * var(--accessibility-text-scale)); line-height:1.64; }
.twelve-column-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); padding:0 calc(var(--frame-pad) + 2.25rem); }
.content-column { grid-column:span 11/span 11; width:86%; max-width:920px; padding-bottom:1rem; }
.intro-copy { width:min(760px,calc(100vw - var(--frame-pad) * 2 - 12rem)); max-width:none; margin-right:0; }
h1 { position:relative; margin:0 -.090909% .75rem 0; color:var(--theme-text); font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,sans-serif; font-size:calc(4.7rem * var(--accessibility-text-scale)); font-weight:700; line-height:1; letter-spacing:-.025em; }
.name-switcher { position:static; display:inline-block; color:inherit; font:inherit; letter-spacing:inherit; line-height:inherit; white-space:nowrap; }
.name-text { display:inline-block; }
.name-home { color:inherit!important; text-decoration:none!important; }
.name-font-selector { position:absolute; top:50%; left:-19px; display:flex; flex-direction:column; gap:12px; transform:translateY(-50%); }
.name-font-selector button { display:grid; width:12px; height:12px; margin:0; padding:2.5px; border:0; border-radius:50%; background:transparent; color:inherit; cursor:pointer; place-items:center; }
.name-font-selector button::before { width:7px; height:7px; border:1px solid currentColor; border-radius:50%; box-sizing:border-box; content:""; }
.name-font-selector button.is-selected::before { background:currentColor; }
html[data-name-font="0"] { --heading-font:"Aller Local",sans-serif; --heading-tracking:-.04em; }
html[data-name-font="1"] { --heading-font:"League Spartan Local",sans-serif; --heading-tracking:-.045em; }
html[data-name-font="2"] { --heading-font:"Montserrat Subrayada Local",sans-serif; --heading-tracking:-.055em; }
html[data-name-font="3"] { --heading-font:"Random Grotesque Local",sans-serif; --heading-tracking:-.045em; }
:is(h1,h2,h3,h4,h5,h6),.description strong { font-family:var(--heading-font,"League Spartan Local",sans-serif); font-style:normal; letter-spacing:var(--heading-tracking,-.04em); }
html[data-name-font="1"] .intro-copy .name-switcher { font-size:.88em; }
html[data-name-font="1"] .name-switcher .name-text { transform:translateY(.12em); }
html[data-name-font="2"] .heading-punctuation { font-family:"Public Sans Local","Public Sans",sans-serif; font-weight:700; letter-spacing:-.04em; }
.intro-copy p { margin:0; line-height:1.625; }
.intro-copy a,.description a { color:var(--theme-text); }
.intro-role { margin:0 0 .35rem!important; font-weight:500; letter-spacing:.005em; white-space:nowrap; }
.intro-skills-link { width:max-content; max-width:calc(100vw - var(--frame-pad) * 2 - 3rem); margin:0 0 2rem!important; padding:.65rem .9rem; border-left:3px solid currentColor; font-weight:500; letter-spacing:.005em; line-height:1.5!important; white-space:nowrap; transition:box-shadow .18s ease; }
.intro-skills-link:hover,.intro-skills-link:focus-within { box-shadow:-3px 0 0 currentColor; }
.intro-skills-link a { display:block; color:inherit; text-decoration:none; }
.intro-skills-summary { text-decoration-line:underline; text-decoration-color:transparent; text-decoration-thickness:1.5px; text-decoration-skip-ink:none; text-underline-offset:.2em; transition:text-decoration-color .18s ease,text-decoration-thickness .18s ease; }
.intro-skills-link:hover .intro-skills-summary,.intro-skills-link:focus-within .intro-skills-summary { text-decoration-color:currentColor; text-decoration-thickness:3px; }
.intro-skills-helper { display:block; max-height:0; margin-top:0; overflow:hidden; font-size:.82em; font-weight:400; line-height:1.45; opacity:0; white-space:normal; transition:max-height .3s cubic-bezier(.22,1,.36,1),margin-top .3s cubic-bezier(.22,1,.36,1),opacity .18s ease; }
.intro-skills-link:hover .intro-skills-helper,.intro-skills-link:focus-within .intro-skills-helper { max-height:3rem; margin-top:.35rem; opacity:.72; }
.intro-statements { max-width:720px; margin-bottom:2.3rem; font-size:calc(1.02rem * var(--accessibility-text-scale)); }
.intro-statements p { line-height:1.52; }
.intro-statements p + p { margin-top:.8rem; }
.hover-bold:hover { font-weight:700; }
.hover-italic:hover { font-style:italic; }
.intro-bio { margin-bottom:3.4rem; }
.intro-bio p + p { margin-top:1.35rem; }
.portfolio-lock { max-width:620px; margin:0 0 6rem; padding-top:2rem; border-top:1px solid color-mix(in srgb,currentColor 30%,transparent); }
.portfolio-lock h2 { position:relative; display:table; margin:0 0 1rem; padding-bottom:.2rem; font-size:calc(1.55rem * var(--accessibility-text-scale)); font-weight:600; line-height:1.2; }
.portfolio-lock > p { max-width:58ch; margin:0 0 1.75rem; line-height:1.625; }
.portfolio-lock-form { display:grid; max-width:420px; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:end; }
.portfolio-lock-field { display:grid; gap:.45rem; }
.portfolio-lock-field label { font-size:calc(.75rem * var(--accessibility-text-scale)); font-weight:500; }
.portfolio-lock-field input { width:100%; min-height:42px; padding:.65rem .75rem; border:1px solid color-mix(in srgb,currentColor 55%,transparent); border-radius:0; background:color-mix(in srgb,var(--theme-bg) 88%,transparent); color:inherit; font:inherit; }
.portfolio-lock-field input:hover { border-color:currentColor; }
.portfolio-lock-form button { min-height:42px; padding:.65rem 1rem; border:1px solid currentColor; border-radius:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.portfolio-lock-form button:hover,.portfolio-lock-form button:focus-visible { background:var(--theme-text); color:var(--theme-bg); }
.portfolio-lock-error { grid-column:1/-1; margin:0!important; font-size:calc(.78rem * var(--accessibility-text-scale)); line-height:1.45!important; }
.portfolio-lock-error[hidden] { display:none; }
.project-section-heading { position:relative; display:table; margin:4.75rem 0 2.25rem; padding-bottom:.22rem; font-size:calc(1.55rem * var(--accessibility-text-scale)); font-weight:600; line-height:1.2; }
.intro-copy + .project-section-heading { margin-top:0; }
.project-subsection-heading { position:relative; display:table; margin:3.5rem 0 2rem; padding-bottom:.18rem; font-size:calc(1.2rem * var(--accessibility-text-scale)); font-weight:600; line-height:1.25; }
.skills-section { margin-top:6.5rem; padding-bottom:5rem; scroll-margin-top:var(--anchor-offset); }
.skills-section > .project-section-heading { margin-top:0; }
.community-reach-section { max-width:780px; margin-top:7rem; scroll-margin-top:var(--anchor-offset); }
.community-reach-section > .project-section-heading { margin-top:0; }
.community-reach-section > p { line-height:1.65; }
.community-reach-count { margin:0 0 1.25rem; font-size:calc(1.15rem * var(--accessibility-text-scale)); }
.community-reach-count strong { font-family:var(--heading-font,"League Spartan Local",sans-serif); font-weight:500; letter-spacing:var(--heading-tracking,-.04em); }
.community-reach-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem 2.5rem; margin:2.5rem 0; }
.community-reach-stats div { display:flex; flex-direction:column-reverse; gap:.2rem; }
.community-reach-stats dt { font-size:calc(.72rem * var(--accessibility-text-scale)); line-height:1.35; opacity:.68; }
.community-reach-stats dd { margin:0; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(1.65rem * var(--accessibility-text-scale)); font-weight:700; letter-spacing:var(--heading-tracking,-.04em); line-height:1; font-variant-numeric:tabular-nums; }
.community-intro { margin-bottom:0; }
.community-intro-role { width:auto; max-width:720px; margin-bottom:2rem!important; white-space:normal; }
.community-entry-summary { margin:2.25rem 0; }
.community-entry-summary .description { max-width:720px; }
.community-page .community-entry-summary { margin:3rem 0; }
.community-page .community-entry-summary .description { max-width:860px; }
.community-entry-page { max-width:1100px; padding-bottom:3rem; }
.community-entry-page-header { max-width:900px; }
.community-entry-page-header > .project-section-heading { margin:0 0 1rem; font-size:clamp(calc(2.2rem * var(--accessibility-text-scale)),calc(4.5vw * var(--accessibility-text-scale)),calc(4.1rem * var(--accessibility-text-scale))); font-weight:700; line-height:1.02; }
.community-entry-lead { max-width:720px; margin:2.25rem 0 0; font-size:calc(1.02rem * var(--accessibility-text-scale)); line-height:1.65; }
.community-entry-page-header + .community-detail-section { margin-top:4.25rem; }
.community-experience-detail { margin-top:7rem; scroll-margin-top:var(--anchor-offset); }
.community-experience-detail > .project-section-heading { margin-bottom:.8rem; }
.community-detail-section { max-width:720px; margin-top:3.75rem; }
.community-detail-section .project-subsection-heading { margin-top:0; margin-bottom:1.5rem; }
.community-detail-section p { margin:0; line-height:1.65; }
.community-detail-section p + p { margin-top:1.15rem; }
.community-connection { margin:7rem 0 5rem; }
.community-connection > .project-section-heading { margin-bottom:0; }
.community-detail-section--closing { margin-top:2rem; }
.skills-grid { display:grid; max-width:900px; gap:2rem; }
.skills-group { display:grid; grid-template-columns:minmax(190px,240px) minmax(0,1fr); align-items:start; gap:1.25rem 2.5rem; }
.skills-group h3 { margin:0; font-size:inherit; font-weight:500; line-height:1.65; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; transition:text-decoration-thickness .18s ease,text-underline-offset .18s ease; }
.skills-group h3:hover { text-decoration-thickness:2px; text-underline-offset:3px; }
.skills-group p { margin:0; line-height:1.65; }
:is(.project-section-heading,.project-subsection-heading)[id] { scroll-margin-top:var(--anchor-offset); }
:is(.description,.intro-copy,.intro-statements,.intro-bio,.community-reach-section p,.community-reach-stats,.skills-group)[id] { scroll-margin-top:var(--anchor-offset); }
html.has-fragment-navigation .content-column { padding-bottom:max(5rem,calc(100vh - var(--frame-pad) - 4rem)); }
.portfolio-lock h2::after,.project-section-heading::after,.project-subsection-heading::after,.project-detail > h2::after { position:absolute; right:0; bottom:0; left:0; height:1.5px; background:currentColor; box-shadow:0 0 0 currentColor; content:""; transition:box-shadow .2s ease; }
.portfolio-lock h2:hover::after,.project-section-heading:hover::after,.project-subsection-heading:hover::after,.project-detail > h2:hover::after { box-shadow:0 2px 0 currentColor; }
.project { margin:2.25rem 0; }
.date { margin:0; color:#6b7280; }
.description { max-width:720px; margin:1.1rem 2.5rem 1.1rem 0; line-height:1.65; }
.description strong { font-weight:500; line-height:inherit; }
.media-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1.2rem; margin-right:0; }
.blank-image { min-width:0; aspect-ratio:4/3; margin-bottom:1.2rem; background:#ececec; }
.blank-image.full { grid-column:span 12/span 12; }
.blank-image.half { grid-column:span 6/span 6; }
.project-image-link { display:block; text-decoration:none; }
.project-video-frame { position:relative; display:block; }
.project-image-link:hover { text-decoration:none; }
.project-image-link:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.project-image-link--rounded { overflow:hidden; border-radius:clamp(7px,1vw,14px); }
.project-home-media { position:relative; grid-column:1/-1; min-width:0; margin:0 0 1.2rem; }
.project-home-media--compact { width:min(100%,36rem); justify-self:start; }
.project-home-media img,.project-home-media video { display:block; width:100%; max-height:min(72vh,720px); object-fit:contain; background:transparent; }
.project-home-media video.is-terminal-segment,.project-media-viewer-stage video.is-rounded-media { border-radius:clamp(7px,1vw,14px); }
.project-home-media figcaption,.project-media-item figcaption { margin-top:.55rem; font-size:calc(.75rem * var(--accessibility-text-scale)); line-height:1.4; letter-spacing:-.01em; opacity:.72; }
.project-collection-membership { margin:.8rem 0 4rem; padding:.85rem 1rem; border-left:3px solid currentColor; font-size:calc(1rem * var(--accessibility-text-scale)); font-weight:500; line-height:1.5; transition:box-shadow .18s ease; }
.project-collection-membership:hover,.project-collection-membership:focus-within { box-shadow:-3px 0 0 currentColor; }
.project-collection-membership a,.featured-collection-references a { color:inherit; text-decoration-thickness:1.5px; text-underline-offset:.2em; }
.project-collection-membership a:hover,.featured-collection-references a:hover { text-decoration-thickness:3px; text-underline-offset:.22em; }
.project-ecosystem-reference { font-weight:400; }
.project-ecosystem-reference a { font-family:var(--heading-font,"League Spartan Local",sans-serif); font-weight:700; letter-spacing:var(--heading-tracking,-.045em); }
.featured-collection-references { display:grid; gap:.75rem; margin:2.5rem 0 4.75rem; font-size:calc(1rem * var(--accessibility-text-scale)); line-height:1.5; }
.featured-collection-references p { margin:0; padding:.85rem 1rem; border-left:3px solid currentColor; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-weight:700; letter-spacing:var(--heading-tracking,-.045em); transition:box-shadow .18s ease; }
.featured-collection-references p:hover,.featured-collection-references p:focus-within { box-shadow:-3px 0 0 currentColor; }
.featured-collection-references a { display:block; }
.featured-collection-references strong { font-weight:inherit; }
.featured-collection-reference-location { font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,sans-serif; font-weight:400; letter-spacing:normal; }
.theme-carousel { grid-column:1/-1; min-width:0; margin:0 0 1.2rem; }
.project-detail { container-type:inline-size; }
.theme-carousel--project-section { width:100cqw; }
.theme-carousel--project-section .theme-carousel-slide { flex-basis:calc(40% - .6rem); }
.theme-carousel--project-section .theme-carousel-slide[role="button"] { cursor:zoom-in; }
.theme-carousel--project-section .theme-carousel-slide[role="button"]:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.theme-carousel-stage { display:grid; grid-template-columns:32px minmax(0,1fr) 32px; align-items:center; gap:.75rem; }
.theme-carousel-track { display:flex; min-width:0; gap:1rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:.1rem 0 .75rem; }
.theme-carousel-track:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.theme-carousel-slide { flex:0 0 calc((100% - 2rem) / 3); min-width:0; margin:0; scroll-snap-align:start; }
.theme-carousel-slide img { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; background:transparent; }
.theme-carousel-slide figcaption { margin-top:.5rem; font-size:calc(.72rem * var(--accessibility-text-scale)); line-height:1.35; opacity:.72; }
.theme-carousel-controls { display:flex; align-items:center; justify-content:center; min-height:1.25rem; margin-top:.45rem; }
.theme-carousel-button { display:grid; width:32px; height:32px; place-items:center; padding:0; border:1px solid currentColor; border-radius:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.theme-carousel-button:hover:not(:disabled),.theme-carousel-button:focus-visible { background:var(--theme-text); color:var(--theme-bg); }
.theme-carousel-button:disabled { cursor:default; opacity:.28; }
.theme-carousel-status { min-width:10rem; font-size:calc(.72rem * var(--accessibility-text-scale)); opacity:.74; }
.project-animation-control { position:absolute; top:.65rem; right:.65rem; min-height:32px; padding:.35rem .55rem; border:1px solid currentColor; background:var(--theme-bg); color:var(--theme-text); font:inherit; font-size:calc(.7rem * var(--accessibility-text-scale)); cursor:pointer; }
.project-animation-control:hover { background:var(--theme-text); color:var(--theme-bg); }
.desktop-sidebar { position:fixed; top:calc(var(--frame-pad) + 2rem); right:calc(var(--frame-pad) + 2.25rem); grid-column:11/span 2; padding-top:1rem; }
.desktop-sidebar nav { font-family:inherit; text-align:right; font-size:calc(.8rem * var(--accessibility-text-scale)); }
.desktop-sidebar a { display:block; margin-bottom:.5rem; color:var(--theme-text); text-decoration:none; }
.desktop-sidebar a:hover { text-decoration:underline; }
.desktop-sidebar .nav-placeholder { display:block; margin-bottom:.5rem; color:var(--theme-text); }
.desktop-sidebar .nav-gap { margin-bottom:2.5rem; }
.home-community-highlight { position:fixed; top:calc(50% + 31px + 2rem); right:calc(var(--frame-pad) + 2.25rem); margin:0; color:var(--theme-text); font-family:inherit; font-size:calc(.8rem * var(--accessibility-text-scale))!important; font-weight:400; letter-spacing:inherit; line-height:1.64; text-align:right; text-decoration:none!important; }
.home-community-highlight:hover { text-decoration:underline!important; text-decoration-thickness:2px!important; text-underline-offset:3px!important; }
.notes-index { grid-column:span 12/span 12; }
.notes-heading,.detail-brand { margin:.8rem 0 2.5rem; font-size:clamp(calc(1rem * var(--accessibility-text-scale)),calc(4.25vw * var(--accessibility-text-scale)),calc(2.35rem * var(--accessibility-text-scale))); font-weight:600; line-height:1.18; white-space:nowrap; }
.page-heading-context { display:inline-block; margin-left:.24em; }
html[data-name-font="1"] .page-heading-context { transform:translateY(.12em); }
.notes-heading a,.detail-brand a { color:var(--theme-text); text-decoration:none; }
.notes-heading .name-switcher,.detail-brand .name-switcher { font-weight:700; }
.note-preview { max-width:65ch; margin:0 13rem 3.25rem 0; }
.post-link,.post-link * { text-decoration:none!important; }
.note-preview .date { margin-bottom:.75rem; }
.note-preview h2 { margin:0 0 1.15rem; font-size:calc(1rem * var(--accessibility-text-scale)); font-weight:500; line-height:1.82; }
.note-preview h2 span { padding-bottom:.08em; border-bottom:1.5px solid #d1d5db; box-decoration-break:clone; -webkit-box-decoration-break:clone; transition:border-color .2s,box-shadow .2s; }
.post-link:hover h2 span { border-bottom-color:currentColor; box-shadow:0 2px 0 currentColor; }
.note-excerpt { margin:0 0 1rem; color:var(--theme-text); line-height:1.625; }
.note-detail { max-width:1024px; }
.detail-brand { margin-bottom:4.75rem; }
.note-detail > h2 { margin:.8rem 0 1.7rem; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(2.3rem * var(--accessibility-text-scale)); font-weight:700; line-height:1; letter-spacing:var(--heading-tracking,-.04em); }
.note-body { max-width:65ch; }
.note-body p { margin:0 0 1.25rem; line-height:1.625; }
.writing-detail { padding-bottom:3rem; }
.writing-entry-header { max-width:900px; margin-bottom:0; }
.writing-entry-header .writing-entry-title { margin:0 0 1.35rem; }
.writing-entry-subtitle { font-weight:inherit; }
.writing-entry-meta { display:grid; gap:.3rem; }
.writing-entry-meta p { margin:0; }
.writing-lead { margin-top:3rem; }
.writing-disclosure { max-width:720px; margin:2rem 0 3.75rem; padding:.85rem 1rem; border-left:3px solid currentColor; transition:box-shadow .18s ease; }
.writing-disclosure:hover,.writing-disclosure:focus-within,.writing-disclosure.is-open { box-shadow:-3px 0 0 currentColor; }
.writing-disclosure-trigger { display:block; width:100%; margin:0; padding:0; border:0; background:transparent; color:inherit; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(1rem * var(--accessibility-text-scale)); font-weight:700; letter-spacing:var(--heading-tracking,-.045em); line-height:1.5; text-align:left; cursor:pointer; }
.writing-disclosure-trigger:hover,.writing-disclosure-trigger:focus-visible { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.22em; }
.writing-disclosure-panel { display:grid; grid-template-rows:0fr; opacity:0; visibility:hidden; transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1),opacity .2s ease,visibility 0s linear .34s; }
.writing-disclosure-panel-inner { min-height:0; overflow:hidden; transform:translateY(-.45rem); transition:transform .34s cubic-bezier(.22,1,.36,1); }
.writing-disclosure.is-open .writing-disclosure-panel { grid-template-rows:1fr; opacity:1; visibility:visible; transition-delay:0s; }
.writing-disclosure.is-open .writing-disclosure-panel-inner { transform:translateY(0); }
.writing-source-list { display:grid; gap:1.45rem; margin:1.35rem 0 .2rem; padding:1.25rem 0 0; border-top:1px solid color-mix(in srgb,var(--theme-text) 24%,transparent); list-style:none; }
.writing-source-list li { min-width:0; }
.writing-source-list p { margin:0; }
.writing-source-title { display:table; color:inherit; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:calc(1rem * var(--accessibility-text-scale)); font-weight:700; letter-spacing:var(--heading-tracking,-.045em); line-height:1.4; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:.2em; }
.writing-source-title:hover,.writing-source-title:focus-visible { text-decoration-thickness:3px; }
.writing-source-meta { margin-top:.4rem!important; font-size:calc(.78rem * var(--accessibility-text-scale)); line-height:1.5; opacity:.72; }
.writing-source-citation { margin-top:.75rem!important; padding-left:1.5rem; font-size:calc(.82rem * var(--accessibility-text-scale)); line-height:1.6; text-indent:-1.5rem; overflow-wrap:anywhere; }
.writing-source-citation a { color:inherit; text-underline-offset:.18em; }
.writing-references-section { max-width:820px; }
.writing-references-section > p { margin-bottom:1.15rem; }
.writing-references { display:grid; gap:1.15rem; margin:0; padding:0; list-style:none; }
.writing-references li { padding-left:2rem; line-height:1.65; text-indent:-2rem; overflow-wrap:anywhere; }
.writing-references a { color:inherit; text-underline-offset:.18em; }
.project-detail > h2 { position:relative; display:table; margin-bottom:2.4rem; padding-bottom:.2rem; font-size:clamp(calc(3.15rem * var(--accessibility-text-scale)),calc(5.8vw * var(--accessibility-text-scale)),calc(5.5rem * var(--accessibility-text-scale))); line-height:.94; }
.project-body > h3 { position:relative; display:table; margin:4.5rem 0 1.5rem; padding-bottom:.2rem; font-size:clamp(calc(1.65rem * var(--accessibility-text-scale)),calc(2.35vw * var(--accessibility-text-scale)),calc(2.2rem * var(--accessibility-text-scale))); font-weight:650; line-height:1.12; }
.project-body > h3::after { position:absolute; right:0; bottom:0; left:0; height:1.5px; background:currentColor; box-shadow:0 0 0 currentColor; content:""; transition:box-shadow .2s ease; }
.project-body > h3:hover::after { box-shadow:0 2px 0 currentColor; }
.detail-context { display:inline-block; margin-left:.24em; }
html[data-name-font="1"] .detail-context { transform:translateY(.12em); }
html[data-name-font="1"] .detail-separator { position:relative; top:.07em; font-family:"Public Sans Local","Public Sans",sans-serif; font-weight:700; letter-spacing:-.04em; }
html[data-name-font="2"] .project-detail > h2 { padding-bottom:0; border-bottom:0; }
html[data-name-font="2"] .project-body > h3 { padding-bottom:0; }
html[data-name-font="2"] :is(.portfolio-lock h2,.project-section-heading,.project-subsection-heading,.project-detail > h2,.project-body > h3)::after { display:none; }
html[data-name-font="2"] :is(.portfolio-lock h2,.project-section-heading,.project-subsection-heading,.project-detail > h2,.project-body > h3):hover { text-shadow:0 .035em 0 currentColor; }
.project-body > .project-intro + h3 { margin-top:3rem; }
.project-live-link { display:inline-flex; min-height:40px; align-items:center; margin:.65rem 0 .75rem; padding:.55rem .8rem; border:1px solid currentColor; color:inherit; font-weight:500; line-height:1.2; text-decoration:none; }
.project-live-link:hover,.project-live-link:focus-visible { background:var(--theme-text); color:var(--theme-bg); text-decoration:none; }
.project-live-link + h3 { margin-top:3rem; }
.note-image-placeholder { width:calc(100% * 12 / 11); aspect-ratio:5/3; margin:2.5rem 0; background:#ececec; }
.project-media-gallery { display:grid; width:calc(100% * 14 / 11); grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1.2rem; margin:2.5rem 0 3.5rem; }
.project-media-gallery--case-study { margin-top:2.25rem; margin-bottom:4.75rem; }
.project-media-gallery--single,.project-media-gallery--stacked { grid-template-columns:1fr; }
.project-media-gallery--desktop-mobile { grid-template-columns:minmax(0,2.88fr) minmax(260px,1fr); align-items:start; }
.project-media-gallery--desktop-mobile-stacked { grid-template-columns:1fr; }
.project-media-gallery--desktop-mobile-stacked > :nth-child(2) { width:min(100%,340px); justify-self:start; }
.project-media-gallery--matched-height { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); align-items:start; }
.project-media-item { min-width:0; margin:0; }
.project-media-item--lead { grid-column:1/-1; }
.project-media-item--small { width:min(100%,20rem); justify-self:center; }
.project-media-item--compact { width:min(100%,20rem); justify-self:center; }
.project-media-item--medium { width:min(100%,36rem); justify-self:start; }
.project-media-item--align-left { justify-self:start; }
.project-media-open-surface { display:block; width:100%; margin:0; padding:0; border:0; background:transparent; color:inherit; cursor:zoom-in; font:inherit; text-align:inherit; }
.project-media-item img,.project-media-item video { display:block; width:100%; max-height:min(86vh,980px); object-fit:contain; background:transparent; }
.project-media-item--rounded img,.project-media-item--rounded video { border-radius:clamp(7px,1vw,14px); }
.project-media-item video { aspect-ratio:auto; }
.project-media-reserved { width:calc(100% * 14 / 11); margin:2.25rem 0 4.75rem; }
.project-media-reserved-area { display:grid; min-height:clamp(15rem,34vw,28rem); border:1px solid currentColor; background:color-mix(in srgb,var(--theme-text) 3%,transparent); place-items:center; }
.project-media-reserved-area span { max-width:22ch; padding:2rem; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:clamp(calc(1.25rem * var(--accessibility-text-scale)),calc(2vw * var(--accessibility-text-scale)),calc(1.8rem * var(--accessibility-text-scale))); line-height:1.1; text-align:center; }
.project-media-reserved figcaption { margin-top:.8rem; line-height:1.45; }
.project-comparison-frame { position:relative; overflow:hidden; }
.project-comparison-label { position:absolute; top:50%; left:50%; z-index:2; display:grid; width:max-content; padding:.65rem .9rem .42rem; transform:translate(-50%,-50%); border:1px solid currentColor; background:var(--theme-bg); color:var(--theme-text); font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:clamp(calc(1.02rem * var(--accessibility-text-scale)),calc(1.35vw * var(--accessibility-text-scale)),calc(1.3rem * var(--accessibility-text-scale))); font-weight:700; letter-spacing:var(--heading-tracking,-.045em); line-height:1; text-align:center; pointer-events:none; place-items:center; }
.back-link { display:inline-block; margin:2rem 0 3rem; font-weight:500; }
.media-viewer-open { overflow:hidden; }
.project-media-viewer { width:min(92vw,1540px); max-width:calc(100vw - 32px); height:min(88dvh,940px); max-height:calc(100dvh - 32px); margin:auto; padding:0; overflow:visible; border:0; background:transparent; color:var(--theme-text); font-family:"Public Sans Local","Public Sans",ui-sans-serif,system-ui,sans-serif; }
.project-media-viewer::backdrop { background:color-mix(in srgb,var(--theme-bg) 52%,transparent); backdrop-filter:blur(2px); }
.project-media-viewer-frame { position:relative; display:grid; width:100%; height:100%; grid-template-rows:auto minmax(0,1fr) auto auto; margin:auto; padding:clamp(18px,2.2vw,36px); overflow:auto; border:1px solid color-mix(in srgb,var(--theme-text) 50%,transparent); background:var(--theme-bg); box-shadow:0 24px 80px color-mix(in srgb,#000 32%,transparent); }
.project-media-viewer-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:.35rem 1.5rem; margin-bottom:.7rem; }
.project-media-viewer-brand { margin:0; font-family:var(--heading-font,"League Spartan Local",sans-serif); font-size:clamp(calc(1rem * var(--accessibility-text-scale)),calc(1.8vw * var(--accessibility-text-scale)),calc(1.5rem * var(--accessibility-text-scale))); font-weight:700; letter-spacing:var(--heading-tracking,-.04em); line-height:1.1; }
.project-media-viewer-divider { font-family:"Public Sans Local","Public Sans",sans-serif; letter-spacing:-.04em; }
.project-media-viewer-close { grid-column:2; min-height:34px; padding:.4rem .7rem; border:1px solid color-mix(in srgb,currentColor 55%,transparent); border-radius:0; background:transparent; color:inherit; cursor:pointer; font:inherit; font-size:calc(.72rem * var(--accessibility-text-scale)); }
.project-media-viewer-close:hover { border-color:currentColor; background:var(--theme-text); color:var(--theme-bg); }
.project-media-viewer-content { display:grid; min-height:0; grid-template-columns:minmax(0,3fr) minmax(240px,1fr); gap:clamp(22px,3vw,52px); align-items:start; }
.project-media-viewer-media { display:grid; min-width:0; min-height:0; grid-template-rows:minmax(0,1fr) auto; }
.project-media-viewer-stage { display:grid; min-height:0; place-items:center; overflow:hidden; }
.project-media-viewer-asset { position:relative; display:grid; width:100%; height:100%; min-height:0; place-items:center; overflow:hidden; }
.project-media-viewer-stage :is(img,video) { display:block; width:100%; height:100%; max-height:64dvh; object-fit:contain; background:transparent; }
.project-media-viewer-stage :is(img,video).is-portrait { width:auto; max-width:100%; max-height:57dvh; }
.project-media-viewer-stage video::-webkit-media-controls-fullscreen-button { display:none!important; }
.project-media-viewer-content.is-content-page { grid-template-columns:1fr; }
.project-media-viewer-content.is-content-page .project-media-viewer-media { grid-column:1/-1; }
.project-media-viewer-content.is-content-page .project-media-viewer-copy { display:none; }
.project-media-viewer-text-layout { display:grid; width:100%; min-height:min(58dvh,620px); grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2.5rem,7vw,7rem); align-content:center; padding:clamp(1.5rem,4vw,4rem) clamp(.5rem,4vw,4rem); }
.project-media-viewer-text-layout:has(article:only-child) { grid-template-columns:minmax(0,760px); justify-content:center; }
.project-media-viewer-text-layout article { align-self:start; }
.project-media-viewer-text-layout h3 { margin:0 0 1.35rem; font-size:clamp(calc(1.9rem * var(--accessibility-text-scale)),calc(3.4vw * var(--accessibility-text-scale)),calc(3.5rem * var(--accessibility-text-scale))); line-height:1.12; }
.project-media-viewer-text-layout p { margin:0 0 1rem; font-size:calc(.95rem * var(--accessibility-text-scale)); line-height:1.65; }
.project-media-viewer-caption { max-width:90ch; margin:.8rem auto .2rem; font-size:calc(.75rem * var(--accessibility-text-scale)); line-height:1.4; opacity:.76; text-align:center; }
.project-media-viewer-copy { align-self:start; max-height:69dvh; overflow:auto; padding-right:.5rem; }
.project-media-viewer-section-title { margin:0 0 1rem; font-size:clamp(calc(1.4rem * var(--accessibility-text-scale)),calc(2.3vw * var(--accessibility-text-scale)),calc(2.2rem * var(--accessibility-text-scale))); line-height:1.2; }
.project-media-viewer-section-copy p { margin:0 0 1rem; font-size:calc(.85rem * var(--accessibility-text-scale)); line-height:1.55; }
.project-media-viewer-dots { display:flex; max-width:100%; min-height:20px; align-items:center; justify-content:center; gap:7px; overflow-x:auto; padding:.2rem; scrollbar-width:thin; }
.project-media-viewer-dot { flex:0 0 auto; width:9px; height:9px; margin:0; padding:0; border:1px solid currentColor; border-radius:50%; background:transparent; color:inherit; cursor:pointer; }
.project-media-viewer-dot.is-current { background:currentColor; }
.project-media-viewer-navigation { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:1rem; margin-top:.75rem; }
.project-media-viewer-navigation button { min-height:38px; padding:.5rem .7rem; border:1px solid color-mix(in srgb,currentColor 48%,transparent); border-radius:0; background:transparent; color:inherit; cursor:pointer; font:inherit; font-size:calc(.72rem * var(--accessibility-text-scale)); line-height:1.25; }
.project-media-viewer-navigation button:hover:not(:disabled) { border-color:currentColor; background:color-mix(in srgb,currentColor 8%,transparent); }
.project-media-viewer-navigation button:disabled { cursor:default; opacity:.35; }
.project-media-viewer-previous { justify-self:start; text-align:left; }
.project-media-viewer-next { justify-self:end; text-align:right; }
.project-media-viewer-status { font-size:calc(.72rem * var(--accessibility-text-scale)); font-variant-numeric:tabular-nums; opacity:.72; white-space:nowrap; }
.project-media-viewer-theme-carousel { display:grid; width:100%; height:100%; min-height:0; grid-template-rows:minmax(0,1fr) auto; gap:.65rem; }
.project-media-viewer-theme-figure { display:grid; min-width:0; min-height:0; grid-template-rows:minmax(0,1fr) auto; place-items:center; margin:0; overflow:hidden; }
.project-media-viewer-theme-caption { max-width:90ch; margin:.65rem auto 0; font-size:calc(.75rem * var(--accessibility-text-scale)); line-height:1.4; opacity:.76; text-align:center; }
.project-media-viewer-theme-navigation { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.75rem; }
.project-media-viewer-theme-navigation button { min-height:36px; padding:.45rem .65rem; border:1px solid color-mix(in srgb,currentColor 48%,transparent); border-radius:0; background:transparent; color:inherit; cursor:pointer; font:inherit; font-size:calc(.7rem * var(--accessibility-text-scale)); line-height:1.2; }
.project-media-viewer-theme-navigation button:hover:not(:disabled) { border-color:currentColor; background:color-mix(in srgb,currentColor 8%,transparent); }
.project-media-viewer-theme-navigation button:disabled { cursor:default; opacity:.35; }
.project-media-viewer-theme-previous { justify-self:start; text-align:left; }
.project-media-viewer-theme-next { justify-self:end; text-align:right; }
.project-media-viewer-theme-status { font-size:calc(.7rem * var(--accessibility-text-scale)); font-variant-numeric:tabular-nums; opacity:.72; white-space:nowrap; }
.project-detail .theme-carousel-slide[role="button"] { cursor:zoom-in; }
@media (min-width:768px) { .content-column { grid-column:span 9/span 9; } }
@media (min-width:1024px) { .content-column { grid-column:span 7/span 7; } }
@media (min-width:768px) {
  .media-grid { width:calc(100% * 14 / 11); }
  .project-home-media img,.project-home-media video { max-height:min(82vh,900px); }
}
@media (max-width:1279px) {
  .intro-copy { margin-right:7.5rem; }
  .description { margin-right:3.5rem; }
}
@media (max-width:1023px) {
  .intro-copy { margin-right:5rem; }
  .description { margin-right:2rem; }
}
@media (max-width:767px) {
  .site-main { padding:.25rem 0; }
  .page-body { padding-top:0; }
  .mobile-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; padding:1rem calc(var(--frame-pad) + 1rem) .5rem; }
  .mobile-primary { display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; font-family:inherit; }
  .mobile-primary a { color:var(--theme-text); font-size:calc(1.125rem * var(--accessibility-text-scale)); line-height:1.55; text-decoration:none; }
  .mobile-primary a:hover { text-decoration:underline; }
  .twelve-column-grid { padding:0 calc(var(--frame-pad) + 1rem); }
  .content-column { grid-column:span 11/span 11; }
  .content-column.notes-index { grid-column:span 12/span 12; }
  .intro-copy,.description,.note-preview { margin-right:0; }
  .project-media-gallery { width:100%; grid-template-columns:1fr; }
  .project-media-gallery--matched-height > :nth-child(2) { width:62.5%; justify-self:start; }
  .project-media-reserved { width:100%; }
  .project-media-item--lead { grid-column:auto; }
  .project-media-viewer { width:calc(100vw - 24px); max-width:none; height:calc(100dvh - 40px); max-height:none; }
  .project-media-viewer-frame { padding:18px 14px; }
  .project-media-viewer-header { gap:.3rem .75rem; }
  .project-media-viewer-close { grid-row:1/2; }
  .project-media-viewer-content { grid-template-columns:1fr; gap:1rem; align-items:start; }
  .project-media-viewer-stage :is(img,video) { max-height:48dvh; }
  .project-media-viewer-stage :is(img,video).is-portrait { max-height:42dvh; }
  .project-media-viewer-text-layout { min-height:auto; grid-template-columns:1fr; gap:2.25rem; align-content:start; padding:1rem .25rem 2rem; }
  .project-media-viewer-copy { max-height:20dvh; padding-right:0; }
  .project-media-viewer-section-title { font-size:calc(1.35rem * var(--accessibility-text-scale)); }
  .project-media-viewer-navigation { grid-template-columns:1fr 1fr; gap:.55rem; }
  .project-media-viewer-status { grid-column:1/-1; grid-row:1; justify-self:center; }
  .project-media-viewer-previous { grid-column:1; grid-row:2; }
  .project-media-viewer-next { grid-column:2; grid-row:2; }
  .project-media-viewer-theme-navigation { grid-template-columns:1fr 1fr; gap:.55rem; }
  .project-media-viewer-theme-status { grid-column:1/-1; grid-row:1; justify-self:center; }
  .project-media-viewer-theme-previous { grid-column:1; grid-row:2; }
  .project-media-viewer-theme-next { grid-column:2; grid-row:2; }
  .theme-carousel-stage { grid-template-columns:30px minmax(0,1fr) 30px; gap:.5rem; }
  .theme-carousel-slide { flex-basis:calc((100% - .75rem) / 2.25); }
  .theme-carousel--project-section .theme-carousel-slide { flex-basis:calc(62.5% - .5rem); }
  .intro-copy { width:auto; }
  .portfolio-lock { margin-bottom:3rem; padding-top:1.5rem; }
  .portfolio-lock-form { grid-template-columns:1fr; }
  .portfolio-lock-form button { width:100%; }
  .intro-role,.intro-skills-link { font-size:clamp(calc(.45rem * var(--accessibility-text-scale)),calc(2.45vw * var(--accessibility-text-scale)),calc(.9rem * var(--accessibility-text-scale))); }
  .intro-role { width:calc(100vw - var(--frame-pad) * 2 - 2rem); }
  .community-intro-role { width:auto; }
  .intro-skills-link { width:auto; max-width:calc(100vw - var(--frame-pad) * 2 - 2rem); white-space:normal; }
  html[data-text-enlarged="true"] .intro-role { white-space:normal; }
  .skills-grid { gap:2.25rem; }
  .skills-group { grid-template-columns:1fr; gap:.55rem; }
  .community-reach-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
  h1 { margin-right:-9.090909%; font-size:calc(3.5rem * var(--accessibility-text-scale)); }
  .intro-copy .name-switcher { font-size:.68em; }
  html[data-name-font="1"] .intro-copy .name-switcher { font-size:.61em; }
  html[data-name-font="2"] .intro-copy .name-switcher { font-size:.58em; }
  html[data-name-font="3"] .intro-copy .name-switcher { font-size:.64em; }
  .media-grid { gap:.5rem; margin-right:-9.090909%; }
  .blank-image.half { grid-column:span 12/span 12; }
  .blank-image.half:first-child { margin-bottom:0; }
  .desktop-sidebar { display:none; }
  .mobile-footer { display:flex; flex-wrap:wrap; width:100%; padding:.5rem calc(var(--frame-pad) + 1rem) 2.5rem; font-family:inherit; }
  .mobile-footer a { color:var(--theme-text); font-size:calc(1.125rem * var(--accessibility-text-scale)); line-height:1.55; text-decoration:none; }
  .mobile-footer span { margin:0 .25rem; color:#9ca3af; font-size:calc(1.125rem * var(--accessibility-text-scale)); }
  .mobile-footer .social-placeholder { margin:0; color:var(--theme-text); line-height:1.55; }
  .map-drag-controls { gap:8px; font-size:8px; }
  .map-credit { left:.3rem; bottom:.2rem; height:18px; max-width:8rem; font-size:7px; line-height:1.15; }
  .data-credits { bottom:.2rem; left:7.3rem; height:18px; font-size:7px; }
  .tacoma-status-bar { top:max(0px,calc((var(--frame-pad) - 18px) / 2)); right:calc(var(--frame-pad) + .65rem); height:18px; gap:16px; font-size:8px; }
  .home-snapshot { height:18px; }
  .home-snapshot-data { gap:16px; }
  .home-snapshot-tide,.home-snapshot-water-temperature,.home-snapshot-tide-difference,.home-snapshot-tide-next,.home-snapshot-sun,.home-snapshot-uv,.home-snapshot-visibility,.home-snapshot-rain,.home-snapshot-pressure,.home-snapshot-aqi,.home-snapshot-moon,.home-snapshot-wind,.home-snapshot-alert { display:none!important; }
  .tacoma-time { height:18px; }
  .map-contents { right:calc(var(--frame-pad) + 6rem); bottom:calc(var(--frame-pad) + .65rem); }
  .map-contents-panel { width:min(340px,calc(100vw - var(--frame-pad) * 2 - 1.3rem)); }
  .accessibility-wizard { --wizard-tab-width:54px; --wizard-panel-width:min(310px,calc(100vw - var(--frame-pad) * 2 - var(--wizard-tab-width))); max-height:calc(100vh - var(--frame-pad) * 2 - 12px); }
  .accessibility-wizard-panel { max-height:calc(100vh - var(--frame-pad) * 2 - 12px); }
  .accessibility-wizard-tab img { width:72px; }
  .accessibility-wizard-content { padding:20px 17px; font-size:calc(.76rem * var(--accessibility-text-scale)); }
  .wizard-font-options { gap:4px 10px; }
}
@media (prefers-color-scheme:dark) {
  .accessibility-wizard { --wizard-shadow:rgba(8,8,8,.52); --wizard-shadow-open:rgba(8,8,8,.66); }
}
@media (prefers-color-scheme:dark) {
  :root { --theme-bg:#242424; --theme-text:#f2f2f2; --map-land-color:#242424; --map-water-color:#242424; --map-line-color:#f2f2f2; --map-label-color:#f2f2f2; --map-line-alpha:.027; --map-water-alpha-scale:1; --map-label-alpha-scale:1; }
  body { background:var(--theme-bg); color:var(--theme-text); }
  .site-main { color:var(--theme-text); }
  h1,.intro-copy a,.description a,.desktop-sidebar a,.mobile-primary a,.mobile-footer a,.notes-heading a,.detail-brand a,.note-excerpt { color:var(--theme-text); }
  .blank-image { background:#303030; }
  .note-image-placeholder { background:#303030; }
  .date { color:#9ca3af; }
}
html[data-appearance-theme="light"] { color-scheme:light; }
html[data-appearance-theme="light"] { --theme-bg:#e6e6e6; --theme-text:#303030; --map-land-color:#e6e6e6; --map-water-color:#e6e6e6; --map-line-color:#303030; --map-label-color:#303030; --map-line-alpha:.055; --map-water-alpha-scale:1.55; --map-label-alpha-scale:1.4; }
html[data-appearance-theme="light"] body { background:var(--theme-bg); color:var(--theme-text); }
html[data-appearance-theme="light"] .site-main { color:var(--theme-text); }
html[data-appearance-theme="light"] h1,html[data-appearance-theme="light"] .intro-copy a,html[data-appearance-theme="light"] .description a,html[data-appearance-theme="light"] .desktop-sidebar a,html[data-appearance-theme="light"] .mobile-primary a,html[data-appearance-theme="light"] .mobile-footer a,html[data-appearance-theme="light"] .notes-heading a,html[data-appearance-theme="light"] .detail-brand a,html[data-appearance-theme="light"] .note-excerpt { color:var(--theme-text); }
html[data-appearance-theme="light"] .blank-image,html[data-appearance-theme="light"] .note-image-placeholder { background:#ececec; }
html[data-appearance-theme="light"] .date { color:#565d67; }
html[data-appearance-theme="dark"] { color-scheme:dark; }
html[data-appearance-theme="dark"] { --theme-bg:#242424; --theme-text:#f2f2f2; --map-land-color:#242424; --map-water-color:#242424; --map-line-color:#f2f2f2; --map-label-color:#f2f2f2; --map-line-alpha:.027; --map-water-alpha-scale:1; --map-label-alpha-scale:1; }
html[data-appearance-theme="dark"] .accessibility-wizard { --wizard-shadow:rgba(8,8,8,.52); --wizard-shadow-open:rgba(8,8,8,.66); }
html[data-appearance-theme="light"] .accessibility-wizard { --wizard-shadow:rgba(48,48,48,.2); --wizard-shadow-open:rgba(48,48,48,.28); }
html[data-appearance-theme="dark"] body { background:var(--theme-bg); color:var(--theme-text); }
html[data-appearance-theme="dark"] .site-main { color:var(--theme-text); }
html[data-appearance-theme="dark"] h1,html[data-appearance-theme="dark"] .intro-copy a,html[data-appearance-theme="dark"] .description a,html[data-appearance-theme="dark"] .desktop-sidebar a,html[data-appearance-theme="dark"] .mobile-primary a,html[data-appearance-theme="dark"] .mobile-footer a,html[data-appearance-theme="dark"] .notes-heading a,html[data-appearance-theme="dark"] .detail-brand a,html[data-appearance-theme="dark"] .note-excerpt { color:var(--theme-text); }
html[data-appearance-theme="dark"] .blank-image,html[data-appearance-theme="dark"] .note-image-placeholder { background:#303030; }
html[data-appearance-theme="dark"] .date { color:#9ca3af; }
html[data-appearance-mono="true"] body,html[data-appearance-mono="true"] body *:not(.wizard-font-preview) { font-family:"Courier Prime Code Local",monospace!important; font-style:normal; font-weight:400; letter-spacing:normal; }
html[data-dyslexia-font="true"] body { font-family:"OpenDyslexic Local",sans-serif!important; }
html[data-dyslexia-font="true"] body *:not(.wizard-font-preview) { font-family:"OpenDyslexic Local",sans-serif!important; letter-spacing:var(--dyslexia-letter-spacing,normal)!important; }
html[data-dyslexia-font="true"] .wizard-font-preview { letter-spacing:normal!important; }
html[data-dyslexia-font="true"] .wizard-font-preview--dyslexia { letter-spacing:var(--dyslexia-letter-spacing,normal)!important; }
html[data-dyslexia-font="true"] body :is(time,output,.date,.home-snapshot-data dd,.community-reach-count,.community-reach-stats dd,.home-community-highlight,.project-media-viewer-status,.project-media-viewer-theme-status) { letter-spacing:normal!important; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
}
@media (forced-colors:active) {
  .motion-background:focus-visible,.accessibility-wizard-tab:focus-visible,:where(a,button,input,[tabindex]):focus-visible { outline:2px solid Highlight; }
  .appearance-marker::before,.wizard-stepper-controls button,.wizard-color-control input,.wizard-reset-button,.map-drag-controls button::after { border-color:ButtonText; }
  .appearance-option:is(.is-selected,[aria-pressed="true"]) .appearance-marker::before { background:Highlight; }
  .appearance-option:is(.is-selected,[aria-pressed="true"]) .appearance-marker::after { background:transparent; color:HighlightText; content:"×"; font-size:11px; line-height:8px; text-align:center; }
}
