@font-face{font-family:CormorantGaramond;src:url('./fonts/cormorant-2.ttf') format('truetype');font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:CormorantGaramond;src:url('./fonts/cormorant-3.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:CormorantGaramond;src:url('./fonts/cormorant-0.ttf') format('truetype');font-style:italic;font-weight:300;font-display:swap}
@font-face{font-family:CormorantGaramond;src:url('./fonts/cormorant-1.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:InterLocal;src:url('./fonts/inter-0.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:InterLocal;src:url('./fonts/inter-1.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:InterLocal;src:url('./fonts/inter-2.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:NotoLocal;src:url('./fonts/noto-sans-jp-300-subset.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}

:root{--display:CormorantGaramond,"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;--sans:InterLocal,"Noto Sans SC","Microsoft YaHei","PingFang SC",Arial,sans-serif;--jp:var(--sans);--bg:#fff;--ink:#0a0a0a;--muted:#888;--line:#e0e0e0;--accent:#a5e02e;--pad-x:clamp(24px,5vw,80px);--pad-y:clamp(52px,6vw,88px);--max:1400px;--ease:cubic-bezier(.16,1,.3,1)}
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:auto;overflow-x:hidden}body{font-family:var(--sans);font-weight:300;background:var(--bg);color:var(--ink);overflow-x:clip;cursor:none}a{color:inherit;text-decoration:none}ul{list-style:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:none}img{display:block;width:100%;height:100%;object-fit:cover}.ja{display:block;font-family:var(--jp);font-size:9px;font-weight:300;letter-spacing:.1em;color:var(--muted);margin-top:5px;line-height:1.6}.ja-inline{font-family:var(--jp);font-size:9px;font-weight:300;letter-spacing:.08em;color:var(--muted);margin-left:8px;white-space:nowrap}

#logo3d-canvas,#hero-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#logo3d-canvas{z-index:0;opacity:0;transition:opacity 1.2s ease}#hero-canvas{z-index:0;opacity:1}main,#site-footer{position:relative;z-index:1}

#cursor-figma,#cursor-shito{position:fixed;top:0;left:0;pointer-events:none;user-select:none;will-change:transform}#cursor-figma{z-index:9999}#cursor-shito{z-index:9998}.cursor-label{position:absolute;top:14px;left:13px;background:var(--ink);color:#fff;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.02em;padding:3px 8px;border-radius:0 8px 8px 8px;white-space:nowrap;line-height:1.4}.cursor-label--you{background:#999}.cursor-label--shito{background:var(--accent);color:var(--ink)}

#nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:28px var(--pad-x);mix-blend-mode:multiply;transition:transform .4s ease}.nav-logo{display:flex;align-items:center;line-height:1;mix-blend-mode:normal}.logo-img{display:block;width:auto;flex-shrink:0}.logo-img--nav{height:20px}.logo-img--footer{height:28px}.logo-img--menu{height:18px;filter:brightness(0) invert(1);opacity:.7}.nav-links{display:flex;align-items:center;gap:36px}.nav-link{font-size:13px;font-weight:400;letter-spacing:.04em;position:relative}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--accent);transition:width .35s cubic-bezier(.76,0,.24,1)}.nav-link:hover:after{width:100%}.nav-avatars{display:flex;align-items:center;margin-left:0}.avatar{position:relative;width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:11px;font-weight:600;color:var(--ink);background:var(--accent)}.avatar--you{margin-left:-8px;z-index:1;background:#999;color:#fff}.avatar-tip{position:absolute;top:32px;right:0;background:var(--ink);color:#fff;font-size:10px;font-weight:400;padding:4px 8px;border-radius:4px;white-space:nowrap;opacity:0;transform:translateY(2px);transition:opacity .15s,transform .15s;pointer-events:none}.avatar:hover .avatar-tip{opacity:1;transform:none}

#hero{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-start;padding:80px var(--pad-x) clamp(48px,7vw,80px)}.hero-content{position:relative;z-index:1}.hero-title{font-family:var(--display);font-size:clamp(64px,10.5vw,156px);font-weight:400;line-height:1.05;letter-spacing:-.02em;margin-bottom:32px}.hero-line{display:block;overflow:hidden;padding-bottom:.15em;margin-bottom:-.15em;transform:translateY(110%);transition:transform 1.1s var(--ease)}.hero-line.is-visible{transform:none}.hero-line em{font-style:italic}.hero-sub{font-size:13px;font-weight:300;color:var(--muted);line-height:1.7;max-width:380px;margin-top:8px;opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s var(--ease)}.hero-sub.is-visible{opacity:1;transform:none}.hero-sub-ja{font-size:11px;letter-spacing:.04em;opacity:0;transition:opacity .6s ease}.hero-sub-ja.is-visible{opacity:1}.scroll-hint{position:absolute;bottom:clamp(28px,4vw,48px);left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.12em;color:var(--muted);opacity:0;transition:opacity .6s ease}.scroll-hint.is-visible{opacity:1}

section,#site-footer{position:relative;max-width:var(--max);margin:0 auto;padding:var(--pad-y) var(--pad-x)}.frame-label{position:absolute;top:12px;left:var(--pad-x);display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:9px;font-weight:400;letter-spacing:.1em;color:#c4c4c4;user-select:none;pointer-events:none;z-index:2}.frame-label svg{color:var(--accent);opacity:.85;flex-shrink:0}.frame-size{color:#d8d8d8}.section-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(28px,3.5vw,44px);padding-bottom:12px;border-bottom:1px solid var(--line)}.section-label-stack{display:flex;flex-direction:column;gap:3px}.section-label{font-family:var(--display);font-size:clamp(44px,8.5vw,80px);font-weight:400;letter-spacing:-.01em;color:var(--muted);line-height:1}.section-label-stack .ja{font-size:12px}.section-label-stack .ja:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:middle;position:relative;top:-1px}.section-num{font-size:10px;font-weight:300;color:var(--muted);letter-spacing:.1em}

#works{padding-top:var(--pad-y)}.works-list{display:flex;flex-direction:column;gap:clamp(48px,8vw,96px)}.work-entry{display:grid;gap:clamp(20px,3vw,40px);align-items:center}.work-entry:nth-child(1){grid-template-columns:28fr 72fr}.work-entry:nth-child(2){grid-template-columns:52fr 48fr;padding-left:6vw}.work-entry:nth-child(3){grid-template-columns:38fr 62fr;padding-left:12vw}.work-entry:nth-child(4){grid-template-columns:30fr 70fr;padding-left:5vw}.work-entry:nth-child(5){grid-template-columns:58fr 42fr}.work-entry:nth-child(even) .work-img-wrap{order:-1}.work-entry:nth-child(1) .work-img-wrap{aspect-ratio:3/4}.work-entry:nth-child(2) .work-img-wrap{aspect-ratio:4/5}.work-entry:nth-child(3) .work-img-wrap{aspect-ratio:16/10}.work-entry:nth-child(4) .work-img-wrap{aspect-ratio:3/4}.work-entry:nth-child(5) .work-img-wrap{aspect-ratio:1}.work-entry__info{align-self:end}.work-entry:nth-child(3) .work-entry__info{align-self:start;margin-top:24px}.work-entry:nth-child(5) .work-entry__info{align-self:center}.work-num{display:block;font-size:10px;letter-spacing:.15em;color:var(--muted);margin-top:12px;margin-bottom:24px}.work-tag{display:flex;gap:16px;font-size:10px;letter-spacing:.15em;color:var(--muted);margin-bottom:8px}.work-title{font-family:var(--display);font-size:clamp(20px,2.4vw,36px);font-weight:400;line-height:1.15}.work-title+.ja{font-size:10px;margin-top:8px}.work-img-wrap{overflow:hidden;position:relative}.work-img-wrap img{position:absolute;top:-15%;left:0;width:100%;height:130%;object-fit:cover;object-position:center;will-change:transform;transition:transform .7s var(--ease),filter .5s ease}.work-entry:nth-child(3) .work-img-wrap img{top:0;height:100%;object-position:center top}.work-img-wrap:hover img{transform:scale(1.025);filter:saturate(1.05)}.works-more-link{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(48px,8vw,88px);padding:clamp(24px,3vw,40px) clamp(16px,2vw,32px) clamp(24px,3vw,40px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .4s ease,color .4s ease,padding-left .4s ease}.works-more-link:hover{background:var(--ink);color:var(--bg);padding-left:clamp(16px,2vw,32px)}.works-more-label{font-family:var(--display);font-size:clamp(28px,5vw,72px);font-weight:400;letter-spacing:-.01em;display:flex;flex-direction:column;gap:6px}.works-more-label .ja{font-family:var(--jp);font-size:12px;letter-spacing:.1em}.works-more-arrow{font-size:clamp(24px,4vw,56px);transition:transform .4s ease,color .4s ease}.works-more-link:hover .works-more-arrow{transform:translateX(12px);color:var(--accent)}

#about{padding-bottom:var(--pad-y)}.about-grid{display:grid;grid-template-columns:1fr 380px;gap:clamp(24px,4vw,64px);align-items:start}.about-label{font-size:10px;letter-spacing:.2em;color:var(--muted);margin-bottom:20px}.about-label .ja{font-size:9px;letter-spacing:.1em}.about-headline{font-family:var(--display);font-size:clamp(22px,2.6vw,38px);font-weight:400;line-height:1.3;letter-spacing:-.01em;margin-bottom:32px}.about-headline-ja{font-family:var(--jp);font-size:11px;font-weight:300;color:var(--muted);letter-spacing:.08em;line-height:1.8;margin-top:-20px;margin-bottom:32px}.about-rule{height:1px;background:var(--line);margin-bottom:24px}.career-list{display:flex;flex-direction:column}.career-list li{position:relative;display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.career-list li>span:last-child{color:var(--muted)}.career-list .ja{font-size:9px}.about-portrait{position:relative}.portrait-wrap{width:100%;aspect-ratio:3/4;overflow:hidden;filter:grayscale(1);transition:filter .5s ease}.portrait-wrap:hover{filter:grayscale(.2)}

#services .section-meta{margin-bottom:clamp(40px,5vw,72px)}.services-list{display:flex;flex-direction:column}.service-row{position:relative;display:grid;grid-template-columns:48px 1fr auto;align-items:baseline;gap:clamp(16px,3vw,48px);padding:clamp(28px,4vw,56px) 0;border-bottom:1px solid var(--line);overflow:visible}.service-row:first-child{border-top:1px solid var(--line)}.service-row:hover .service-num{color:var(--accent)}.service-num{font-size:11px;font-weight:300;color:var(--muted);letter-spacing:.08em;padding-top:6px}.service-name-wrap{display:flex;flex-direction:column;gap:6px}.service-name{font-family:var(--sans);font-size:clamp(32px,5.5vw,80px);font-weight:300;letter-spacing:-.03em;line-height:1.1}.service-name-wrap .ja{font-size:11px}.service-desc{font-size:12px;font-weight:300;color:var(--muted);line-height:1.7;max-width:200px;text-align:right}

#contact{padding-bottom:var(--pad-y)}.contact-body{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,6vw,100px);align-items:start;border-top:1px solid var(--line);padding-top:clamp(40px,6vw,72px)}.contact-header{position:sticky;top:120px}.contact-eyebrow{font-size:14px;font-weight:400;letter-spacing:.2em;color:var(--muted);margin-bottom:20px}.contact-headline{font-family:var(--display);font-size:clamp(56px,8vw,120px);font-weight:400;line-height:.9;letter-spacing:-.03em}.contact-headline em{font-style:italic}.contact-form{display:flex;flex-direction:column;gap:clamp(32px,4vw,56px)}.form-row{width:100%}.form-row--half{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}.form-field{display:flex;flex-direction:column;gap:12px}.form-label{font-size:10px;font-weight:400;letter-spacing:.2em;color:var(--muted)}.form-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);outline:none;font-family:var(--sans);font-size:16px;font-weight:300;color:var(--ink);padding:12px 0;transition:border-color .3s;cursor:none;resize:none}.form-input::placeholder{color:var(--line)}.form-input:focus{border-color:var(--accent)}.form-textarea{min-height:120px;line-height:1.75}.form-tags{display:flex;flex-wrap:wrap;gap:10px}.form-tag{cursor:none}.form-tag input{position:absolute;opacity:0;width:0;height:0}.form-tag span{display:inline-block;padding:8px 18px;border:1px solid var(--line);font-size:12px;font-weight:300;letter-spacing:.04em;color:var(--muted);transition:all .25s;cursor:none}.form-tag input:checked+span{background:var(--accent);color:var(--ink);border-color:var(--accent)}.form-tag span:hover{border-color:var(--ink);color:var(--ink)}.form-select-wrap{position:relative;border-bottom:1px solid var(--line);transition:border-color .3s}.form-select-wrap:focus-within{border-color:var(--accent)}.form-select{width:100%;background:transparent;border:none;outline:none;font-family:var(--sans);font-size:16px;font-weight:300;color:var(--muted);padding:12px 0;appearance:none;cursor:none}.form-select option{background:var(--bg);color:var(--ink)}.form-select-arrow{position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none}.form-row--submit{margin-top:8px}.form-submit{display:flex;align-items:center;gap:16px;background:var(--ink);color:var(--bg);border:none;padding:18px 40px;font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.08em;transition:gap .4s,background .4s,color .4s}.form-submit:hover{gap:28px;background:var(--accent);color:var(--ink)}.form-submit-arrow{transition:transform .3s}.form-submit:hover .form-submit-arrow{transform:translateX(4px)}.form-success{display:none;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.form-success.is-visible{display:flex}.form-success-icon{font-size:20px;color:var(--accent)}.form-success p{font-size:13px;font-weight:300;color:var(--muted);line-height:1.7}

#site-footer{border-top:1px solid var(--line);padding-top:clamp(56px,8vw,100px);padding-bottom:0}.footer-top{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:clamp(40px,6vw,96px);padding-bottom:clamp(56px,8vw,96px)}.footer-logo{display:block;margin-bottom:20px;line-height:0;transition:opacity .2s}.footer-logo:hover{opacity:.6}.footer-tagline{font-family:var(--display);font-size:clamp(14px,1.4vw,20px);font-weight:300;color:var(--muted);line-height:1.55;margin-bottom:32px}.footer-tagline em{font-style:italic}.footer-tagline-ja{margin-top:10px;font-size:10px;letter-spacing:.12em}.footer-socials{display:flex;gap:20px}.footer-social-link{font-size:11px;letter-spacing:.1em;color:var(--muted);transition:color .2s}.footer-social-link:hover,.footer-nav a:hover{color:var(--accent)}.footer-col-label{font-size:10px;letter-spacing:.2em;color:var(--muted);margin-bottom:24px}.footer-nav{display:flex;flex-direction:column;gap:12px}.footer-nav a{font-size:13px;font-weight:300;transition:color .2s}.footer-info-list{display:flex;flex-direction:column;gap:16px}.footer-info-list li{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:300}.footer-info-label{font-size:10px;letter-spacing:.15em;color:var(--muted)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:24px 0 32px;border-top:1px solid var(--line);font-size:11px;font-weight:300;color:var(--muted);letter-spacing:.04em}

.c-pin{position:absolute;z-index:5;width:30px;height:30px;border-radius:50% 50% 50% 0;background:var(--accent);border:2px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.18);font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink);display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.7);pointer-events:none;transition:transform .32s var(--ease),opacity .32s ease}.is-commenting .c-pin--shito{opacity:1;transform:scale(1);pointer-events:auto}.c-pin:hover{transform:scale(1.12)}.c-pin-bubble{position:absolute;top:36px;left:0;width:max-content;max-width:min(220px,calc(100vw - 48px));background:#fff;border:1px solid var(--line);border-radius:2px 10px 10px 10px;box-shadow:0 8px 28px rgba(0,0,0,.14);padding:12px 14px;text-align:left;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .2s,transform .2s;z-index:6}.c-pin.is-open .c-pin-bubble{opacity:1;transform:none}.c-pin-author{display:block;font-size:11px;font-weight:600;margin-bottom:4px}.c-pin-text{display:block;font-family:var(--jp);font-size:11px;font-weight:300;line-height:1.7;color:var(--ink)}.about-portrait .c-pin{left:14px;top:14px}.work-img-wrap .c-pin{left:9%;top:10%}

#menu-trigger{position:fixed;top:20px;right:20px;z-index:1001;width:44px;height:44px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:transparent;border:none;padding:0;transition:background .2s,border-radius .2s}.burger-line{display:block;width:22px;height:1.5px;background:var(--ink);border-radius:1px;transform-origin:center;transition:transform .25s,opacity .25s}.menu-trigger.is-open .burger-line{background:#fff}.menu-trigger.is-open .burger-line:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.menu-trigger.is-open .burger-line:nth-child(2){opacity:0;transform:scaleX(0)}.menu-trigger.is-open .burger-line:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.menu-overlay{position:fixed;inset:0;z-index:1000;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,10vw,80px) clamp(32px,8vw,80px);opacity:0;visibility:hidden;pointer-events:none;clip-path:circle(0% at calc(100% - 42px) 42px);transition:clip-path .6s var(--ease),opacity .2s ease,visibility .2s}.menu-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto;clip-path:circle(150% at calc(100% - 42px) 42px)}.menu-nav{position:relative;z-index:1}.menu-list{display:flex;flex-direction:column;gap:0}.menu-link{display:flex;align-items:center;gap:18px;font-size:clamp(42px,10vw,94px);font-weight:300;line-height:1.05;padding:8px 0}.menu-arrow{color:var(--accent);font-size:.65em;transition:transform .3s}.menu-link:hover .menu-arrow{transform:translateX(8px)}.menu-footer{position:absolute;left:clamp(32px,8vw,80px);right:clamp(32px,8vw,80px);bottom:28px;display:flex;justify-content:space-between;align-items:end}.menu-footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:11px;color:#aaa}.menu-footer-right a:hover{color:var(--accent)}

#toolbar{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:950;display:flex;gap:2px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:0 8px 24px rgba(0,0,0,.1);transition:opacity .4s,transform .4s}.is-hidden{opacity:0!important;transform:translateX(-50%) translateY(24px)!important;pointer-events:none!important}.tool-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;color:var(--muted);transition:background .15s,color .15s}.tool-btn:hover{background:#f2f2f0;color:var(--ink)}.tool-btn.is-active{background:var(--accent);color:var(--ink)}#zoom-pill{position:fixed;right:16px;bottom:16px;z-index:950;font-size:10px}.zoom-btn,#zoom-menu button{border:1px solid var(--line);background:rgba(255,255,255,.92);border-radius:5px;padding:5px 8px;min-width:48px;color:var(--muted)}#zoom-menu{position:absolute;right:0;bottom:32px;display:none;background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px rgba(0,0,0,.1);padding:4px;border-radius:6px}.zoom-menu-open #zoom-menu{display:flex;flex-direction:column;gap:2px}#zoom-menu button{border:0;border-radius:4px;text-align:right}.zoom-menu-open #zoom-menu button:hover,.zoom-menu-open #zoom-menu button.is-current{background:#f2f2f0;color:var(--ink)}

@media (max-width:900px){.nav-links{display:none}#menu-trigger{display:flex}#nav{padding:28px var(--pad-x)}.menu-trigger.is-scrolled{backdrop-filter:blur(12px);background:rgba(255,255,255,.85);border-radius:100px}.work-entry{grid-template-columns:1fr!important;padding-left:0!important}.work-entry .work-img-wrap{order:-1;aspect-ratio:3/4!important}.work-entry__info{align-self:auto!important;margin-top:0}.about-grid{grid-template-columns:1fr}.about-portrait{max-width:340px}.service-row{grid-template-columns:36px 1fr}.service-desc{display:none}.contact-body{grid-template-columns:1fr;gap:48px}.contact-header{position:relative;top:auto}.footer-top{grid-template-columns:1fr 1fr;gap:40px}.footer-col--brand{grid-column:1/-1}}
@media (max-width:600px){.logo-img--nav{height:17px}.logo-img--footer{height:22px}.hero-title{font-size:clamp(64px,14vw,90px)}.hero-sub{font-size:12px;max-width:300px}.hero-sub br{display:none}.section-label{font-size:clamp(44px,13vw,66px)}.work-entry__info{padding:0}.service-name{font-size:clamp(28px,9vw,48px)}.form-row--half{grid-template-columns:1fr}.contact-headline{font-size:clamp(52px,14vw,90px)}.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:8px;text-align:center}.menu-footer{align-items:flex-start;flex-direction:column;gap:20px}.menu-footer-right{align-items:flex-start}.menu-footer-right span{display:none}.cursor-label{font-size:10px}}
@media (hover:none) and (pointer:coarse){body{cursor:auto}#cursor-figma,#cursor-shito{display:none}button,.form-input,.form-select{cursor:auto}}
