@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}a{color:inherit;text-decoration:none}.site-header{z-index:20;color:#fff;background:linear-gradient(#15394042,#0000);border-bottom:1px solid #ffffff20;align-items:center;gap:36px;height:78px;padding:0 4.2%;display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:.3px;align-items:center;gap:12px;font-size:20px;font-weight:700;line-height:1.1;display:flex}.brand-mark{font-family:Georgia,serif;font-size:43px;font-weight:400;display:block}.brand-mark span{color:#ffd7a8}.brand-caption{font-size:var(--text-caption);letter-spacing:2px;opacity:1;margin-top:7px;font-weight:400;display:block}.desktop-nav{align-items:center;gap:31px;margin-left:auto;display:flex}.desktop-nav a{font-weight:500;font-size:var(--text-ui);padding:11px 0;position:relative}.desktop-nav a>span{vertical-align:-1px;margin-right:4px;font-size:19px}.desktop-nav a:after{content:"";background:#ffe0ba;height:2px;transition:all .2s;position:absolute;bottom:4px;left:50%;right:50%}.desktop-nav a:hover:after,.desktop-nav a.active:after{left:2px;right:2px}.header-actions{gap:17px;display:flex}.icon-button{background:0 0;place-items:center;width:28px;height:32px;padding:0;display:grid}.menu-toggle{display:none}.hero{color:#fff;isolation:isolate;background:#337e88 url(/images/hero.webp) 50% 53%/cover;place-items:center;height:440px;display:grid;position:relative}.hero:before{content:"";z-index:-1;background:linear-gradient(#16485938,#174b5538 70%,#174b5510);position:absolute;inset:0}.hero-copy{text-align:center;text-shadow:0 2px 14px #173a4050;padding-top:35px}.hero-eyebrow{font-size:var(--text-caption);letter-spacing:5px;opacity:.9;margin-bottom:14px}.hero h1{letter-spacing:2px;margin:0;font-size:43px;font-weight:700;line-height:1.45}.hero-copy p{letter-spacing:1px;margin:14px 0 20px;font-size:15px;font-weight:600}.hero-copy .little-stars{font-size:var(--text-ui);letter-spacing:13px;color:#ffdfb7}.hero-corner{font-size:var(--text-caption);letter-spacing:2px;opacity:1;position:absolute;bottom:42px;right:4%}.wave{width:100%;height:38px;fill:var(--bg);stroke:none;position:absolute;bottom:-1px}.panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-heading{font-size:var(--text-ui);border-bottom:1px solid var(--line);align-items:center;gap:9px;margin:0;padding:16px 20px 13px;font-weight:600;display:flex}.panel-heading span{color:var(--accent)}.panel-content{padding:16px 20px}.more-link{font-size:var(--text-ui);color:var(--muted);letter-spacing:.5px;background:0 0;padding:4px 0;font-weight:500}.more-link span{color:var(--accent);padding-left:5px;font-size:17px}.end-note{text-align:center;color:var(--muted);font-size:var(--text-small);letter-spacing:1px;margin:34px 0 10px}.end-note span{color:#d0a994;margin:0 10px}.footer-region{margin-top:auto;padding-top:65px}.site-footer{text-align:center;color:#fff;background-color:#245c68;background-image:linear-gradient(#123e4a99, #123e4ab3), var(--footer-image);text-shadow:0 1px 3px #092e3d80;background-position:50%,50% 58%;background-size:cover;padding:36px 20px 32px}.footer-brand{letter-spacing:1px;font-size:20px;font-weight:700}.footer-brand span{color:#ffd4df;margin-left:10px}.site-footer p{color:#fff;font-size:var(--text-ui);letter-spacing:1px;margin:10px 0 20px;font-weight:600}.footer-meta{color:#fff;font-size:var(--text-ui);font-weight:600;line-height:2}.footer-meta span{margin:0 8px}.footer-meta a{color:#ffe3ac;white-space:nowrap}.footer-meta a:hover{color:#fff;text-underline-offset:3px;text-decoration:underline}.back-top{background:var(--surface);width:37px;height:37px;box-shadow:var(--shadow);color:var(--teal);z-index:10;opacity:0;pointer-events:none;border-radius:11px;font-size:20px;transition:all .2s;position:fixed;bottom:26px;right:24px}.back-top.visible{opacity:1;pointer-events:auto}.page-hero{height:300px}.page-hero h1{font-size:34px}.page-hero .hero-copy p{font-size:var(--text-ui)}.content-page{width:min(1000px,100% - 48px);margin:36px auto}.filter-pill{background:var(--surface);font-size:var(--text-ui);border-radius:20px;padding:6px 16px;font-weight:500}.filter-pill.active{color:#fff;background:#68aaa1}.empty-state{text-align:center;background:var(--surface);border-radius:var(--radius);padding:75px 20px}.empty-state .empty-icon{color:#88aaa5;font-size:37px}.empty-state h2{margin-bottom:8px;font-size:18px}.empty-state p{color:var(--muted);font-size:var(--text-ui)}.soft-button{color:var(--text-link);font-size:var(--text-ui);background:#e9f4ef;border-radius:8px;padding:8px 18px;font-weight:500;display:inline-block}.article-hero{background-position:50% 45%;height:340px}.article-hero:before{background:#173c4c66}.article-hero .hero-copy{max-width:900px;padding:60px 25px 0}.article-hero h1{letter-spacing:1px;font-size:32px}.article-hero .hero-copy p{font-size:var(--text-small);letter-spacing:0;opacity:.9}.article-hero .article-kind{font-size:var(--text-small);border:1px solid #ffffff60;border-radius:20px;margin-bottom:14px;padding:3px 12px;display:inline-block}.note{padding:28px 32px}dialog{background:var(--surface);width:min(580px,100% - 32px);color:var(--ink);border:0;border-radius:17px;padding:26px;box-shadow:0 24px 90px #1b39483b}dialog::backdrop{backdrop-filter:blur(5px);background:#173c4c55}.dialog-heading{justify-content:space-between;align-items:center;display:flex}.dialog-heading h2{margin:0 0 18px;font-size:18px}.close-button{color:var(--muted);background:0 0;padding:0 6px 15px;font-size:25px}.dialog-search{color:var(--teal);border:1px solid #dce7e5;border-radius:9px;align-items:center;gap:10px;padding:9px 14px;display:flex}.dialog-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}#search-results{max-height:360px;margin-top:15px;overflow:auto}.search-result{font-size:var(--text-ui);border-radius:7px;padding:11px 9px;display:block}.search-result:hover{background:#eef6f3}.search-result small{color:var(--muted);font-size:var(--text-small);display:block}.dialog-hint{font-size:var(--text-caption);text-align:right;color:var(--muted);margin-bottom:0}.toast{color:#fff;font-size:var(--text-small);z-index:50;opacity:0;pointer-events:none;background:#354e4a;border-radius:9px;padding:10px 22px;transition:opacity .2s;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.toast.visible{opacity:1}html.dark{--bg:#1d252c;--surface:#27323a;--ink:#e0e8ec;--muted:#b2bec8;--text-link:#9bd0c6;--text-warm:#dfba98;--line:#35414a;--shadow:0 3px 16px #00000018}.dark .article-body p,.dark .about-body p{color:#b0bdc5}.dark .notice,.dark .section-heading{border-color:#3a4851}.dark .tag-button,.dark .soft-button,.dark .profile-link,.dark .about-chips span,.dark .article-body blockquote,.dark .category-button.active,.dark .category-button:hover,.dark .search-result:hover{color:#adcec3;background:#314741}.dark .notice small{background:#34414b}@media (width<=1100px){.desktop-nav{gap:20px}}@media (width<=850px){.hero{height:370px}.page-hero{height:280px}.desktop-nav{gap:16px}.brand-caption{display:none}.site-header{gap:22px}.header-actions{gap:12px}}@media (width<=640px){.site-header{height:66px;padding:0 20px}.brand{gap:7px;font-size:18px}.brand-mark{font-size:35px}.header-actions{gap:12px;margin-left:auto}.menu-toggle{display:grid}.desktop-nav{background:#244a51f5;border-radius:12px;padding:12px 20px;display:none;position:absolute;top:65px;left:12px;right:12px}.desktop-nav.expanded{flex-wrap:wrap;justify-content:center;gap:12px 24px;display:flex}.hero{background-position:47%;height:340px}.hero h1{letter-spacing:3px;font-size:30px}.hero-copy p{font-size:var(--text-small);letter-spacing:1px}.hero-eyebrow{font-size:var(--text-caption);letter-spacing:4px}.hero-corner{display:none}.main-feed{width:100%}.page-hero{height:270px}.article-hero{height:300px}.article-hero h1{font-size:25px}.article-hero .hero-copy p{font-size:var(--text-small)}.content-page{width:calc(100% - 32px);margin-top:22px}.note{padding:22px}.footer-region{padding-top:40px}.back-top{bottom:16px;right:12px}}.contact-options{margin:0 18px 18px}.contact-links{justify-content:center;gap:10px;display:flex}.contact-item{color:var(--text-link);background:#f0f6f4;border-radius:9px;justify-content:center;align-items:center;gap:7px;transition:background .18s,transform .18s;display:flex}.contact-item:hover{background:#e0eee8;transform:translateY(-2px)}.contact-item svg{flex:0 0 19px;width:19px;height:19px}.contact-label{font-size:var(--text-ui);font-weight:500}.contact-a{gap:17px}.contact-a .contact-item{border-radius:50%;width:42px;height:42px}.contact-a .contact-label{font-weight:500;display:none}.contact-a .contact-item:first-child{color:#58606e;background:#eff1f5}.contact-a .contact-item:nth-child(2){color:var(--text-warm);background:#fff0e9}.contact-b{gap:7px}.contact-b .contact-item{flex:1;gap:4px;padding:9px 5px}.contact-b .contact-item svg{flex-basis:16px;width:16px;height:16px}.contact-c{justify-content:stretch;gap:7px;display:grid}.contact-c .contact-item{text-align:left;justify-content:flex-start;gap:12px;padding:10px 13px}.contact-c .contact-label{font-size:var(--text-ui);font-weight:500}.contact-c small{color:var(--muted);font-size:var(--text-small);margin-top:1px;display:block}.contact-arrow{opacity:.6;margin-left:auto}.contact-preview{border-top:1px dashed var(--line);color:var(--muted);font-size:var(--text-small);margin-top:16px;padding-top:11px}.contact-preview>span{margin-bottom:7px;display:block}.contact-preview>div{justify-content:center;gap:3px;display:flex}.contact-preview button{font-size:var(--text-ui);color:var(--muted);background:0 0;border-radius:4px;padding:4px 7px}.contact-preview button.selected{color:#54736b;background:#edf1f3}.dark .contact-item,.dark .contact-a .contact-item{color:#c1d5ce;background:#344741}.dark .contact-preview button.selected{color:#d4e5df;background:#3c4d50}@media (width<=640px){#profile-contacts{grid-column:1/-1;margin-top:18px}.contact-options{margin:0}.contact-preview{text-align:center}}#email-dialog{max-width:440px}.email-intro{font-size:var(--text-ui);color:var(--muted);margin:0 0 22px}.email-address{text-align:center;color:var(--text-link);user-select:all;overflow-wrap:anywhere;background:#f0f6f4;border-radius:9px;padding:16px;font-size:18px}.email-actions{gap:12px;margin:20px 0;display:flex}.email-actions>*{text-align:center;font-size:var(--text-ui);border-radius:8px;flex:1;padding:10px 14px}.email-send{color:#fff;background:#67a69a}#email-dialog .dialog-hint{text-align:left;line-height:1.8}#email-copy-status{min-height:18px;color:var(--teal);font-size:var(--text-small);margin:10px 0 0}.about-section .contact-options{max-width:290px;margin:21px 0 0}.dark .timeline-entry:hover .timeline-item,.dark .email-address,.dark .work-tags span{color:#bfd5c9;background:#31443e}.dark .timeline-year p,.dark .work-info h3{color:#a4b6ac}@media (width<=1000px){.desktop-nav{gap:18px}}@media (width>=641px) and (width<=850px){.site-header{gap:14px;padding:0 20px}.desktop-nav{gap:12px}.desktop-nav a{font-size:var(--text-small)}.desktop-nav a>span{font-size:15px}}@media (width<=640px){.about-section .contact-options{margin-bottom:0}}.sidebar-note{font-size:var(--text-small);color:var(--muted);line-height:2}.about-kicker{font-size:var(--text-caption);letter-spacing:2px;color:var(--muted)}.empty-state{box-shadow:var(--shadow)}.empty-state .empty-icon svg{width:48px;height:48px}.empty-state h2{margin-top:16px}.empty-state p{max-width:420px;margin:0 auto 22px}.search-state{text-align:center;padding:28px 18px}.search-state h3{margin:0 0 8px;font-size:16px}.search-state p{color:var(--muted);font-size:var(--text-ui);margin:0 0 18px}.image-error-caption{color:var(--muted);font-size:var(--text-small);text-align:center;margin:-12px 0 24px;display:block}@media (width<=640px){.empty-state{padding:48px 20px}}@media (width>=641px) and (width<=850px){.header-actions{margin-left:auto}.menu-toggle{display:grid}.desktop-nav{background:#244a51f5;border-radius:12px;margin-left:0;padding:12px 20px;display:none;position:absolute;top:77px;left:20px;right:20px}.desktop-nav.expanded{flex-wrap:wrap;justify-content:center;gap:12px 24px;display:flex}}
