:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#171411;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f6f1e8;--paper-deep:#e9dfd2;--ink:#171411;--ink-soft:#6b625a;--line:#1714112e;--line-strong:#17141175;--orange:#f26322;--orange-dark:#b84415;--orange-pale:#ffd3b5;--serif:"Newsreader", Georgia, serif;--mono:"IBM Plex Mono", monospace;--ease:cubic-bezier(.2, .75, .25, 1);background:#f6f1e8;font-family:Instrument Sans,Aptos,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}body{background:var(--paper);min-height:100svh;overflow:hidden}body:before{z-index:-1;content:"";opacity:.22;pointer-events:none;background-image:radial-gradient(#f2632233 .75px,#0000 .75px);background-position:0 0;background-size:26px 26px;position:fixed;inset:0}button,a{color:inherit}a{text-decoration:none}button{font:inherit}svg{width:1em;height:1em;display:block}::selection{color:var(--paper);background:var(--orange)}.skip-link{z-index:100;color:var(--paper);background:var(--ink);padding:.75rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.page-shell{grid-template-rows:auto minmax(0,1fr) auto;width:min(1320px,100% - 4rem);height:100svh;min-height:620px;margin-inline:auto;padding:1.5rem 0 .9rem;display:grid}.site-header{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:center;padding:0 0 .95rem;display:flex}.wordmark{font-family:var(--mono);letter-spacing:-.06em;text-transform:lowercase;align-items:center;gap:.4rem;font-size:.86rem;font-weight:600;display:inline-flex}.wordmark__spark{width:1.35rem;height:1.35rem;color:var(--ink);background:var(--orange);font-family:var(--serif);place-items:center;font-size:1.2rem;font-weight:600;line-height:1;display:grid}.site-header__right,.site-header nav{align-items:center;display:flex}.site-header__right{gap:clamp(1.5rem,4vw,4.25rem)}.header-note,.site-header nav a,.section-index,.hero-block__availability,.profile-facts span,.project-row__label,.project-row__meta,.work-block__footer,.site-footer{font-family:var(--mono);letter-spacing:.045em;text-transform:uppercase;font-size:.59rem}.header-note,.hero-block__availability,.profile-facts span,.project-row__label,.project-row__meta,.work-block__footer,.site-footer{color:var(--ink-soft)}.site-header nav{gap:1.3rem}.site-header nav a{color:var(--ink);align-items:center;gap:.26rem;transition:color .16s;display:inline-flex}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--orange-dark)}.home-grid{grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);gap:clamp(2.6rem,6vw,7.25rem);min-height:0;padding:clamp(3.3rem,7vh,6.4rem) 0 1.45rem;display:grid}.hero-block,.work-block{min-width:0;min-height:0}.hero-block{flex-direction:column;display:flex}.hero-block__topline,.work-block__header,.github-line,.work-block__footer,.site-footer{opacity:0;animation:appear .52s 70ms var(--ease) forwards}.hero-block__topline,.work-block__header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-index{color:var(--orange-dark)}.hero-block h1{letter-spacing:-.09em;text-wrap:balance;opacity:0;max-width:760px;animation:appear .65s .13s var(--ease) forwards;margin:clamp(1.5rem,3.2vh,2.8rem) 0 0;font-size:clamp(3.25rem,5.35vw,5.55rem);font-weight:560;line-height:.84}.hero-block h1 span{color:var(--orange)}.hero-block h1 em{color:var(--orange-dark);font-family:var(--serif);letter-spacing:-.07em;font-style:italic;font-weight:430}.hero-copy{max-width:570px;color:var(--ink-soft);text-wrap:balance;opacity:0;animation:appear .56s .21s var(--ease) forwards;margin:clamp(1.45rem,3vh,2.25rem) 0 0;font-size:clamp(.9rem,1.25vw,1.04rem);line-height:1.48}.hero-links{opacity:0;animation:appear .56s .28s var(--ease) forwards;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin-top:clamp(1.25rem,2.8vh,2.1rem);display:flex}.hero-link{border-bottom:1px solid var(--line-strong);min-height:2.25rem;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;transition:color .16s ease, border-color .16s ease, background .16s ease, transform .16s var(--ease);align-items:center;gap:.35rem;font-size:.62rem;display:inline-flex}.hero-link span,.all-link span,.project-row__name span,.project-row__meta a span,.github-line__arrow span{transition:transform .15s var(--ease)}.hero-link:hover,.hero-link:focus-visible{color:var(--orange-dark);border-color:var(--orange-dark)}.hero-link:hover span,.hero-link:focus-visible span,.all-link:hover span,.all-link:focus-visible span,.project-row__name:hover span,.project-row__name:focus-visible span,.project-row__meta a:hover span,.project-row__meta a:focus-visible span,.github-line:hover .github-line__arrow span,.github-line:focus-visible .github-line__arrow span{transform:translate(2px,-2px)}.hero-link--primary{color:var(--paper);border-color:var(--ink);background:var(--ink);padding:0 .85rem}.hero-link--primary:hover,.hero-link--primary:focus-visible{color:var(--ink);border-color:var(--orange);background:var(--orange);transform:translateY(-2px)}.hero-link svg{width:.88rem;height:.88rem}.profile-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);opacity:0;animation:appear .56s .34s var(--ease) forwards;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin-top:auto;padding:.85rem 0;display:grid}.profile-facts div{gap:.3rem;min-width:0;display:grid}.profile-facts strong{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:600;overflow:hidden}.github-line{border-left:3px solid var(--orange);transition:background .16s ease, transform .16s var(--ease);background:#f2632214;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;margin-top:.9rem;padding:.75rem .7rem .75rem .6rem;display:grid}.github-line:hover,.github-line:focus-visible{background:var(--orange-pale);transform:translate(3px)}.github-line__mark{width:1.9rem;height:1.9rem;color:var(--paper);background:var(--ink);place-items:center;display:grid}.github-line__mark svg{width:1rem;height:1rem}.github-line__copy{gap:.14rem;min-width:0;display:grid}.github-line__copy strong{font-family:var(--mono);font-size:.68rem;font-weight:600}.github-line__copy small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.63rem;overflow:hidden}.github-line__arrow{border:1px solid var(--line-strong);border-radius:50%;place-items:center;width:1.7rem;height:1.7rem;font-size:.75rem;display:grid}.work-block{border-left:1px solid var(--line-strong);flex-direction:column;padding-left:clamp(1.8rem,3.5vw,4.2rem);display:flex}.work-block__header{border-bottom:1px solid var(--line-strong);align-items:flex-end;padding-bottom:1rem}.work-block h2{font-family:var(--serif);letter-spacing:-.07em;margin:.55rem 0 0;font-size:clamp(2.2rem,3.9vw,3.95rem);font-style:italic;font-weight:430;line-height:.88}.all-link{border-bottom:1px solid var(--ink);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.25rem;padding-bottom:.2rem;font-size:.61rem;transition:color .16s,border-color .16s;display:inline-flex}.all-link:hover,.all-link:focus-visible{color:var(--orange-dark);border-color:var(--orange-dark)}.project-list{flex:1;min-height:0;overflow:hidden}.project-row{border-bottom:1px solid var(--line);opacity:0;animation:appear .56s var(--delay,.36s) var(--ease) forwards;transition:padding-left .16s var(--ease);padding:.95rem 0 .85rem;position:relative}.project-row:first-child{--delay:.36s}.project-row:nth-child(2){--delay:.42s}.project-row:nth-child(3){--delay:.48s}.project-row:nth-child(4){--delay:.54s}.project-row:before{background:var(--orange);content:"";opacity:0;transform-origin:bottom;width:3px;transition:opacity .16s ease, transform .22s var(--ease);position:absolute;top:0;bottom:0;left:-1px;transform:scaleY(0)}.project-row:hover,.project-row:focus-within{padding-left:.75rem}.project-row:hover:before,.project-row:focus-within:before{opacity:1;transform:scaleY(1)}.project-row__heading{grid-template-columns:2rem minmax(0,1fr) auto;align-items:baseline;gap:.65rem;display:grid}.project-row__number{color:var(--orange-dark);font-family:var(--mono);font-size:.6rem}.project-row__name{letter-spacing:-.065em;align-items:center;gap:.35rem;width:fit-content;font-size:clamp(1.35rem,2vw,1.95rem);font-weight:600;line-height:.95;transition:color .16s;display:inline-flex}.project-row__name:hover,.project-row__name:focus-visible{color:var(--orange-dark)}.project-row__name span{font-size:.8em}.project-row p{max-width:38rem;color:var(--ink-soft);margin:.55rem 0 .6rem 2.65rem;font-size:.72rem;line-height:1.4}.project-row__meta{justify-content:space-between;gap:1rem;margin-left:2.65rem;font-size:.55rem;display:flex}.project-row__meta>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-row__meta a{color:var(--orange-dark);border-bottom:1px solid;flex:none;align-items:center;gap:.2rem;font-size:.55rem;display:inline-flex}.work-block__footer{justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:.8rem;display:flex}.social-links{gap:.7rem;display:flex}.social-links a{width:1.1rem;height:1.1rem;color:var(--ink);transition:color .16s ease, transform .16s var(--ease);place-items:center;display:grid}.social-links a:hover,.social-links a:focus-visible{color:var(--orange-dark);transform:translateY(-2px)}.site-footer{z-index:45;border-top:1px solid var(--line-strong);justify-content:space-between;align-items:center;gap:1rem;padding-top:.75rem;display:flex;position:relative}.site-footer p{align-items:center;gap:.35rem;margin:0;display:inline-flex}.footer-mark{background:var(--orange);width:.45rem;height:.45rem}.mascot{z-index:40;pointer-events:none;width:clamp(66px,5.25vw,84px);position:fixed;bottom:-.55rem;left:max(.35rem,50vw - 660px - 5.5rem)}.mascot__button{cursor:help;pointer-events:auto;transform-origin:50% 100%;width:100%;transition:transform .2s var(--ease);background:0 0;border:0;padding:0;position:relative}.mascot__button:hover,.mascot__button:focus-visible,.mascot--speaking .mascot__button{outline:none;transform:rotate(-2deg)translateY(-4px)scale(1.02)}.mascot__button:focus-visible:after{border:2px dashed var(--orange-dark);content:"";border-radius:50%;position:absolute;inset:10% 6% 3%}.mascot img{filter:drop-shadow(0 7px 8px #1714112b);-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.mascot__hint{border:1px solid var(--ink);color:var(--ink);background:var(--orange-pale);font-family:var(--mono);white-space:nowrap;padding:.24rem .36rem;font-size:.46rem;transition:opacity .14s;position:absolute;bottom:1.15rem;right:-.3rem}.mascot--speaking .mascot__hint{opacity:0}.fact-bubble{border:1px solid var(--ink);width:min(250px,70vw);color:var(--ink);background:var(--paper);box-shadow:5px 5px 0 var(--orange);opacity:0;pointer-events:none;transform-origin:0 100%;transition:opacity .15s ease, transform .18s var(--ease);border-radius:.1rem;padding:.75rem .85rem;font-size:.72rem;font-weight:600;line-height:1.35;position:absolute;bottom:calc(100% - 1.5rem);left:55%;transform:translateY(8px)scale(.96)}.fact-bubble__label{color:var(--orange-dark);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.25rem;font-size:.5rem;display:block}.mascot--speaking .fact-bubble{opacity:1;transform:translateY(0)scale(1)}@keyframes appear{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (height<=760px) and (width>=761px){.page-shell{min-height:560px;padding-top:.9rem}.home-grid{padding-top:2.6rem}.hero-block h1{font-size:clamp(3.05rem,5.1vw,5.1rem)}.hero-copy{margin-top:1.25rem;font-size:.85rem}.hero-links{margin-top:1.1rem}.profile-facts{padding-block:.65rem}.project-row{padding-block:.7rem}.project-row p{margin-top:.4rem;margin-bottom:.4rem;font-size:.66rem}}@media (width<=980px){.page-shell{width:min(100% - 2.5rem,1320px)}.home-grid{gap:clamp(1.8rem,4vw,3rem)}.work-block{padding-left:1.8rem}.hero-block h1{font-size:clamp(3.1rem,6.6vw,5.2rem)}}@media (width<=760px){body{overflow:auto}.page-shell{width:min(100% - 1.5rem,680px);height:auto;min-height:100svh;padding:.9rem 0 1.1rem;display:block}.site-header{padding-bottom:.8rem}.site-header__right{gap:1rem}.header-note{display:none}.site-header nav{gap:.9rem}.home-grid{padding:2.8rem 0 1.8rem;display:block}.hero-block h1{max-width:600px;margin-top:1.4rem;font-size:clamp(3.15rem,13vw,5.2rem)}.hero-copy{max-width:560px;margin-top:1.6rem;font-size:.9rem}.hero-links{margin-top:1.35rem}.profile-facts{margin-top:2.4rem}.work-block{border-top:1px solid var(--line-strong);border-left:0;margin-top:3rem;padding:1.8rem 0 0}.work-block__header{padding-bottom:.9rem}.work-block h2{font-size:clamp(2.15rem,9vw,3.4rem)}.project-list{overflow:visible}.project-row{padding-block:1rem}.project-row__name{font-size:clamp(1.35rem,7vw,1.85rem)}.project-row p,.project-row__meta{margin-left:2.65rem}.site-footer{padding-top:.75rem}.mascot{width:75px;bottom:-.55rem;left:.15rem;right:auto}.mascot__hint{display:none}.fact-bubble{width:min(230px,70vw);padding:.65rem .7rem;font-size:.65rem;left:45%;right:auto}}@media (width<=520px){.site-header nav a:first-child{display:none}.hero-block__availability{text-align:right;max-width:9rem}.hero-block h1{font-size:clamp(2.95rem,13vw,4.25rem);line-height:.88}.profile-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.profile-facts div:last-child{grid-column:1/-1}.project-row__heading{grid-template-columns:1.8rem minmax(0,1fr);gap:.45rem}.project-row__label{grid-column:2;margin-top:.15rem}.project-row p,.project-row__meta{margin-left:2.25rem}.project-row__meta{flex-wrap:wrap;row-gap:.35rem}.github-line__copy small{max-width:14rem}.site-footer{flex-direction:column;align-items:flex-start;gap:.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
