:root,html[data-theme=dark]{--bg:#0f120e;--panel:#171b16;--panel-2:#1c211b;--panel-hover:#23291f;--text:#f1ede3;--muted:#aaa799;--border:#343a30;--accent:#788b61;--accent-soft:#788b6124;--thorn:#745633;--thorn-soft:#7456331f;--heart:#a83d42;--heart-soft:#a83d421a;--maintenance:#d0b34d;--maintenance-glow:#d0b34d47;--launch:#7f9ca3;--launch-glow:#7f9ca342;--shadow:0 18px 45px #00000047;--section-surface:#171a15;--section-border:#788b611f;--radius:12px;--max-width:1100px}html[data-theme=light]{--bg:#eee9dd;--panel:#f8f4e9;--panel-2:#fdfaf2;--panel-hover:#e8e3d6;--text:#27271f;--muted:#706e63;--border:#cbc5b6;--accent:#60724f;--accent-soft:#60724f1f;--thorn:#765735;--thorn-soft:#76573517;--heart:#9e353b;--heart-soft:#9e353b14;--maintenance:#806b12;--maintenance-glow:#806b1233;--launch:#4f6f78;--launch-glow:#4f6f7833;--shadow:0 16px 38px #372d201a;--section-surface:#f6f0e4;--section-border:#c9bda9}:root{--font-display:"DM Serif Display", Georgia, "Times New Roman", serif;--font-body:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--page-gutter:2rem}body{font-family:var(--font-body)}.hero h1,.section-heading h2{font-family:var(--font-display);font-weight:400}.hero p:last-child,.project-listing p,.hero-kicker,.section-kicker,.project-listing-label,.project-listing-status,.section-link,.top-nav,.theme-toggle{font-family:var(--font-body)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);min-height:100%}body{background:radial-gradient(circle at 8% 18%, var(--thorn-soft), transparent 24rem), radial-gradient(circle at 92% 10%, var(--accent-soft), transparent 30rem), radial-gradient(circle at 50% 110%, var(--heart-soft), transparent 34rem), linear-gradient(180deg, transparent 0%, #00000004 100%), var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body);margin:0;line-height:1.6;transition:background-color .18s,color .18s;position:relative;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit}.wildheart-frame{z-index:0;pointer-events:none;width:clamp(180px,15vw,280px);position:fixed;top:0;bottom:0;overflow:hidden}.wildheart-frame--left{left:0;-webkit-mask-image:linear-gradient(90deg,#000 0% 45%,#000c 68%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 45%,#000c 68%,#0000 100%)}.wildheart-frame--right{right:0;transform:scaleX(-1);-webkit-mask-image:linear-gradient(90deg,#000 0% 45%,#000c 68%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 45%,#000c 68%,#0000 100%)}.wildheart-layer{background-position:0 0;background-repeat:repeat-y;background-size:100%;position:absolute;inset:0}.wildheart-layer--back{opacity:.22;filter:blur(6px);background-image:url(/images/decor/branches-back.png);background-position:0 -120px;transform:scale(1.04)}.wildheart-layer--mid{opacity:.45;filter:blur(2px);background-image:url(/images/decor/bramble-mid.png);background-position:0 -60px}.wildheart-layer--front{opacity:.9;filter:none;background-image:url(/images/decor/roses-front.png);background-position:0 0}.page,.top-nav,main{z-index:1;position:relative}.site-sticky-controls{z-index:50;width:100%;position:sticky;top:0}.theme-toggle{top:125%;right:max(1rem, calc((100vw - var(--max-width)) / 2));border:1px solid var(--border);background:var(--panel);width:2.6rem;height:2.6rem;color:var(--text);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:transform .14s,border-color .14s,background .14s,color .14s;display:inline-flex;position:absolute;transform:translateY(-1px)}.site-sticky-controls--solo{height:0}.site-sticky-controls--solo .theme-toggle{top:1rem;transform:none}.site-sticky-controls--solo .theme-toggle:hover,.site-sticky-controls--solo .theme-toggle:focus-visible{transform:translateY(-1px)}@media (width<=600px){.theme-toggle{width:2.35rem;height:2.35rem;right:.75rem}.site-sticky-controls--solo .theme-toggle{top:.75rem}}.theme-toggle{border:1px solid var(--border);background:var(--panel);width:2.6rem;height:2.6rem;color:var(--text);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:0;font-size:1rem;transition:transform .14s,border-color .14s,background .14s,color .14s;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--accent);background:var(--panel-hover);color:var(--text);outline:none;transform:translateY(-1px)}.announcement-banner{border-bottom:1px solid var(--border);background:linear-gradient(90deg, var(--heart-soft), transparent 22%, transparent 78%, var(--accent-soft)), var(--section-surface);width:100%;position:relative}.announcement-banner:before{content:"";background:linear-gradient(180deg, var(--heart), var(--accent));width:3px;position:absolute;top:0;bottom:0;left:0}.announcement-inner{width:min(100% - 2rem, var(--max-width));color:var(--muted);align-items:baseline;gap:.45rem;margin:0 auto;padding:.65rem 0 .7rem;font-size:.78rem;line-height:1.55;display:flex}.announcement-inner strong{color:var(--text);flex-shrink:0;font-size:.78rem;font-weight:700}.announcement-inner span{color:var(--muted)}.page{width:min(calc(100% - (var(--page-gutter) * 2)), var(--max-width));margin:0 auto;padding:3rem 0 5rem}.hero{text-align:center;padding:.5rem 0 2.75rem;position:relative}.hero-kicker,.section-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-weight:800}.hero-kicker{text-align:center}.hero h1{color:var(--text);font-family:var(--font-display);letter-spacing:-.04em;text-align:center;margin:0 auto;font-size:clamp(3.4rem,8vw,5.6rem);font-weight:400;line-height:.95}.hero p:last-child{max-width:760px;color:var(--muted);text-align:center;margin:1rem auto 0;font-size:1.02rem;line-height:1.7}.home-section,.other-projects{z-index:1;isolation:isolate;padding:2rem;position:relative}.home-section{margin-top:1.5rem}.other-projects{margin-top:3.5rem}.home-section:before,.other-projects:before{content:"";z-index:-1;border:1px solid var(--section-border);background:var(--section-surface);pointer-events:none;border-radius:18px;position:absolute;inset:0}.section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1rem;padding-bottom:.65rem;display:flex;position:relative}.section-heading:after{content:"";background:linear-gradient(90deg, var(--heart), var(--accent));width:5rem;height:1px;position:absolute;bottom:-1px;left:0}.section-heading h2{color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:400;line-height:1.1}.section-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin:0 0 .4rem;font-size:.68rem;font-weight:800}.section-link{color:var(--accent);flex-shrink:0;font-size:.82rem;font-weight:700;transition:color .14s}.section-link:hover{color:var(--text)}@media (width<=950px){.home-section:before,.other-projects:before{left:-1.5rem;right:-1.5rem}}@media (width<=700px){.home-section,.other-projects{padding:1.5rem .75rem}.home-section:before,.other-projects:before{border-radius:14px;left:-.75rem;right:-.75rem}}@media (width<=480px){.home-section,.other-projects{padding-left:.6rem;padding-right:.6rem}.home-section:before,.other-projects:before{border-radius:12px}}.project-list{flex-direction:column;display:flex}.project-listing{width:100%;color:inherit;border:0;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.2rem .25rem;transition:padding-left .14s,background .14s;display:flex}.project-listing+.project-listing,.project-listing:first-child{border-top:1px solid var(--border)}.project-listing:hover,.project-listing:focus-visible{background:linear-gradient(90deg, var(--accent-soft), transparent 38%);outline:none;padding-left:.6rem}.project-listing-main{flex:1;min-width:0}.project-listing-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.project-listing-heading>div{flex-direction:column;gap:.15rem;min-width:0;display:flex}.project-listing-label{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;font-weight:800}.project-listing-heading strong{color:var(--text);font-family:var(--font-display);font-size:1.35rem;font-weight:400;line-height:1.2}.project-listing p{max-width:720px;color:var(--muted);margin:.45rem 0 0;font-size:.82rem;line-height:1.65}.project-live-status{color:var(--muted);text-align:right;text-transform:uppercase;letter-spacing:.1em;flex-shrink:0;align-items:center;gap:.4rem;padding-top:.15rem;font-size:.58rem;font-weight:800;display:inline-flex}.project-live-status--online{color:var(--accent)}.project-live-status--maintenance{color:var(--maintenance)}.project-live-status--offline{color:var(--heart)}.project-live-status--unknown{color:var(--muted)}.project-status-dot{border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;display:inline-block}.project-status-dot--online{background:#55e58d;box-shadow:0 0 5px #55e58dcc,0 0 10px #55e58d57}.project-status-dot--maintenance{background:#d4b95e;box-shadow:0 0 5px #d4b95ebf,0 0 10px #d4b95e4d}.project-status-dot--offline{background:#df5d63;box-shadow:0 0 5px #df5d63cc,0 0 10px #df5d6357}.project-status-dot--unknown{background:#8d9188;box-shadow:0 0 5px #8d918880}.project-live-status--launch{color:var(--launch)}.project-status-dot--launch{background:var(--launch);box-shadow:0 0 5px var(--launch-glow), 0 0 10px var(--launch-glow)}.project-listing-arrow{color:var(--accent);flex-shrink:0;font-size:1rem;font-weight:800;transition:transform .14s}.project-listing:hover .project-listing-arrow,.project-listing:focus-visible .project-listing-arrow{transform:translate(4px)}.maintenance-page{background:radial-gradient(circle at 15% 20%, var(--thorn-soft), transparent 28rem), radial-gradient(circle at 85% 15%, var(--accent-soft), transparent 30rem), radial-gradient(circle at 50% 110%, var(--heart-soft), transparent 34rem), var(--bg);min-height:100vh;color:var(--text);place-items:center;padding:2rem;display:grid}.maintenance-card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(145deg, var(--accent-soft), transparent 45%), linear-gradient(180deg, var(--panel-2), var(--panel));width:min(100%,700px);box-shadow:var(--shadow);padding:clamp(2rem,6vw,3.5rem);position:relative;overflow:hidden}.maintenance-card:before{content:"";background:linear-gradient(90deg, var(--heart), var(--accent), var(--thorn));height:3px;position:absolute;inset:0 0 auto}.maintenance-kicker{color:var(--accent);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;margin:0 0 .8rem;font-size:.7rem;font-weight:800}.maintenance-card h1{color:var(--text);font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(2.6rem,7vw,4.6rem);font-weight:400;line-height:1}.maintenance-copy{max-width:580px;color:var(--muted);margin:1.25rem 0 0;font-size:1rem;line-height:1.75}.maintenance-status{border:1px solid var(--border);background:var(--section-surface);color:var(--muted);border-radius:999px;align-items:center;gap:.6rem;margin-top:2rem;padding:.55rem .8rem;font-size:.76rem;font-weight:700;display:inline-flex}.maintenance-status-dot{background:#d4b95e;border-radius:50%;width:.58rem;height:.58rem;box-shadow:0 0 10px #d4b95e8c}@media (width<=950px){.wildheart-frame{opacity:.72;width:clamp(80px,12vw,130px)}}@media (width<=700px){.wildheart-frame{opacity:.5;width:58px}.wildheart-layer{background-size:100%}.wildheart-layer--back{opacity:.12;filter:blur(7px)}.wildheart-layer--mid{opacity:.24;filter:blur(3px)}.wildheart-layer--front{opacity:.55}}@media (width<=480px){.wildheart-frame{opacity:.38;width:48px}.wildheart-layer--back{opacity:.06}.wildheart-layer--mid{opacity:.12}.wildheart-layer--front{opacity:.34}}@media (width<=600px){.top-nav-inner{gap:1rem;width:calc(100% - 1.25rem);padding:.75rem 0}.top-nav a{font-size:.8rem}.theme-toggle{width:2.35rem;height:2.35rem;font-size:.85rem}}@media (width<=700px){.announcement-inner{flex-direction:column;align-items:flex-start;gap:.15rem;width:calc(100% - 1.25rem);padding:.65rem 0 .7rem;font-size:.74rem;line-height:1.5}.announcement-inner strong{font-size:.74rem}}@media (width<=600px){.hero{padding:.75rem .5rem 2rem}.hero:after{display:none}.hero h1{max-width:9ch;font-size:clamp(3rem,15vw,4.2rem);line-height:.98}.hero p:last-child{max-width:100%;font-size:.96rem;line-height:1.65}}@media (width<=950px){.home-section:before,.other-projects:before{left:-1rem;right:-1rem}:root{--page-gutter:1.5rem}.home-section,.other-projects{padding:1.75rem}}@media (width<=650px){:root{--page-gutter:1rem}.page{padding-top:2rem;padding-bottom:4rem}.home-section,.other-projects{padding:1.5rem .9rem}.home-section:before,.other-projects:before{border-radius:14px}}@media (width<=420px){:root{--page-gutter:.75rem}.home-section,.other-projects{padding-left:.75rem;padding-right:.75rem}}@media (width<=750px){.section-heading{text-align:center;flex-direction:column;align-items:center;gap:.55rem;width:100%;margin-bottom:.75rem}.section-heading>div{text-align:center;width:100%}.section-kicker,.section-heading h2,.section-link{text-align:center}.section-heading h2{width:100%;font-size:clamp(1.9rem,9vw,2.5rem)}.section-heading:after{left:50%;transform:translate(-50%)}}@media (width<=650px){.home-section,.other-projects{padding:1.5rem .75rem}.home-section{margin-top:.75rem}.other-projects{margin-top:2rem}.home-section:before,.other-projects:before{background:var(--panel);opacity:.97;border-radius:14px;left:0;right:0}}@media (width<=480px){.home-section,.other-projects{padding-left:.6rem;padding-right:.6rem}.home-section:before,.other-projects:before{border-radius:12px}}@media (width<=650px){.project-listing{align-items:flex-start;gap:.75rem;padding:1.1rem 2rem 1.15rem .15rem;position:relative}.project-listing:hover,.project-listing:focus-visible{padding-left:.35rem}.project-listing-heading,.project-listing-heading>div{display:block}.project-listing-label{margin-bottom:.2rem;display:block}.project-listing-heading strong{font-size:1.3rem;display:block}.project-listing p{max-width:none;margin-top:.55rem;font-size:.82rem;line-height:1.65}.project-listing-arrow{position:absolute;top:1.1rem;right:.2rem}.project-live-status{text-align:left;margin-top:.45rem;padding-top:0;font-size:.58rem}}@media (width<=480px){.project-listing{padding-top:1rem;padding-bottom:1.05rem}.project-listing-heading strong{font-size:1.2rem}.project-listing p{font-size:.8rem}}@media (width>=1201px){.theme-toggle--floating{right:calc((100vw - var(--max-width)) / 2)}}@media (width<=1200px) and (width>=601px){.theme-toggle--floating{top:1rem;right:1rem}}@media (width<=600px){.theme-toggle--floating{width:2.35rem;height:2.35rem;top:.75rem;right:.75rem}}
