@import "https://fonts.googleapis.com/css2?family=Inter+Tight:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400&family=Noto+Sans+JP:wght@400;500&family=Noto+Serif+JP:wght@500;700&display=swap";
:root{--accent:#e63327;--accent-ink:#fff;--accent-soft:#fde8e6;--bg:#fff;--bg-2:#f5f5f3;--ink:#0a0a0a;--ink-2:#2a2a2a;--mute:#6b6660;--line:#0a0a0a1f;--font-en:"Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;--font-jp:"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "メイリオ", sans-serif;--font-serif:"Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html,body{min-height:100%}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-jp), var(--font-en);letter-spacing:.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt";font-size:16px;font-weight:400;line-height:1.75;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-ink)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 48px}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 76%, transparent);-webkit-backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0}.site-header__inner{justify-content:space-between;align-items:center;height:88px;display:flex}.site-header__logo{height:56px;font-family:var(--font-serif);letter-spacing:.01em;color:var(--ink);align-items:center;font-size:22px;font-weight:700;line-height:1;display:inline-flex}.site-header__logo img{object-fit:contain;object-position:left center;width:auto;height:56px}.site-nav{font-family:var(--font-mono);letter-spacing:.06em;gap:36px;font-size:13px;display:flex}.site-nav a{color:var(--ink-2);transition:color .22s ease-out;position:relative}.site-nav a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .26s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.site-nav a:hover{color:var(--ink)}.site-nav a:hover:after{transform:scaleX(1)}.hero{align-items:center;min-height:56vh;padding:120px 0 72px;display:flex;position:relative;overflow:hidden}.hero__inner{z-index:2;width:100%;position:relative}.hero__eyebrow{font-family:var(--font-mono);letter-spacing:.18em;color:var(--mute);text-transform:uppercase;margin-bottom:28px;font-size:12px}.hero__sub{max-width:620px;color:var(--ink-2);font-family:var(--font-jp);letter-spacing:.02em;margin:14px 0 0;font-size:clamp(15px,1.4vw,17px);font-weight:400;line-height:2}.hero__scroll{z-index:2;font-family:var(--font-mono);letter-spacing:.22em;color:var(--mute);text-transform:uppercase;font-size:11px;position:absolute;bottom:36px;left:48px}.hero__deco-wrap{--eye-x:30%;--eye-y:58%;--eye-size:5.2%;z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;width:clamp(620px,100vw,1400px);position:absolute;top:50%;right:clamp(-260px,-8vw,-40px);transform:translateY(-50%)}.hero__deco{opacity:.1;width:100%;height:auto;display:block}.hero__eye-mask{left:var(--eye-x);top:var(--eye-y);width:calc(var(--eye-size) * 1.18);aspect-ratio:1;background:var(--bg);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.hero__eye-pupil-wrap{left:var(--eye-x);top:var(--eye-y);width:var(--eye-size);aspect-ratio:1;display:block;position:absolute;transform:translate(-50%,-50%)}.hero__eye-pupil{background:var(--ink);opacity:.34;will-change:transform;border-radius:50%;width:100%;height:100%;transition:transform .32s cubic-bezier(.2,.7,.2,1);display:block}.reveal-line{opacity:0;transform:translateY(16px)}.reveal-line.in{opacity:1;transition:opacity .72s ease-out,transform .72s cubic-bezier(.2,.7,.2,1);transform:translateY(0)}.section{padding:160px 0;position:relative}.section__kicker{font-family:var(--font-mono);letter-spacing:.2em;color:var(--mute);text-transform:uppercase;opacity:0;margin-bottom:64px;font-size:12px;transition:opacity .64s ease-out,transform .64s cubic-bezier(.2,.7,.2,1);transform:translate(-10px)}.section.is-visible .section__kicker{opacity:1;transform:translate(0)}.works{border-top:1px solid var(--line)}.work{border-bottom:1px solid var(--line);color:var(--ink);padding:40px 0 40px 28px;transition:transform .28s ease-out,color .28s ease-out;display:block;position:relative}.work:before{content:"";background:var(--accent);transform-origin:top;width:2px;transition:transform .32s cubic-bezier(.2,.7,.2,1);position:absolute;top:40px;bottom:40px;left:0;transform:scaleY(0)}.work:hover{transform:translate(6px)}.work:hover:before{transform:scaleY(1)}.work__head{grid-template-columns:64px auto 1fr;align-items:baseline;gap:28px;display:grid}.work__no{font-family:var(--font-mono);color:var(--mute);letter-spacing:.06em;font-size:13px}.work__title{font-family:var(--font-en);letter-spacing:-.01em;color:var(--ink);font-size:clamp(22px,3vw,34px);font-weight:500;line-height:1.3;transition:color .28s ease-out}.work:hover .work__title{color:var(--accent)}.work__title__ja{font-family:var(--font-serif);color:var(--ink-2);letter-spacing:.005em;vertical-align:baseline;margin-left:22px;font-size:clamp(18px,2.4vw,26px);font-weight:500;line-height:1.3;transition:color .28s ease-out;display:inline-block}.work:hover .work__title__ja{color:var(--accent)}.work__desc{color:var(--mute);font-family:var(--font-jp);grid-column:2/-1;max-width:640px;margin-top:14px;font-size:14px;line-height:2}.who__body{font-family:var(--font-serif);max-width:780px;color:var(--ink-2);letter-spacing:.005em;font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:2}.who__body p+p{margin-top:1.6em}.who__loc{font-family:var(--font-mono);letter-spacing:.22em;color:var(--mute);margin-top:64px;font-size:11px}.contact__email{font-family:var(--font-en);letter-spacing:-.02em;color:var(--ink);margin-top:4px;font-size:clamp(36px,8vw,96px);font-weight:500;line-height:1.05;display:inline-block;position:relative}.contact__email:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;transition:transform .36s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-8px;left:0;transform:scaleX(0)}.contact__email:hover{color:var(--accent)}.contact__email:hover:after{transform:scaleX(1)}.contact__note{color:var(--mute);font-family:var(--font-jp);max-width:560px;margin-top:40px;font-size:14px;line-height:2}.contact__social{font-family:var(--font-mono);letter-spacing:.06em;gap:36px;margin-top:80px;font-size:13px;display:flex}.contact__social a{color:var(--mute);transition:color .22s ease-out}.contact__social a:hover{color:var(--ink)}.contact__social a .arrow{color:var(--mute);margin-left:4px;transition:color .22s ease-out,transform .22s ease-out;display:inline-block}.contact__social a:hover .arrow{color:var(--accent);transform:translate(2px,-2px)}.section--contact-page{min-height:80vh;padding:168px 0 120px}.section--contact-page .section__kicker--static{opacity:1;transform:none}.contact-page__title{font-family:var(--font-serif);letter-spacing:-.005em;color:var(--ink);margin-top:24px;font-size:clamp(28px,4vw,56px);font-weight:500;line-height:1.3}.contact-page__lead{max-width:620px;color:var(--mute);font-family:var(--font-jp);margin-top:28px;font-size:15px;line-height:2}.contact-form{gap:40px;max-width:640px;margin-top:72px;display:grid}.contact-form__field{display:block}.contact-form__label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:14px;font-size:11px;display:block}.contact-form__input,.contact-form__textarea{border:0;border-bottom:1px solid var(--line);width:100%;font-family:var(--font-jp);color:var(--ink);background:0 0;border-radius:0;outline:none;padding:6px 0 12px;font-size:16px;line-height:1.7;transition:border-color .22s ease-out;display:block}.contact-form__input:focus,.contact-form__textarea:focus{border-bottom-color:var(--accent)}.contact-form__textarea{resize:vertical;min-height:160px;font-family:var(--font-jp)}.contact-form__actions{flex-wrap:wrap;align-items:center;gap:32px;margin-top:8px;display:flex}.contact-form__submit{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;padding:16px 36px;font-size:13px;transition:background .22s ease-out,border-color .22s ease-out,color .22s ease-out,transform .22s ease-out}.contact-form__submit:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.contact-form__submit:disabled{opacity:.5;cursor:progress}.contact-form__back{font-family:var(--font-mono);letter-spacing:.12em;color:var(--mute);font-size:12px;transition:color .22s ease-out}.contact-form__back:hover{color:var(--ink)}.site-footer{border-top:.5px solid var(--line);font-family:var(--font-mono);color:var(--mute);letter-spacing:.12em;padding:28px 0;font-size:11px}.site-footer__inner{justify-content:space-between;gap:24px;display:flex}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:768px){.container{padding:0 24px}.site-header__inner{height:68px}.site-header__logo,.site-header__logo img{height:40px}.site-header__logo{font-size:18px}.site-nav{gap:22px;font-size:12px}.hero{min-height:82vh;padding:100px 0 72px}.hero__eyebrow{margin-bottom:22px;font-size:11px}.hero__sub{margin-top:10px;font-size:14px;line-height:1.95}.hero__scroll{bottom:24px;left:24px}.section{padding:100px 0}.section__kicker{margin-bottom:36px}.work{padding:28px 0 28px 18px}.work:before{top:28px;bottom:28px}.work__head{grid-template-columns:36px 1fr;gap:14px}.work__title__ja{margin-top:6px;margin-left:0;display:block}.work__desc{grid-column:1/-1;margin-top:12px}.contact__email{font-size:clamp(28px,9.5vw,44px)}.contact__social{gap:24px;margin-top:56px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal-line,.section__kicker{opacity:1;transform:none}}
