:root{--ink:#0a0a0a;--ink-2:#161616;--ink-3:#2a2a2a;--paper:#f4f2ed;--paper-2:#e9e6df;--paper-3:#d7d3ca;--mute:var(--paper);--mute-dark:var(--ink);--ui:var(--ink);--ui-inv:var(--paper);--font-display:var(--font-fraunces), "Times New Roman", serif;--font-body:var(--font-instrument), system-ui, sans-serif;--font-mono:var(--font-mono), ui-monospace, monospace;--font-jp:var(--font-jp), "Hiragino Mincho ProN", "Yu Mincho", serif;--gutter:clamp(20px, 5vw, 80px);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html[data-theme=dark]{--ui:var(--paper);--ui-inv:var(--ink)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}body{background:var(--ink);color:var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow-x:clip}body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:0 0;border:0;padding:0}img,video{max-width:100%;display:block}h1,h2,h3,p{margin:0}::selection{background:var(--paper);color:var(--ink)}.section--light ::selection{background:var(--ink);color:var(--paper)}.section{padding:clamp(56px, 7vw, 104px) var(--gutter);position:relative;overflow:clip}.section--dark{background:var(--ink);color:var(--paper)}.section--light{background:var(--paper);color:var(--ink)}.wrap{max-width:1440px;margin:0 auto;position:relative}.display{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 144, "SOFT" 30;font-weight:300;line-height:.95}.display em{font-style:italic;font-weight:300}.label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;font-size:11px}.kanji{font-family:var(--font-jp);font-weight:500}.vertical{writing-mode:vertical-rl;text-orientation:upright}.btn{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;isolation:isolate;transition:color .5s var(--ease-out), border-color .5s var(--ease-out), transform .5s var(--ease-out);white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:12px;padding:18px 30px;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";border-radius:inherit;transition:transform .6s var(--ease-in-out);z-index:-1;background:currentColor;position:absolute;inset:-2px;transform:translateY(101%)}.btn span{transition:color .5s var(--ease-out);position:relative}.btn:hover:before{transform:translateY(0)}.btn--primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}.section--light .btn--primary,.on-light .btn--primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn--primary:before{background:var(--ink)}.section--light .btn--primary:before,.on-light .btn--primary:before{background:var(--paper)}.btn--primary:hover{color:var(--paper)}.section--light .btn--primary:hover,.on-light .btn--primary:hover{color:var(--ink)}.btn--ghost:before{background:var(--paper)}.btn--ghost:hover{color:var(--ink)}.section--light .btn--ghost:before,.on-light .btn--ghost:before{background:var(--ink)}.section--light .btn--ghost:hover,.on-light .btn--ghost:hover{color:var(--paper);border-color:var(--ink)}.btn .arrow{transition:transform .5s var(--ease-out);display:inline-block}.btn:hover .arrow{transform:translate(6px)}[data-reveal]{opacity:0;transform:translateY(40px)}[data-lines] .line{display:block;overflow:hidden}[data-lines] .line>span{display:block;transform:translateY(110%)}.grain{pointer-events:none;z-index:60;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");width:110%;height:110%;animation:.8s steps(4,end) infinite grain;position:fixed;inset:-5%}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-4%)}75%{transform:translate(-1%,3%)}to{transform:translate(3%,-1%)}}@media (prefers-reduced-motion:reduce){.grain{animation:none}[data-reveal]{opacity:1;transform:none}[data-lines] .line>span{transform:none}}
