/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/themes/custom/yusu/dist/./assets/anton-latin-400-normal-Byf51wtH.woff2) format("woff2"),url(/themes/custom/yusu/dist/./assets/anton-latin-400-normal-AUNGEG_V.woff) format("woff")}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/themes/custom/yusu/dist/./assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/themes/custom/yusu/dist/./assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/themes/custom/yusu/dist/./assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/themes/custom/yusu/dist/./assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/themes/custom/yusu/dist/./assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/themes/custom/yusu/dist/./assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(/themes/custom/yusu/dist/./assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/themes/custom/yusu/dist/./assets/caveat-latin-600-normal-zlTlWIYU.woff2) format("woff2"),url(/themes/custom/yusu/dist/./assets/caveat-latin-600-normal-DUjB8dgm.woff) format("woff")}:root{--c-paper:#f3efe6;--c-paper-2:#e8e1d2;--c-ink:#121212;--c-ink-2:#22211f;--c-smoke:#625d55;--c-chrome:#b8b3a8;--c-red:#d7372b;--c-red-deep:#a8281e;--c-mustard:#e3a82b;--color-bg:var(--c-paper);--color-surface:var(--c-paper-2);--color-fg:var(--c-ink);--color-muted:var(--c-smoke);--color-line:var(--c-ink);--color-accent:var(--c-red);--color-accent-text:var(--c-red-deep);--color-on-accent:var(--c-ink);--color-highlight:var(--c-mustard);--color-focus:var(--c-red);--font-display:"Anton","Bebas Neue",Impact,"Arial Narrow",sans-serif;--font-body:"Space Grotesk Variable","Space Grotesk",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--font-hand:"Caveat","Segoe Print","Bradley Hand",cursive;--step--2:clamp(.72rem,.7rem + .1vw,.78rem);--step--1:clamp(.84rem,.82rem + .12vw,.92rem);--step-0:clamp(1rem,.96rem + .2vw,1.13rem);--step-1:clamp(1.2rem,1.12rem + .38vw,1.45rem);--step-2:clamp(1.44rem,1.3rem + .7vw,1.95rem);--step-3:clamp(1.8rem,1.5rem + 1.4vw,2.8rem);--step-4:clamp(2.4rem,1.9rem + 2.6vw,4.4rem);--step-5:clamp(3.2rem,2.2rem + 5vw,7rem);--step-display:clamp(3.8rem,1.6rem + 11vw,13rem);--leading-tight:.92;--leading-snug:1.2;--leading-body:1.6;--tracking-display:.01em;--tracking-label:.14em;--space-3xs:clamp(.25rem,.23rem + .1vw,.31rem);--space-2xs:clamp(.5rem,.47rem + .15vw,.6rem);--space-xs:clamp(.75rem,.7rem + .25vw,.9rem);--space-s:clamp(1rem,.94rem + .3vw,1.2rem);--space-m:clamp(1.5rem,1.4rem + .5vw,1.8rem);--space-l:clamp(2rem,1.8rem + 1vw,2.6rem);--space-xl:clamp(3rem,2.6rem + 2vw,4.5rem);--space-2xl:clamp(4rem,3.2rem + 4vw,7.5rem);--space-3xl:clamp(6rem,4.5rem + 7vw,11rem);--container:90rem;--container-text:42rem;--gutter:clamp(1rem,.5rem + 3vw,3rem);--line-hair:1px;--line:2px;--line-bold:3px;--radius-0:0;--radius-s:4px;--radius-pill:999px;--shadow-hard:6px 6px 0 0 var(--color-line);--shadow-hard-s:3px 3px 0 0 var(--color-line);--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-fast:.14s;--dur:.28s;--dur-slow:.6s;--z-base:0;--z-raised:10;--z-header:100;--z-overlay:200;--z-grain:300}[data-tone=ink]{--color-bg:var(--c-ink);--color-surface:var(--c-ink-2);--color-fg:var(--c-paper);--color-muted:var(--c-chrome);--color-line:var(--c-paper);--color-accent-text:var(--c-red);--color-on-accent:var(--c-ink)}[data-tone=red]{--color-bg:var(--c-red);--color-surface:var(--c-red-deep);--color-fg:var(--c-ink);--color-muted:var(--c-ink);--color-line:var(--c-ink);--color-accent:var(--c-ink);--color-accent-text:var(--c-ink);--color-on-accent:var(--c-paper);--color-focus:var(--c-ink)}[data-tone]{background-color:var(--color-bg);color:var(--color-fg)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;scroll-padding-top:6rem}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{min-height:100svh;background-color:var(--color-bg);color:var(--color-fg);font-family:var(--font-body);font-size:var(--step-0);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}body:after{content:"";position:fixed;inset:0;z-index:var(--z-grain);pointer-events:none;opacity:.09;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}img,picture,svg,video{display:block;max-width:100%}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}ul[role=list],ol[role=list]{list-style:none;padding:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:var(--leading-tight);letter-spacing:var(--tracking-display);text-transform:uppercase;text-wrap:balance}h1{font-size:var(--step-5)}h2{font-size:var(--step-4)}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}p,li{text-wrap:pretty}a{color:inherit;text-decoration-line:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:.2em;transition:text-decoration-thickness var(--dur-fast) var(--ease-out)}@media(hover:hover){a:hover{text-decoration-thickness:.4em;text-decoration-skip-ink:none}}strong{font-weight:700}::selection{background-color:var(--c-red);color:var(--c-ink)}:focus-visible{outline:var(--line-bold) solid var(--color-focus);outline-offset:3px}.prose{max-width:var(--container-text)}.prose>*+*{margin-top:var(--space-s)}.prose h2,.prose h3{margin-top:var(--space-l)}.prose blockquote{border-left:var(--line-bold) solid var(--color-accent);padding-left:var(--space-s);font-family:var(--font-hand);font-size:var(--step-2);line-height:var(--leading-snug)}.container{width:min(100% - 2 * var(--gutter),var(--container));margin-inline:auto}.section{padding-block:var(--space-2xl)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px);white-space:nowrap}.visually-hidden.focusable:is(:active,:focus){position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto}.skip-link{position:absolute;top:var(--space-xs);left:var(--space-xs);z-index:var(--z-overlay);padding:var(--space-2xs) var(--space-s);background:var(--c-red);color:var(--c-ink);font-weight:700}.page-main{display:block}.page-main>.page-content{padding-block:var(--space-xl) var(--space-2xl)}.page-content h1{margin-bottom:var(--space-l)}@media(prefers-reduced-motion:no-preference){.js-motion [data-reveal]:not(.is-revealed){opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.button{--button-bg:var(--color-accent);--button-fg:var(--color-on-accent);--button-shadow:var(--shadow-hard-s);display:inline-flex;align-items:center;gap:0.7em;min-height:3rem;padding:0.8em 1.4em;border:var(--line) solid var(--color-line);border-radius:var(--radius-0);background:var(--button-bg);color:var(--button-fg);box-shadow:var(--button-shadow);font-family:var(--font-mono);font-size:var(--step--1);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;text-decoration:none;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur) var(--ease-out);}.button--outline{--button-bg:transparent;--button-fg:var(--color-fg);}.button--ghost{--button-bg:transparent;--button-fg:var(--color-fg);--button-shadow:none;border-color:transparent;padding-inline:0;}.button__arrow{width:1.15em;height:1.15em;transition:transform var(--dur) var(--ease-out);}@media (hover:hover){.button:hover{text-decoration:none;}.button:not(.button--ghost):hover{transform:translate(3px,3px);box-shadow:0 0 0 0 var(--color-line);}.button:hover .button__arrow{transform:translateX(4px);}}.button:active{transform:translate(3px,3px) scale(0.98);box-shadow:none;}
.logo{--logo-size:2.75rem;display:inline-flex;align-items:center;gap:0.6em;color:inherit;text-decoration:none;}.logo__mark{width:var(--logo-size);height:var(--logo-size);flex:none;}.logo__star{fill:var(--c-red);}.logo__word{display:inline-flex;font-family:var(--font-display);font-size:calc(var(--logo-size) * 0.62);line-height:1;letter-spacing:0.02em;text-transform:uppercase;}.logo__dev{-webkit-text-fill-color:transparent;-webkit-text-stroke:max(1px,0.045em) currentColor;}a.logo{transition:transform var(--dur) var(--ease-out);}@media (hover:hover){a.logo:hover .logo__mark{transform:rotate(-12deg);}}.logo__mark{transition:transform var(--dur-slow) var(--ease-out);}
.project-page{padding-block:calc(var(--space-2xl) + 3rem) var(--space-3xl);}.project-page__header{display:grid;gap:var(--space-m);padding-block-end:var(--space-xl);}.project-page__back{justify-self:start;font-family:var(--font-mono);font-size:var(--step--1);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;text-decoration:none;& span{display:inline-block;transition:transform var(--dur) var(--ease-out);}}@media (hover:hover){.project-page__back:hover span{transform:translateX(-0.25em);}}.project-page__meta{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-s);font-family:var(--font-mono);font-size:var(--step--1);color:var(--color-muted);letter-spacing:var(--tracking-label);text-transform:uppercase;}.project-page__title{max-width:16ch;font-size:var(--step-5);line-height:0.9;}.project-page__intro{display:grid;gap:var(--space-m);max-width:var(--container-text);}.project-page__summary{font-size:var(--step-1);line-height:var(--leading-snug);}.project-page__tags{display:flex;flex-wrap:wrap;gap:var(--space-2xs);padding:0;list-style:none;}.project-page__gallery{display:grid;gap:var(--space-xl);}.project-page__shot{overflow:hidden;border:var(--line-bold) solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-hard);& img{display:block;width:100%;height:auto;}}.project-page__body{max-width:var(--container-text);margin-block-start:var(--space-2xl);font-size:var(--step-0);line-height:var(--leading-body);& :is(p,ul,ol,h2,h3,blockquote) + :is(p,ul,ol,h2,h3,blockquote){margin-block-start:var(--space-s);}& h2,& h3{margin-block-start:var(--space-l);font-size:var(--step-2);}}
.site-footer{padding-block:var(--space-2xl) var(--space-m);overflow:clip;}.site-footer__grid{display:grid;gap:var(--space-l);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));padding-bottom:var(--space-xl);border-bottom:var(--line-hair) dashed var(--color-line);& ul{display:grid;gap:var(--space-3xs);}}.site-footer__col{display:grid;align-content:start;gap:var(--space-xs);}.site-footer__label{color:var(--c-red);font-family:var(--font-mono);font-size:var(--step--2);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;}.site-footer__email{font-size:var(--step-1);font-weight:600;overflow-wrap:anywhere;}.site-footer__muted{color:var(--color-muted);}.site-footer__word{display:flex;justify-content:space-between;padding-block:var(--space-m) var(--space-s);font-family:var(--font-display);font-size:clamp(4rem,23.5vw,24rem);line-height:0.8;text-transform:uppercase;}.site-footer__dev{color:transparent;-webkit-text-stroke:max(2px,0.012em) var(--color-fg);}.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-s);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;}
.site-header{position:fixed;inset:0 0 auto;z-index:var(--z-header);padding-block:var(--space-xs);color:var(--c-ink);transition:transform var(--dur-slow) var(--ease-out),background-color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out);border-bottom:var(--line) solid transparent;& .logo{--logo-size:2.6rem;position:relative;z-index:2;}}.site-header.is-scrolled{background:var(--c-paper);border-bottom-color:var(--c-ink);}.site-header.is-hidden{transform:translateY(-110%);}.site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);}.site-header__links{display:flex;gap:var(--space-xs);& a{display:inline-flex;align-items:baseline;gap:0.4em;padding:0.5em 0.6em;font-family:var(--font-mono);font-size:var(--step--1);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;text-decoration:none;}& a:hover,& a[aria-current='page']{background:var(--c-ink);color:var(--c-paper);}}.site-header__index{color:var(--c-red-deep);font-size:0.8em;}.site-header__links a:hover .site-header__index,.site-header__links a[aria-current='page'] .site-header__index{color:var(--c-red);}.site-header__toggle{position:relative;z-index:2;display:none;align-items:center;gap:0.6em;min-height:2.75rem;padding:0.5em 0.9em;border:var(--line) solid currentColor;background:var(--c-paper);font-family:var(--font-mono);font-size:var(--step--1);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;}.site-header__burger{display:grid;gap:5px;width:1.3rem;& span{height:2px;background:currentColor;transition:transform var(--dur) var(--ease-out);}}.site-header.is-open .site-header__burger span:first-child{transform:translateY(3.5px) rotate(45deg);}.site-header.is-open .site-header__burger span:last-child{transform:translateY(-3.5px) rotate(-45deg);}.site-header__nav{display:flex;align-items:center;gap:var(--space-m);}@media (max-width:55.99em){.site-header__toggle{display:inline-flex;}.site-header__nav{position:fixed;inset:0;z-index:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-xl);padding:var(--space-3xl) var(--gutter) var(--space-xl);background:var(--c-ink);color:var(--c-paper);clip-path:circle(0 at calc(100% - 3rem) 2.5rem);visibility:hidden;transition:clip-path var(--dur-slow) var(--ease-in-out),visibility 0s linear var(--dur-slow);}.site-header.is-open .site-header__nav{clip-path:circle(150% at calc(100% - 3rem) 2.5rem);visibility:visible;transition:clip-path var(--dur-slow) var(--ease-in-out);}.site-header.is-open .logo{color:var(--c-paper);}.site-header__links{flex-direction:column;gap:0;& a{padding:0.1em 0;font-family:var(--font-display);font-size:var(--step-5);font-weight:400;letter-spacing:0;line-height:1.05;}& a:hover,& a[aria-current='page']{background:none;color:var(--c-red);}}.site-header__index{font-family:var(--font-mono);font-size:var(--step-0);color:var(--c-red);}.site-header__action .button{--button-bg:var(--c-red);--button-fg:var(--c-ink);border-color:var(--c-paper);box-shadow:3px 3px 0 0 var(--c-paper);}}html.menu-open{overflow:hidden;}
.stamp{display:inline-block;padding:0.35em 0.7em;border:var(--line-hair) solid currentColor;font-family:var(--font-mono);font-size:var(--step--2);font-weight:700;letter-spacing:var(--tracking-label);line-height:1.2;text-transform:uppercase;white-space:nowrap;}.stamp--stamp{border:var(--line) solid var(--color-accent-text);border-radius:var(--radius-s);color:var(--color-accent-text);transform:rotate(-4deg);box-shadow:inset 0 0 0 2px var(--color-bg),inset 0 0 0 3px var(--color-accent-text);}.stamp--solid{border-color:var(--color-fg);background:var(--color-fg);color:var(--color-bg);}
