:root{--sky-dawn:#f4c8a4;--sky-pink:#e89c8e;--sky-warm:#f0d5a0;--sky-mid:#b8a4b4;--sky-cool:#8eaeb6;--mist:#c4d4c2;--jungle-pale:#9eb89a;--jungle-mid:#5e7d56;--jungle:#3d5a3a;--jungle-deep:#243824;--bark:#4a3925;--earth:#2a1e12;--root:#1a1208;--ink-light:#f8efd9;--ink-cream:#f4ead0;--ink-mid:#f8efd9c7;--ink-quiet:#f8efd98c;--ink-dark:#1f2a1c;--ink-dark-2:#1f2a1cc7;--ink-dark-3:#1f2a1c8c;--rust:#c25a30;--rust-deep:#8a3a1c;--amber:#e89c5e;--gold:#f0b25e;--display:"Sriracha","Fraunces","Times New Roman",serif;--serif:"Fraunces","Times New Roman",serif;--sans:"Bricolage Grotesque","Inter",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--side:clamp(20px,6vw,88px);--tw-rail-font:15px;--tw-rail-pad-y:8px;--tw-rail-pad-x:14px;--tw-face-size:41px;--tw-badge-size:40px;--tw-badge-icon:32px;--tw-name-leading:1.11;--tw-name-letter:.003em;--tw-name-color-top:#9a3f1e;--tw-name-color-bot:#b95a2c;--tw-hero-up:180px}html{scroll-behavior:smooth}.boring-page{font-family:var(--sans);color:var(--ink-light);background:radial-gradient(ellipse 90% 30% at 70% 4%,#ffe1aa8c 0%,transparent 55%),linear-gradient(to bottom,var(--sky-dawn)0%,var(--sky-pink)6%,var(--sky-warm)11%,var(--sky-mid)17%,var(--sky-cool)23%,var(--mist)30%,var(--jungle-pale)38%,var(--jungle-mid)50%,var(--jungle)62%,var(--jungle-deep)74%,var(--bark)85%,var(--earth)94%,var(--root)100%);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;width:100%;min-height:100vh;font-size:16px;line-height:1.55;overflow-x:hidden}.boring-page:before{content:"";pointer-events:none;z-index:100;mix-blend-mode:overlay;opacity:.6;background-image:radial-gradient(#ffffff0a 1px,#0000 1px),radial-gradient(#0000000a 1px,#0000 1px);background-position:0 0,1px 2px;background-size:3px 3px,5px 5px;position:fixed;inset:0}::selection{background:var(--rust);color:var(--ink-light)}.boring-page a{color:inherit;text-decoration:none}.boring-page img{max-width:100%;display:block}.rail{z-index:30;-webkit-backdrop-filter:blur(10px)saturate(1.1);background:#f4c8a473;border-bottom:1px solid #1f2a1c1f;transition:background .6s;position:sticky;top:0}.rail.scrolled{background:#2438248c;border-bottom-color:#f8efd914}.rail-inner{padding:var(--tw-rail-pad-y)var(--side);font-family:var(--mono);font-size:var(--tw-rail-font);letter-spacing:.04em;color:var(--ink-dark-2);align-items:center;gap:16px;transition:color .6s;display:flex}.rail.scrolled .rail-inner{color:var(--ink-mid)}.rail .brand{color:var(--ink-dark);align-items:center;gap:10px;font-weight:500;transition:color .6s;display:inline-flex}.rail.scrolled .brand{color:var(--ink-light)}.rail .face{width:var(--tw-face-size);height:var(--tw-face-size);background-image:url(/headshot_pic.jpg);background-position:50% 18%;background-size:cover;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #1f2a1c33,0 1px 4px #00000026}.rail .slash{opacity:.45}.rail .here{font-weight:500}.rail nav{flex-wrap:wrap;align-items:center;gap:0;margin-left:auto;display:flex}.rail nav a{color:inherit;opacity:.78;white-space:nowrap;padding:8px 12px;transition:opacity .16s,color .16s}.rail nav a:hover{opacity:1;color:var(--rust)}.rail nav .sep{opacity:.35;-webkit-user-select:none;user-select:none}.rail .badges{gap:4px;margin-left:8px;padding-left:4px;display:inline-flex}.rail .badge{width:var(--tw-badge-size);height:var(--tw-badge-size);color:inherit;opacity:.92;background:#1f2a1c1a;border-radius:50%;justify-content:center;align-items:center;transition:background .18s,color .18s,transform .18s;display:inline-flex}.rail .badge svg{width:var(--tw-badge-icon);height:var(--tw-badge-icon);display:block}.rail .badge:hover{opacity:1;transform:translateY(-1px)}.rail .badge.gh:hover{color:#f4ead0;background:#1c160e}.rail .badge.li:hover{color:#fff;background:#0a66c2}.rail.scrolled .badge{background:#f8efd91f}.rail.scrolled .badge.gh:hover{color:#1c160e;background:#f4ead0}.rail .gameback{opacity:.78;border-left:1px solid #1f2a1c2e;align-items:center;gap:6px;margin-left:6px;padding:8px 12px;transition:opacity .16s,color .16s,border-color .16s;display:inline-flex}.rail.scrolled .gameback{border-left-color:#f8efd929}.rail .gameback:hover{opacity:1;color:var(--rust)}.page{z-index:1;width:min(92vw,1640px);margin:0 auto;padding:0;position:relative}section{padding:96px 0 112px;scroll-margin-top:64px;position:relative}@media (max-width:880px){section{padding:64px 0 72px}}.seclabel{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;opacity:.7;align-items:center;gap:12px;margin-bottom:20px;font-size:10.5px;display:inline-flex}.seclabel:before{content:"";background:currentColor;width:22px;height:1px}.hero{min-height:100svh;color:var(--ink-dark);isolation:isolate;grid-template-rows:auto 1fr auto;padding-top:14px;padding-bottom:0;display:grid;position:relative}.atmos{pointer-events:none;z-index:0;width:100vw;max-width:none;height:100%;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%)}.hero-sun{aspect-ratio:1;filter:blur(2px);background:radial-gradient(circle,#ffebb4f2 0%,#ffd29666 50%,#0000 70%);border-radius:50%;width:clamp(180px,26vw,360px);animation:8s ease-in-out infinite sunBreath;position:absolute;top:6%;right:12%}@keyframes sunBreath{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.cloud{opacity:.9;filter:blur(.5px);animation:drift var(--dur,100s)linear infinite;animation-delay:var(--delay,0s);will-change:transform;position:absolute;left:0}@keyframes drift{0%{transform:translate(-30vw)}to{transform:translate(130vw)}}.cloud svg{display:block}.plane{z-index:3;opacity:0;will-change:transform,opacity;align-items:center;height:22px;display:inline-flex;position:absolute;left:0}.plane .trail{filter:blur(.3px);background:linear-gradient(90deg,#fffaf000 0%,#fffaf00f 18%,#fffaf061 62%,#fffaf0e6 100%);border-radius:2px;width:240px;height:2px;margin-right:-1px;display:block}.plane .caret{font-family:var(--mono);color:#6b3a1a;text-shadow:0 1px #fffaf08c;font-size:28px;font-weight:500;line-height:1;transform:translateY(-2px)}.plane-a{animation:22s linear 1s infinite planeFly;top:14%}.plane-b{animation:26s linear 12s infinite planeFly;top:26%}@keyframes planeFly{0%{opacity:0;transform:translate(-18vw)}6%{opacity:1}50%{opacity:1;transform:translate(50vw,-18px)}94%{opacity:1}to{opacity:0;transform:translate(130vw,-32px)}}.mountains{pointer-events:none;z-index:1;width:100%;position:absolute;left:0}.mountains svg{width:100%;height:100%;display:block}.mountains-far{opacity:.92;z-index:1;height:58%;bottom:0}.mountains-mid{opacity:1;z-index:2;height:40%;bottom:0}.mountains-near{z-index:3;height:22%;bottom:0}.px-wrap{pointer-events:none;will-change:transform;position:absolute;inset:0}.joke .setup,.joke .punchline{transition:opacity .22s,transform .22s}.joke.is-fading .setup,.joke.is-fading .punchline{opacity:0;transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.cloud{animation:none}.plane-a,.plane-b{opacity:0;animation:none}.hero-sun{animation:none}}.hero-status{z-index:4;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dark);opacity:.9;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-top:24px;font-size:11.5px;display:flex;position:relative}.hero-status .live-dot{background:#4a8a3a;border-radius:50%;width:7px;height:7px;animation:2.6s ease-in-out infinite livePulse;box-shadow:0 0 0 3px #4a8a3a38,0 0 8px #4a8a3a66}@keyframes livePulse{0%,to{box-shadow:0 0 0 3px #4a8a3a38,0 0 8px #4a8a3a66}50%{box-shadow:0 0 0 5px #4a8a3a1a,0 0 14px #4a8a3a99}}.hero-status .sep{opacity:.38}.hero:before{content:"";grid-row:2}.hero-content{z-index:5;padding-bottom:calc(80px + var(--tw-hero-up));flex-direction:column;gap:18px;display:flex;position:relative}h1.name{font-family:var(--display);font-size:clamp(60px,12vw,184px);font-weight:400;line-height:var(--tw-name-leading);letter-spacing:var(--tw-name-letter);text-wrap:balance;flex-direction:column;margin-bottom:8px;display:flex}h1.name .word{background:linear-gradient(to bottom,var(--tw-name-color-top)0%,var(--tw-name-color-top)18%,color-mix(in oklab,var(--tw-name-color-top)65%,var(--tw-name-color-bot))55%,var(--tw-name-color-bot)85%,color-mix(in oklab,var(--tw-name-color-bot)80%,#e89c5e)100%);color:#0000;-webkit-text-fill-color:transparent;background-repeat:no-repeat;background-size:100% 200%;-webkit-background-clip:text;background-clip:text;display:block}h1.name .word:first-child{background-position:0 0}h1.name .word.last{background-position:0 100%;margin-left:.08em}.hero-lede{font-family:var(--serif);letter-spacing:-.005em;color:var(--ink-dark);max-width:42ch;margin-bottom:12px;font-size:clamp(20px,2vw,30px);font-weight:400;line-height:1.4}.hero-facts{z-index:6;flex-wrap:wrap;gap:10px;display:flex;position:relative}.hero-facts .chip{font-family:var(--mono);letter-spacing:.04em;-webkit-backdrop-filter:blur(8px)saturate(1.1);color:var(--ink-dark);opacity:.9;background:#fffaf08c;border:1px solid #1f2a1c2e;border-radius:999px;align-items:baseline;gap:8px;padding:8px 14px 8px 12px;font-size:13px;display:inline-flex}.hero-facts .chip .k{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dark);opacity:.9;font-size:10.5px}.hero-facts .chip b{opacity:.9;font-weight:500}@media (max-width:880px){.hero{min-height:86svh}.hero-status{gap:8px 10px;font-size:10px}.hero-content{gap:14px;padding-bottom:56px}.hero-facts .chip{padding:6px 12px;font-size:12px}}.about{color:var(--ink-dark);position:relative}.about-grid{grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);align-items:start;gap:64px;display:grid}@media (max-width:980px){.about-grid{grid-template-columns:1fr;gap:36px}}.prose{max-width:78ch}.prose p{font-family:var(--serif);letter-spacing:-.005em;color:var(--ink-dark-2);text-wrap:pretty;margin-bottom:22px;font-size:clamp(18px,1.5vw,22px);font-weight:400;line-height:1.55}.prose p:last-child{margin-bottom:0}.prose .hi{font-family:var(--display);letter-spacing:-.01em;color:var(--ink-dark);margin-bottom:28px;font-size:clamp(32px,4.5vw,56px);font-style:normal;font-weight:400;line-height:1.05}.prose a{color:var(--ink-dark);border-bottom:1.5px solid var(--rust);padding-bottom:1px;font-weight:500;transition:color .16s,border-color .16s}.prose a:hover{color:var(--rust);border-color:var(--rust-deep)}.prose .soft{color:var(--ink-dark);font-style:normal}.about-rail{padding-top:32px;position:sticky;top:80px}@media (max-width:980px){.about-rail{padding-top:0;position:static}}.joke{border:1px solid #1f2a1c2e;border-left:3px solid var(--rust);font-family:var(--serif);color:var(--ink-dark);cursor:pointer;background:#fffae8b3;border-radius:2px;flex-direction:column;gap:12px;padding:28px 24px 22px 28px;font-size:18px;line-height:1.45;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative}.joke:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px #00000038}.joke .quote-mark{font-family:var(--serif);color:var(--rust);opacity:.32;font-size:56px;font-style:italic;line-height:1;position:absolute;top:4px;left:14px}.joke .setup{font-style:italic}.joke .punchline{font-family:var(--display);color:var(--rust-deep);font-size:18px;font-style:normal;line-height:1.25}.joke .joke-meta{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dark-3);margin-top:4px;font-size:9px}.projects{color:var(--ink-light);position:relative}.projects-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:32px;display:flex}.proj-section-title{font-family:var(--display);letter-spacing:-.02em;color:var(--ink-cream);margin-top:4px;font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.05}.projects-pager{align-items:center;gap:8px;display:inline-flex}.projects-pager[hidden]{display:none}.page-btn{width:36px;height:36px;color:var(--ink-cream);cursor:pointer;background:#f8efd90f;border:1px solid #f8efd92e;border-radius:50%;justify-content:center;align-items:center;transition:background .16s,color .16s;display:inline-flex}.page-btn:hover{background:var(--rust);border-color:var(--rust)}.page-btn svg{width:12px;height:12px}.page-counter{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-quiet);font-size:11px}.page-counter b{color:var(--ink-cream);font-weight:500}.podium-hero{border-bottom:1px dashed #f8efd92e;grid-template-columns:minmax(0,1.05fr) minmax(280px,1fr);align-items:end;gap:56px;margin-bottom:56px;padding-bottom:64px;display:grid}@media (max-width:980px){.podium-hero{grid-template-columns:1fr;align-items:start;gap:36px}}.ph-title{font-family:var(--display);letter-spacing:-.025em;color:var(--rust);flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:14px;font-size:clamp(56px,9vw,124px);font-weight:400;line-height:1;display:flex}.ph-status{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#b6e0a4;vertical-align:middle;border:1px solid;align-items:center;gap:8px;padding:5px 10px;font-size:10.5px;display:inline-flex}.ph-status .pulse{background:currentColor;border-radius:50%;width:6px;height:6px;animation:2.6s ease-in-out infinite livePulse}.ph-url{font-family:var(--mono);color:#ffb085;border-bottom:1px solid #0000;align-items:center;gap:8px;margin-bottom:22px;font-size:13px;transition:color .16s,border-color .16s;display:inline-flex}.ph-url:hover{color:var(--rust);border-bottom-color:var(--rust)}.ph-url .arrow{transition:transform .16s}.ph-url:hover .arrow{transform:translate(2px,-2px)}.ph-body{font-family:var(--serif);color:var(--ink-mid);max-width:44ch;margin-bottom:28px;font-size:clamp(18px,1.5vw,22px);font-weight:400;line-height:1.55}.ph-body em{color:var(--rust);font-style:italic}.ph-cells{border-top:1px solid #f8efd92e;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.ph-cells .cell{border-bottom:1px solid #f8efd91a;padding:14px 16px 14px 0}.ph-cells .cell+.cell{border-left:1px solid #f8efd91a;padding-left:16px}.ph-cells .k{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-quiet);margin-bottom:6px;font-size:9.5px}.ph-cells .v{font-family:var(--serif);color:var(--ink-cream);font-size:17px}.ph-cells .v small{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-quiet);margin-left:6px;font-size:9.5px}.pwindow{background:#141e12d9;border:1px solid #f8efd929;border-radius:8px;transition:box-shadow .2s,border-color .2s,transform .2s;overflow:hidden;box-shadow:0 18px 40px -16px #0009}.pwindow.big{transform:rotate(-.6deg);box-shadow:0 30px 60px -20px #000000b3}.pbar{background:#00000059;border-bottom:1px solid #f8efd914;align-items:center;gap:8px;padding:8px 12px;display:flex}.pbar .dot{border-radius:50%;width:9px;height:9px}.pbar .dot.r{background:#d96450}.pbar .dot.y{background:#d6a04a}.pbar .dot.g{background:#6abb59}.pbar .dot.d{background:#f8efd92e}.pbar .url{font-family:var(--mono);color:var(--ink-quiet);white-space:nowrap;text-overflow:ellipsis;flex:1;margin-left:8px;font-size:10.5px;overflow:hidden}.pthumb{height:180px;position:relative;overflow:hidden}.pthumb svg{width:100%;height:100%;display:block}.pthumb img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.pwindow.big .pthumb,.pthumb.pthumb-tall{height:280px}.bento{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}@media (max-width:1100px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:580px){.bento{grid-template-columns:1fr}}.bcard{color:var(--ink-light);text-decoration:none;transition:transform .2s;display:block}.bcard:hover{transform:translateY(-3px)}.bcard:hover .pwindow{border-color:#f8efd952;box-shadow:0 30px 60px -20px #000000bf}.bcard:hover .popen{color:var(--rust)}.bcard:hover .popen .arrow{transform:translate(2px,-2px)}.bcard .pmeta{background:#243824eb;border-top:1px solid #f8efd914;padding:18px 20px 20px}.bcard .ptitle{font-family:var(--display);letter-spacing:-.005em;color:var(--ink-cream);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:24px;font-weight:400;display:flex}.bcard .ptitle .badge{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid;border-radius:2px;padding:3px 7px;font-size:9px}.bcard .ptitle .badge.live{color:#b6e0a4}.bcard .ptitle .badge.wip{color:var(--ink-quiet)}.bcard .pblurb{font-family:var(--serif);color:var(--ink-mid);min-height:44px;margin-bottom:14px;font-size:15px;font-weight:400;line-height:1.5}.bcard .ptags{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.bcard .ptag{font-family:var(--mono);color:var(--ink-mid);background:#f8efd90f;border:1px solid #f8efd91f;border-radius:12px;padding:3px 8px;font-size:10px}.bcard .ptag.muted{color:var(--ink-quiet);opacity:.5}.bcard .popen{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-cream);align-items:center;gap:6px;font-size:11.5px;transition:color .16s;display:inline-flex}.bcard .popen .arrow{transition:transform .16s}.bcard .popen.muted{color:var(--ink-quiet)}.bcard.coming{cursor:default}.bcard.coming:hover{transform:none}.bcard.coming .pwindow{background:#141e1266;border-style:dashed;border-color:#f8efd938}.bcard.coming .pthumb{background:linear-gradient(135deg,#6c8a541f,#6c8a540a);justify-content:center;align-items:center;display:flex}.dots-three{gap:14px;display:flex}.dots-three span{background:var(--ink-quiet);opacity:.4;border-radius:50%;width:10px;height:10px;animation:1.6s ease-in-out infinite dotBob}.dots-three span:nth-child(2){animation-delay:.2s}.dots-three span:nth-child(3){animation-delay:.4s}@keyframes dotBob{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:.85;transform:translateY(-4px)}}.calendar{color:var(--ink-light);position:relative}.calendar-grid{grid-template-columns:minmax(0,.95fr) minmax(280px,1fr);align-items:start;gap:56px;display:grid}@media (max-width:980px){.calendar-grid{grid-template-columns:1fr;gap:32px}}.calendar h2{font-family:var(--display);letter-spacing:-.02em;color:var(--ink-cream);text-wrap:balance;margin-bottom:18px;font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.05}.calendar h2 em{color:var(--rust);font-style:normal}.calendar p{font-family:var(--serif);color:var(--ink-mid);max-width:50ch;margin-bottom:24px;font-size:17px;font-weight:400;line-height:1.6}.calendar p strong{color:var(--ink-cream);font-weight:500}.cta-row{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.book-cta{font-family:var(--mono);letter-spacing:.04em;border-radius:2px;align-items:center;gap:10px;padding:14px 22px;font-size:13px;transition:background .16s,color .16s,transform .16s,border-color .16s;display:inline-flex}.book-cta.primary{background:var(--rust);color:var(--ink-light)}.book-cta.primary:hover{background:var(--rust-deep);transform:translateY(-1px)}.book-cta.secondary{color:var(--ink-cream);background:#f4ead014;border:1px solid #f4ead052}.book-cta.secondary:hover{background:var(--ink-cream);color:var(--earth);transform:translateY(-1px)}.book-cta .arrow{transition:transform .16s}.book-cta:hover .arrow{transform:translate(3px)}.book-cta.primary:hover .arrow{transform:translate(2px,-2px)}.book-note{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-quiet);margin-top:6px;font-size:11px}.cal-outer{vertical-align:top;display:inline-block;position:relative}.cal-slots-panel{opacity:0;pointer-events:none;z-index:10;background:#0e160cf5;border:1px solid #f8efd924;border-radius:4px;width:148px;padding:12px 10px 10px;transition:transform .3s cubic-bezier(.34,1.4,.64,1),opacity .18s;position:absolute;top:0;right:calc(100% + 8px);transform:translate(calc(100% + 8px))}.cal-slots-panel.is-open{opacity:1;pointer-events:all;transform:translate(0)}.csp-date{text-transform:uppercase;letter-spacing:.09em;color:#f8efd973;white-space:nowrap;margin-bottom:8px;font-size:9.5px}.csp-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.csp-slot{color:var(--ink-cream);font-size:11px;font-family:var(--mono);text-align:center;cursor:pointer;background:#f8efd90f;border:1px solid #f8efd91a;border-radius:3px;padding:5px 3px;line-height:1;transition:background .14s,border-color .14s,color .14s}.csp-slot:hover{background:var(--rust);border-color:var(--rust);color:#fff}.csp-foot{color:#f8efd94d;text-align:right;font-size:9px;font-family:var(--mono);letter-spacing:.04em;margin-top:8px}.cal-mini{background:#141e12b3;border:1px solid #f8efd929;border-radius:4px;padding:22px 24px;position:relative;box-shadow:0 30px 60px -24px #0009}.cal-mini:before{content:"";background:var(--rust);border-radius:50%;width:12px;height:12px;position:absolute;top:-6px;left:50%;transform:translate(-50%);box-shadow:0 0 0 4px #141e12b3}.cal-head{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-mid);justify-content:space-between;align-items:center;margin-bottom:16px;font-size:11px;display:flex}.cal-head .month{font-family:var(--display);color:var(--ink-cream);letter-spacing:-.005em;text-transform:none;font-size:22px;font-weight:400}.cal-head .nav{gap:4px;display:flex}.cal-head .nav button{width:24px;height:24px;color:var(--ink-mid);cursor:pointer;background:0 0;border:1px solid #f8efd92e;border-radius:2px;justify-content:center;align-items:center;transition:border-color .16s,color .16s;display:inline-flex}.cal-head .nav button:hover{border-color:var(--rust);color:var(--rust)}.cal-grid{font-family:var(--mono);grid-template-columns:repeat(7,1fr);gap:4px;font-size:11px;display:grid}.cal-grid .dow{text-align:center;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-quiet);padding:4px 0;font-size:9px}.cal-grid .day{aspect-ratio:1;color:var(--ink-mid);cursor:default;font-variant-numeric:tabular-nums;font-family:var(--mono);background:#f8efd90a;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:11px;transition:background .14s,color .14s,transform .14s;display:flex;position:relative}.cal-grid .day.empty{background:0 0}.cal-grid .day.past{color:#f8efd92e;background:0 0}.cal-grid .day.today{color:var(--ink-cream);border:1px solid var(--rust)}.cal-grid .day.avail{color:var(--ink-cream);cursor:pointer;background:#6c8a542e}.cal-grid .day.avail:after{content:"";background:#6cbb4f;border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%);box-shadow:0 0 6px #6cbb4fb3}.cal-grid .day.avail:hover{background:var(--rust);transform:translateY(-1px)}.cal-grid .day.full{color:#f8efd966;cursor:not-allowed;background:#f8efd905}.cal-grid .day.full:after{content:"×";color:#d8502e80;font-size:9px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.cal-grid .day.loading{color:#f8efd926;cursor:default;background:#f8efd90a;animation:1.4s ease-in-out infinite cal-pulse}@keyframes cal-pulse{0%,to{opacity:.4}50%{opacity:1}}.cal-foot{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-quiet);border-top:1px solid #f8efd91a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:14px;font-size:10.5px;display:flex}.cal-foot .legend{flex-wrap:wrap;gap:14px;display:inline-flex}.cal-foot .legend span{align-items:center;gap:6px;display:inline-flex}.cal-foot .legend .sw{border-radius:50%;width:8px;height:8px}.cal-foot .legend .sw.avail{background:#6cbb4f;box-shadow:0 0 0 2px #6cbb4f2e}.cal-foot .legend .sw.full{background:#d8502e99}.cal-foot .legend .sw.tz{background:var(--rust)}.cta.closer{color:var(--ink-light);padding-top:72px;padding-bottom:56px}.cta-grid{grid-template-columns:minmax(0,1fr) minmax(280px,auto);align-items:end;gap:48px;display:grid}@media (max-width:980px){.cta-grid{grid-template-columns:1fr;align-items:start;gap:28px}}.cta h4{font-family:var(--display);letter-spacing:-.02em;color:var(--ink-cream);text-wrap:balance;max-width:22ch;margin-bottom:20px;font-size:clamp(28px,4.2vw,60px);font-weight:400;line-height:1.08}.cta h4 em{color:var(--rust);font-style:normal}.cta p{font-family:var(--serif);color:var(--ink-mid);max-width:50ch;margin-bottom:20px;font-size:16px;font-weight:400;line-height:1.6}.mail-btn{background:var(--ink-cream);font-family:var(--mono);border-radius:2px;align-items:center;gap:14px;padding:14px 20px;font-size:14px;transition:background .18s,transform .18s,color .18s;display:inline-flex;color:var(--earth)!important}.mail-btn:hover{background:var(--rust);transform:translateY(-1px);color:var(--ink-light)!important}.mail-btn .arrow{transition:transform .18s}.mail-btn:hover .arrow{transform:translate(3px)}.mail-btn .kbd{font-family:var(--mono);letter-spacing:.06em;color:#0000008c;background:#0000001a;border-radius:2px;margin-left:6px;padding:3px 6px;font-size:10px}.mail-btn:hover .kbd{color:#ffffffb3;background:#ffffff2e}.cta-also{font-family:var(--mono);color:var(--ink-quiet);margin-top:14px;font-size:11.5px}.cta-also a{color:var(--ink-cream);border-bottom:1px solid #f8efd92e;padding-bottom:1px;transition:color .16s,border-color .16s}.cta-also a:hover{color:var(--rust);border-color:var(--rust)}.cta-grid-cells{border-top:1px solid #f8efd92e;grid-template-columns:repeat(2,minmax(120px,180px));margin-top:18px;display:grid}.cta-grid-cells .cell{border-bottom:1px solid #f8efd91a;padding:12px 16px 12px 0}.cta-grid-cells .cell+.cell:nth-child(2n){border-left:1px solid #f8efd91a;padding-left:16px}.cta-grid-cells .k{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-quiet);margin-bottom:6px;font-size:9.5px}.cta-grid-cells .v{font-family:var(--serif);color:var(--ink-cream);font-size:15px}.boring-page footer{z-index:1;width:min(92vw,1640px);font-family:var(--mono);letter-spacing:.06em;color:var(--ink-quiet);border-top:1px solid #f8efd91a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:0 auto;padding:36px 0 56px;font-size:11px;display:flex;position:relative}.boring-page footer .socials{gap:8px;display:flex}.boring-page footer .socials a{width:48px;height:48px;color:var(--ink-quiet);border:1px solid #f8efd92e;border-radius:50%;justify-content:center;align-items:center;transition:color .16s,border-color .16s,background .16s,transform .16s;display:inline-flex}.boring-page footer .socials a svg{width:22px;height:22px;display:block}.boring-page footer .socials a:hover{transform:translateY(-2px)}.boring-page footer .socials a[aria-label=GitHub]:hover{color:var(--ink-cream);background:#1c160e;border-color:#1c160e}.boring-page footer .socials a[aria-label=LinkedIn]:hover{color:#fff;background:#0a66c2;border-color:#0a66c2}.boring-page footer .socials a[aria-label=Email]:hover{color:var(--ink-light);border-color:var(--rust);background:var(--rust)}.prose-coming-link{color:var(--ink-dark);border:none;border-bottom:1.5px solid var(--rust);cursor:pointer;font-family:inherit;font-weight:500;font-size:inherit;background:0 0;padding:0 0 1px;transition:color .16s,border-color .16s}.prose-coming-link:hover{color:var(--rust);border-color:var(--rust-deep)}.coming-dialog{background:0 0;border:none;border-radius:6px;width:100%;max-width:min(440px,90vw);padding:0}.coming-dialog::backdrop{-webkit-backdrop-filter:blur(4px);background:#1a1208b8}.coming-dialog-inner{background:#1f2f1d;border:1px solid #f8efd92e;border-radius:6px;flex-direction:column;align-items:flex-start;gap:10px;padding:36px 32px 32px;display:flex;box-shadow:0 24px 64px #0009}.coming-dialog-icon{margin-bottom:2px;font-size:28px;line-height:1}.coming-dialog-title{font-family:var(--display);letter-spacing:-.01em;color:var(--ink-cream);margin:0;font-size:28px;font-weight:400}.coming-dialog-body{font-family:var(--serif);color:var(--ink-mid);margin:0;font-size:16px;line-height:1.6}.coming-dialog-body strong{color:var(--rust);font-style:normal;font-weight:500}.coming-dialog-close{background:var(--rust);color:var(--ink-light);font-family:var(--mono);letter-spacing:.06em;cursor:pointer;border:none;border-radius:2px;align-self:flex-end;margin-top:8px;padding:10px 22px;font-size:12px;transition:background .16s,transform .16s}.coming-dialog-close:hover{background:var(--rust-deep);transform:translateY(-1px)}@media (max-width:720px){.rail nav .sep:nth-of-type(3),.rail nav a:nth-of-type(4),.rail .gameback span{display:none}.boring-page footer{padding:28px 0 40px}.boring-page footer .socials a{width:44px;height:44px}.boring-page footer .socials a svg{width:20px;height:20px}}
