@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.invisible{visibility:hidden}.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.container{width:100%}.block{display:block}.flex{display:flex}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}@layer base{:root{--bg:#1c1917;--paper:#faf6f2;--heading:#f5f0e8;--text:#a8a29e;--muted:#78716c;--line:#faf6f20f;--shadow:#00000047}*{box-sizing:border-box;letter-spacing:0}::selection{color:var(--bg);background:var(--paper)}html{min-height:100%;color:var(--text);background:var(--bg);scrollbar-color:#faf6f23d transparent;scrollbar-width:thin}body{min-height:100vh;color:var(--text);background:var(--bg);font-family:var(--font-lexend),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14px;line-height:1.5;position:relative;overflow-x:hidden}body:before{z-index:0;pointer-events:none;content:"";filter:blur(130px);opacity:.5;background:radial-gradient(circle at 50% 0,#ff8c0057 0%,#ff8c001f 32%,#ff8c0000 72%);width:min(780px,90vw);height:520px;position:fixed;top:-250px;left:50%;transform:translate(-50%)}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block}}.site-shell{z-index:1;width:100%;max-width:550px;min-height:100vh;margin:0 auto;padding:80px 20px 96px;position:relative}.site-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;transition:opacity .18s,filter .18s;display:grid}.site-identity{gap:4px;min-width:0;display:grid;position:relative}.site-identity h1{color:var(--heading);font-family:var(--font-afton),Georgia,"Times New Roman",serif;white-space:nowrap;margin:0;font-size:31px;font-style:italic;font-weight:700;line-height:1}.email-copy{width:max-content;color:var(--muted);cursor:pointer;background:0 0;border:0;outline:none;align-items:center;gap:6px;padding:0;font-size:12px;line-height:1.35;transition:color .16s;display:inline-flex}.email-copy:hover,.email-copy:focus-visible{color:var(--text)}.email-copy-icon{width:14px;height:14px;color:var(--heading);opacity:0;transition:opacity .16s,transform .16s,color .16s;display:inline-flex;position:relative;transform:translate(-2px)}.email-copy:hover .email-copy-icon,.email-copy:focus-visible .email-copy-icon,.email-copy-icon[data-copied=true]{opacity:1;transform:translate(0)}.email-copy-icon[data-copied=true]{color:var(--paper)}.email-copy-symbol{justify-content:center;align-items:center;display:inline-flex;position:absolute;inset:0}.language-toggle{color:var(--muted);background:#faf6f209;border:1px solid #faf6f214;border-radius:999px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.language-toggle-item{min-width:30px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;outline:none;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:520;line-height:1;transition:color .16s,background-color .16s;display:inline-flex}.language-toggle-item:hover,.language-toggle-item:focus-visible{color:var(--text)}.language-toggle-item[data-state=on]{color:var(--heading);background:#faf6f21a}.intro{max-width:500px;color:var(--text);margin:18px 0 0;font-size:15px;line-height:1.45;transition:opacity .18s,filter .18s}.portfolio-section{margin-top:38px}.section-title{color:var(--heading);font-family:var(--font-afton),Georgia,"Times New Roman",serif;margin:0 0 12px;font-size:22px;font-style:italic;font-weight:700;line-height:1;transition:opacity .18s,filter .18s}.portfolio-list{flex-direction:column;display:flex}.portfolio-row{min-height:72px;color:var(--text);border-bottom:1px solid var(--line);outline:none;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:20px;padding:13px 0;transition:color .18s,opacity .18s,filter .18s;display:grid}.portfolio-row-button{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0}.portfolio-row[data-nested=true]{grid-template-columns:60px minmax(0,1fr) auto;padding-left:34px}.portfolio-row:focus-visible{color:var(--heading)}.portfolio-row:focus-visible .portfolio-row-title{text-underline-offset:4px;text-decoration:underline}.portfolio-row-media{width:60px;height:44px}.portfolio-subrows{overflow:hidden}.portfolio-row-copy{gap:4px;min-width:0;display:grid}.portfolio-row-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;line-height:1.3;overflow:hidden}.portfolio-row-description{max-width:330px;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.35;display:-webkit-box;overflow:hidden}.portfolio-row-tags{flex-wrap:wrap;gap:5px;margin-top:1px;display:flex}.portfolio-tag{color:#faf6f2a8;background:#faf6f20b;border:1px solid #faf6f214;border-radius:999px;align-items:center;gap:4px;min-width:0;padding:3px 6px;font-size:10px;font-weight:520;line-height:1;display:inline-flex}.portfolio-tag-icon{flex:none;width:11px;height:11px}.portfolio-row-meta{justify-content:flex-end;align-items:center;gap:7px;min-width:max-content;display:inline-flex}.portfolio-row-date{color:var(--muted);white-space:nowrap;font-size:13px;line-height:1.3;transition:color .18s}.portfolio-row-chevron{color:var(--muted);transition:color .18s,transform .18s}.portfolio-row[data-expanded=true] .portfolio-row-chevron{transform:rotate(90deg)}.polaroid-stack{width:60px;height:44px;position:relative}.polaroid-card{width:57px;height:32px;box-shadow:0 6px 14px var(--shadow);background:#2c2622;border:2.8px solid #faf6f2f5;transition:transform .18s,filter .18s,box-shadow .18s;display:block;position:absolute;top:6px;left:0;overflow:hidden}.polaroid-card img,.project-hero-card img,.route-cover-image{object-fit:cover}.polaroid-card[data-card-index="0"]{z-index:3;transform:rotate(-1.5deg)}.polaroid-card[data-card-index="1"]{z-index:2;transform:translate(2px,-1px)rotate(2deg)}.polaroid-card[data-card-index="2"]{z-index:1;transform:translate(-2px,1px)rotate(-3deg)}.detail-shell{z-index:1;width:100%;max-width:550px;min-height:100vh;margin:0 auto;padding:80px 20px 110px;position:relative}.detail-article{opacity:1}.project-hero{aspect-ratio:16/10;width:100%;margin:0 0 48px;position:relative}.project-hero-card{background:#2c2622;border:12px solid #faf6f2f5;margin:0;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s;display:block;position:absolute;inset:0;overflow:hidden;box-shadow:0 18px 44px #00000052}.route-cover-layer{z-index:80;pointer-events:none;position:fixed;inset:0}.route-cover-card{z-index:81;transform-origin:50%;contain:paint;will-change:transform,opacity;background:#2c2622;border:12px solid #faf6f2f5;display:block;position:fixed;overflow:hidden;box-shadow:0 22px 56px #00000061}.route-cover-image{width:100%;height:100%}.detail-header{margin-top:0}.detail-header h1{color:var(--heading);font-family:var(--font-afton),Georgia,"Times New Roman",serif;margin:0;font-size:31px;font-style:italic;font-weight:700;line-height:1.08}.detail-meta{flex-wrap:wrap;align-items:center;gap:9px 10px;margin-top:14px;display:flex}.detail-meta p{color:var(--muted);font-family:var(--font-afton),Georgia,"Times New Roman",serif;margin:0;font-size:15px;font-style:italic;line-height:1.3}.detail-tags{margin-top:0}.detail-body{color:var(--text);margin-top:28px;font-size:15px;line-height:1.68}.detail-body p,.detail-body h2,.detail-body h3,.detail-body ul,.detail-body ol,.detail-body blockquote,.detail-body figure,.detail-body pre{margin:0}.detail-body p+p,.detail-body p+h2,.detail-body h2+p,.detail-body ul+p,.detail-body ol+p,.detail-body figure+p{margin-top:20px}.detail-body h2{color:var(--heading);margin-top:34px;font-size:18px;font-weight:560;line-height:1.3}.detail-body a{color:var(--heading);text-underline-offset:3px;-webkit-text-decoration:underline #faf6f257;text-decoration:underline #faf6f257;transition:text-decoration-color .16s}.detail-body a:hover{text-decoration-color:#faf6f2cc}.back-button{z-index:10;width:38px;height:38px;color:var(--heading);cursor:pointer;background:#1c1917d1;border:1px solid #faf6f21f;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .16s,border-color .16s,transform .16s;display:inline-flex;position:fixed;top:80px;left:calc(50% - 345px);box-shadow:0 14px 28px #0000003d}.education-shell .detail-body{margin-bottom:38px}.article-gallery{gap:18px;margin-top:38px;display:grid}.article-gallery-card{aspect-ratio:16/10;transform-origin:50%;will-change:transform;background:#2c2622;border:9px solid #faf6f2f0;width:100%;margin:0;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s;position:relative;overflow:hidden;box-shadow:0 16px 36px #00000047}.article-gallery-card img{object-fit:cover;pointer-events:none}.back-button:hover,.back-button:focus-visible{color:var(--paper);border-color:#faf6f247;outline:none;transform:translate(-2px)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(*){mix-blend-mode:normal}::view-transition-new(*){mix-blend-mode:normal}html[data-route-transition] .project-hero-card{opacity:0}html[data-route-fade=home] .site-shell{opacity:0;filter:blur(2.4px);transition:opacity .3s cubic-bezier(.32,.72,0,1),filter .3s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1);transform:translateY(5px)}html[data-route-fade=detail] .detail-article{opacity:0;filter:blur(1.4px);transition:opacity .16s cubic-bezier(.23,1,.32,1),filter .16s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1);transform:translateY(4px)}html[data-route-transition=back] .site-shell{animation:.42s cubic-bezier(.32,.72,0,1) both route-home-return}html[data-route-transition=back] .portfolio-row[data-transition-target=true] .polaroid-card[data-card-index="0"]{opacity:0}@keyframes route-home-return{0%{opacity:0;filter:blur(2.4px);transform:translateY(5px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (hover:hover) and (pointer:fine){.portfolio-surface[data-has-active=true] .soft-dim-target{opacity:.36;filter:blur(1.6px)}.portfolio-surface:has(.portfolio-row:hover) .soft-dim-target{opacity:.36;filter:blur(1.6px)}.portfolio-row[data-inactive=true],html[data-list-transition=true] .portfolio-surface .portfolio-row:not([data-active=true]):not([data-group-active=true]){opacity:.24;filter:blur(1.7px)}.portfolio-surface:has(.portfolio-row:hover) .portfolio-row:not(:hover):not([data-group-active=true]){opacity:.24;filter:blur(1.7px)}.portfolio-row:hover,.portfolio-row[data-active=true],.portfolio-row[data-group-active=true]{color:var(--heading)}.portfolio-row:hover .portfolio-row-date,.portfolio-row[data-active=true] .portfolio-row-date,.portfolio-row[data-group-active=true] .portfolio-row-date,.portfolio-row:hover .portfolio-row-chevron,.portfolio-row[data-active=true] .portfolio-row-chevron,.portfolio-row[data-group-active=true] .portfolio-row-chevron{color:var(--text)}.portfolio-row:hover .polaroid-card,.portfolio-row[data-active=true] .polaroid-card{box-shadow:0 8px 18px #00000057}.portfolio-row:hover .polaroid-card[data-card-index="0"],.portfolio-row[data-active=true] .polaroid-card[data-card-index="0"]{transform:translate(3px)rotate(-2.5deg)scale(1.04)}.portfolio-row:hover .polaroid-card[data-card-index="1"],.portfolio-row[data-active=true] .polaroid-card[data-card-index="1"]{transform:translate(10px,-5px)rotate(5deg)scale(1.04)}.portfolio-row:hover .polaroid-card[data-card-index="2"],.portfolio-row[data-active=true] .polaroid-card[data-card-index="2"]{transform:translate(-8px,5px)rotate(-6deg)scale(1.04)}.project-hero:hover .project-hero-card{transform:translateY(-4px)rotate(-.65deg)scale(1.007);box-shadow:0 24px 58px #0000005c}.article-gallery-card:hover{box-shadow:0 18px 42px #00000052}}@media (max-width:760px){body:before{opacity:.2;width:118vw;height:560px;top:-390px}.site-shell,.detail-shell{padding:48px 20px 76px}.site-header{gap:14px}.site-identity h1{font-size:25px}.intro{margin-top:18px}.portfolio-row{grid-template-columns:60px minmax(0,1fr);gap:18px;min-height:78px}.portfolio-row[data-nested=true]{padding-left:22px}.portfolio-row-meta{grid-column:2;justify-content:flex-start;margin-top:-13px}.portfolio-row-description{max-width:none}.portfolio-row-date{font-size:12px}.project-hero-card{border-width:9px}.detail-header h1{font-size:29px}.back-button{margin-bottom:24px;position:static}}@media (max-width:420px){.site-header{gap:10px}.language-toggle-item{min-width:28px;padding:0 7px}}@media (max-width:360px){.site-identity h1{font-size:20px}.site-shell,.detail-shell{padding-left:16px;padding-right:16px}.language-toggle-item{min-width:25px;padding:0 6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.portfolio-surface[data-has-active=true] .soft-dim-target,.portfolio-row[data-inactive=true],html[data-list-transition=true] .portfolio-surface .portfolio-row{filter:none}.portfolio-surface:has(.portfolio-row:hover) .soft-dim-target{filter:none}.portfolio-surface:has(.portfolio-row:hover) .portfolio-row:not(:hover){filter:none}.polaroid-card,.portfolio-row[data-active=true] .polaroid-card,.project-hero-card,.route-cover-card,.article-gallery-card,.back-button:hover,.back-button:focus-visible{transform:none!important}::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}::view-transition-group(*){animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
@font-face{font-family:lexend;src:url(../media/Lexend_VariableFont_wght-s.p.ccc13819.ttf)format("truetype");font-display:swap}@font-face{font-family:lexend Fallback;src:local(Arial);ascent-override:90.26%;descent-override:22.57%;line-gap-override:0.0%;size-adjust:110.79%}.lexend_4b2d390d-module__A_23ya__className{font-family:lexend,lexend Fallback}.lexend_4b2d390d-module__A_23ya__variable{--font-lexend:"lexend","lexend Fallback"}
@font-face{font-family:afton;src:url(../media/Afton_Regular-s.p.af9c101c.ttf)format("truetype");font-display:swap}@font-face{font-family:afton Fallback;src:local(Arial);ascent-override:96.11%;descent-override:30.94%;line-gap-override:2.46%;size-adjust:97.6%}.afton_70d51c9f-module__LMDyhq__className{font-family:afton,afton Fallback}.afton_70d51c9f-module__LMDyhq__variable{--font-afton:"afton","afton Fallback"}
