html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}:root{--bg: #0d0c11;--bg-raise: #16141c;--bg-sink: #09080c;--line: rgb(205 190 235 / .11);--line-strong: rgb(205 190 235 / .22);--ink: #f1eef6;--ink-2: #bcb6c9;--ink-3: #8b8598;--violet: #b28aef;--violet-soft: #d8c6fb;--violet-deep: #6c48a6;--purple: var(--violet);--muted: var(--ink-3);--page-base: var(--bg);--link-accent: #c9a0fa;--sans: "Manrope Variable", "Manrope", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--pad: max( clamp(20px, 4.6vw, 80px), env(safe-area-inset-left), env(safe-area-inset-right) );--gap: clamp(16px, 1.7vw, 28px);--nav-h: 76px;--safe-top: env(safe-area-inset-top, 0px);--ease-out: cubic-bezier(.2, .7, .2, 1);font-family:var(--sans);color:var(--ink);background:var(--bg);font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:calc(var(--nav-h) + var(--safe-top) + 16px);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg)}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--violet-soft);outline-offset:4px;border-radius:2px}::selection{background:#7a55b3;color:#fff}h1,h2,h3,p,ol,ul,figure{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:12px;left:24px;padding:12px 16px;background:var(--violet-soft);color:var(--bg);z-index:40;transform:translateY(-160%)}.skip-link:focus{transform:none}.arrow{display:inline-block;transition:transform .22s var(--ease-out)}.site-nav{position:fixed;inset:0 0 auto;z-index:30;height:calc(var(--nav-h) + var(--safe-top));padding:var(--safe-top) var(--pad) 0;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to bottom,#0b0a0ff5,#0b0a0fe6 58%,#0b0a0f8c 82%,#0b0a0f00);transition:transform .36s var(--ease-out)}.site-nav.is-hidden{transform:translateY(-100%)}.brand{position:relative;z-index:2;font-weight:800;font-size:clamp(22px,1.75vw,27px);letter-spacing:-.045em}.brand span,.chapter-head h2>span,.period,.title-period{color:var(--violet)}.nav-links{display:flex;align-items:center;gap:clamp(28px,3vw,52px)}.nav-link{position:relative;display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:600;letter-spacing:-.005em;color:var(--ink-2);transition:color .16s ease}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1.5px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .26s var(--ease-out)}.nav-link:hover,.nav-link:focus-visible,.nav-link[aria-current]{color:var(--ink)}.nav-link:hover:after,.nav-link[aria-current]:after{transform:scaleX(1)}.menu-toggle{display:none}.chapter-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.chapter-head h2,.writing-head h2,.contact-chapter h2{font-size:clamp(56px,8.2vw,132px);line-height:.92;font-weight:650;letter-spacing:-.068em}.chapter-link{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:600;color:var(--ink-2);border-bottom:1px solid var(--line-strong);transition:color .16s ease,border-color .16s ease}.chapter-link:hover,.chapter-link:focus-visible{color:var(--ink);border-color:var(--violet)}.chapter-link:hover .arrow{transform:translate(4px)}#demo{position:relative;isolation:isolate;background:var(--bg)}.page-surface{position:absolute;inset:0;z-index:0;overflow:clip;pointer-events:none}.page-surface:not([data-ready]){visibility:hidden}.page-surface:before,.page-surface:after{content:"";position:absolute;inset:0}.page-surface:before{background:url(/textures/grain-128.png) 0 0 / 128px 128px repeat,radial-gradient(ellipse 64vw 62svh at 52% calc(var(--hero-light-y) - 18svh),rgb(196 182 238 / .075),rgb(150 112 222 / .03) 45%,transparent 78%),radial-gradient(ellipse 58vw 96svh at 8% var(--reading-light-y),rgb(176 170 218 / .06),rgb(150 146 200 / .022) 46%,transparent 78%),var(--sink, linear-gradient(transparent, transparent))}.page-surface:after{background-image:radial-gradient(circle,rgb(196 186 222 / .26) .8px,transparent 1.3px),radial-gradient(circle,rgb(170 160 195 / .15) .65px,transparent 1px);background-size:96px 96px,32px 32px;background-position:16px 16px,0 0;-webkit-mask-image:var(--dot-presence),radial-gradient(ellipse var(--reader-rx) var(--reader-ry) at var(--reader-x) var(--reader-y),rgb(255 255 255 / .1),rgb(255 255 255 / .25) 50%,#fff 100%);mask-image:var(--dot-presence),radial-gradient(ellipse var(--reader-rx) var(--reader-ry) at var(--reader-x) var(--reader-y),rgb(255 255 255 / .1),rgb(255 255 255 / .25) 50%,#fff 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.mark-field{position:fixed;inset:0;z-index:1;pointer-events:none}.ribbon-rim{opacity:var(--rim-light, 0)}main{position:relative}.identity-scene{height:158svh;position:relative}.identity-stage{position:sticky;top:0;height:100svh;min-height:580px;isolation:isolate;overflow:clip}.im{position:absolute;left:var(--pad);top:max(118px,16%);font-size:clamp(40px,3.6vw,60px);font-weight:700;line-height:1;letter-spacing:-.05em;color:var(--ink)}.wordmark-space{position:absolute;left:var(--pad);right:var(--pad);top:26%;height:36%;pointer-events:none}.micro-letters{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.central-mark{visibility:hidden;position:fixed;left:0;top:0;transform-origin:0 0;z-index:1;pointer-events:none;width:380px;height:350px;will-change:transform,opacity}.identity-ready .central-mark{visibility:visible}.central-mark svg{width:100%;height:100%;overflow:visible}.ribbon-pointer{opacity:var(--pointer-light, 0)}.ribbon-light{opacity:var(--ambient-strength, 1)}.is-monochrome .ribbon-body{fill:#bea0e5}.is-monochrome .nine-contour .ribbon-body{stroke:#bea0e5}.is-monochrome .ribbon-side,.is-monochrome .ribbon-face,.is-monochrome .ribbon-edge,.is-monochrome .ribbon-light,.is-monochrome .ribbon-pointer{display:none}.intro{position:absolute;left:var(--pad);top:70%;width:min(1040px,72%);will-change:transform,opacity}.intro p{font-size:clamp(24px,2.55vw,40px);line-height:1.24;font-weight:500;letter-spacing:-.032em;color:var(--ink-2);text-wrap:pretty}.intro em{font-style:normal;color:var(--violet-soft)}.period{font-weight:800}@media(min-width:761px)and (max-height:700px){:root{--nav-h: 64px}.im{top:13%;font-size:40px}.wordmark-space{top:21%;height:34%}.intro{top:64%;width:min(1040px,80%)}.intro p{font-size:clamp(22px,2.1vw,30px)}}@media(max-width:760px){:root{--pad: max(20px, env(safe-area-inset-left), env(safe-area-inset-right));--nav-h: 60px}.brand{font-size:22px}.menu-toggle{position:relative;z-index:2;display:inline-grid;place-content:center;gap:6px;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:none;cursor:pointer}.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform .28s var(--ease-out)}.menu-open .menu-toggle span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.75px) rotate(-45deg)}.nav-links{position:fixed;inset:0;z-index:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:calc(var(--nav-h) + var(--safe-top)) var(--pad) 18vh;background:#0b0a0ffb;opacity:0;visibility:hidden;transition:opacity .26s ease,visibility 0s linear .26s}.menu-open .nav-links{opacity:1;visibility:visible;transition:opacity .26s ease}.menu-open,.menu-open body{overflow:hidden}.nav-link{font-size:44px;font-weight:650;letter-spacing:-.05em;min-height:60px;color:var(--ink)}.nav-link:after{bottom:10px}.site-nav{background:linear-gradient(to bottom,#0d0c11f5,#0d0c11d9 70%,#0d0c1100)}.identity-scene{height:150svh}.identity-stage{min-height:560px}.im{top:calc(clamp(96px,13svh,116px) + var(--safe-top));font-size:34px}.wordmark-space{top:calc(clamp(140px,19svh,166px) + var(--safe-top));height:clamp(240px,33svh,290px)}.intro{top:clamp(410px,calc(52svh + 48px),520px);width:calc(100% - var(--pad) * 2)}.intro p{font-size:clamp(21px,5.7vw,24px);line-height:1.32;letter-spacing:-.025em}.chapter-head h2,.writing-head h2,.contact-chapter h2{font-size:clamp(52px,15vw,72px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}html.reduced .identity-scene{height:auto}html.reduced .identity-stage{position:relative;height:100svh}html.reduced *{transition:none!important}html.detail .site-nav,html.detail .im,html.detail .intro,html.detail .micro-letters,html.detail .demo-projects{visibility:hidden}html.detail .identity-scene{height:100svh}.project-showcase{position:relative;display:block;width:100%;overflow:hidden;pointer-events:none;border-radius:clamp(7px,.7vw,11px)}.media-frame{position:absolute;inset:0;opacity:0}.media-frame:first-child{opacity:1}.media-frame img{display:block;width:100%;height:100%;object-fit:contain}.media-frame img[hidden]{display:none}.campus-oj-slides{aspect-ratio:16 / 10;background:#f2f3f5}.campus-oj-slides .media-frame{background:#f2f3f5}.canvascast-slides{aspect-ratio:1.95;background:#f9f8f4}.canvascast-slides .media-frame{padding:6px;background:#f9f8f4}.canvascast-slides .media-frame[data-view=appearance]{background:#676970}.canvascast-slides .media-frame[data-view=output]{background:#dde0de}.schedule-triptych{aspect-ratio:7 / 5;background:#09090c;container-type:size;--screen-gap: clamp(8px, .9vw, 14px);--screen-inset: clamp(14px, 1.6vw, 26px)}.schedule-pair{display:flex;align-items:center;justify-content:center;gap:var(--screen-gap)}.schedule-screen,.schedule-spacer{display:block;flex:none;width:min(calc((100cqw - var(--screen-inset) * 2 - var(--screen-gap) * 2) / 3),calc((100cqh - var(--screen-inset) * 2) * 110 / 239));aspect-ratio:110 / 239}.schedule-screen{overflow:hidden;padding:clamp(2px,.28vw,4px);border-radius:clamp(10px,1.4vw,22px);background:linear-gradient(160deg,#2b2634,#131117 60%,#0d0c10);box-shadow:0 0 0 1px #ffffff1a,0 30px 60px -30px #000000f2}.schedule-screen img{display:block;width:100%;height:100%;object-fit:contain;border-radius:clamp(8px,1.15vw,18px)}.schedule-week{box-shadow:0 0 0 1px #ffffff24,0 40px 70px -26px #000,0 0 80px -30px #966ee673}.schedule-week{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1.05);z-index:2}.tree-film{aspect-ratio:16 / 9;background:#010301}.tree-film img,.tree-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.tree-film video{opacity:0;transition:opacity .4s ease}.tree-film[data-video-ready=true]:not([data-media-static=true]) video{opacity:1}
