*,:before,:after{box-sizing:border-box;font-feature-settings:“palt”;margin:0;padding:0}html{overflow-x:clip}body{background:var(--color-light-background);color:var(--color-light-text);font-family:var(--typography-font-body);font-size:var(--fs-base);line-height:var(--typography-line-body);-webkit-font-smoothing:antialiased;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:inherit}main{display:block}main>section{isolation:isolate;position:relative}.pan-canvas{will-change:transform}.has-motion main>section,.has-motion .site-footer{left:calc(var(--panx,0) * 100vw)}#story,#works{--panx:1}#services{--panx:2}#company,#contact{--panx:1}.tri-bg{display:none}.has-motion .tri-bg{z-index:0;pointer-events:none;background:var(--color-light-background);display:block;position:fixed;inset:0}.tri-bg .tri-grid{width:100%;height:100%;position:absolute;inset:0}.tri-bg .tri-grid path{fill:var(--color-light-line)}.has-motion .cover,.has-motion .door,.has-motion .site-footer{background:0 0}.section-en{font-family:var(--typography-font-en);font-size:var(--fs-xs);letter-spacing:var(--typography-tracking-en);color:var(--color-light-accent);text-transform:uppercase;margin-bottom:var(--spacing-2);display:block}.section-title{font-family:var(--typography-font-display);font-weight:800;font-size:var(--fs-3xl);line-height:var(--typography-line-heading);letter-spacing:.01em;text-wrap:balance}.section-title span{white-space:nowrap}.section-lead{margin-top:var(--spacing-3);max-width:var(--container-text);color:var(--color-light-text-sub);font-size:var(--fs-lg);font-weight:700}.nb{white-space:nowrap}.site-header{z-index:100;padding:var(--spacing-2) var(--container-pad);justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.brand{font-family:var(--typography-font-en);font-size:var(--fs-lg);letter-spacing:.08em;font-weight:800;text-decoration:none;transition:opacity .3s}.has-motion .brand{opacity:0;pointer-events:none}.has-motion .brand.is-on{opacity:1;pointer-events:auto}.menu-btn{width:var(--spacing-6);height:var(--spacing-6);border-radius:var(--radius-full);background:var(--color-light-text);cursor:pointer;border:0;justify-content:center;align-items:center;transition:transform .25s,background .3s;display:inline-flex;position:relative}.menu-btn:hover{transform:scale(1.08)}.menu-btn:focus-visible{outline:2px solid var(--color-light-accent);outline-offset:2px}.mb-line{width:var(--spacing-2);background:var(--color-light-background);border-radius:var(--radius-sm);height:2px;transition:transform .45s cubic-bezier(.7,0,.2,1.4);position:absolute}.mb-line:first-child{transform:translateY(-3px)}.mb-line:nth-child(2){transform:translateY(3px)}.menu-btn[aria-expanded=true] .mb-line:first-child{transform:translateY(0)rotate(45deg)scaleX(1.15)}.menu-btn[aria-expanded=true] .mb-line:nth-child(2){transform:translateY(0)rotate(-45deg)scaleX(1.15)}.menu-root{z-index:90;visibility:hidden;position:fixed;inset:0}.menu-root.is-open{visibility:visible}.menu-overlay{background:color-mix(in srgb, var(--color-light-text) 55%, transparent);backdrop-filter:blur(6px);opacity:0;position:absolute;inset:0}.menu-panel{background:var(--color-light-background);transform-origin:100% 0;will-change:transform;width:min(520px,92vw);height:100%;position:absolute;top:0;right:0;overflow:hidden;transform:translate(114%)}.menu-inner{height:100%;padding:var(--spacing-12) var(--spacing-8) var(--spacing-6);flex-direction:column;justify-content:space-between;display:flex;overflow-y:auto}.menu-main{list-style:none}.menu-main a{align-items:baseline;gap:var(--spacing-2);padding:var(--spacing-half) 0;text-decoration:none;display:flex}.menu-main i{font-family:var(--typography-font-en);font-style:normal;font-size:var(--fs-2xs);color:var(--color-light-accent);letter-spacing:.1em;min-width:var(--spacing-3)}.mm-mask{display:block;overflow:hidden}.mm-in{font-family:var(--typography-font-en);font-weight:700;font-size:var(--fs-2xl);letter-spacing:.04em;line-height:1.4;transition:color .25s;display:inline-block;transform:translateY(115%)}.menu-main a:hover .mm-in{color:var(--color-light-accent)}.menu-root.is-open .menu-overlay{opacity:1}.menu-root.is-open .menu-panel,.menu-root.is-open .mm-in{transform:none}.hero{z-index:1;height:100svh;position:relative}.hero-stage{height:100%;position:relative;overflow:hidden}.hero-kv{position:absolute;inset:0}.kv-grid{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.kv-grid path{fill:var(--color-light-background);stroke:var(--color-light-background);stroke-miterlimit:10}.kv-slide{visibility:hidden;position:absolute;inset:0}.kv-slide.is-current{visibility:visible}.kv-slide img{object-fit:cover;width:100%;height:100%}.hero-giant{bottom:var(--spacing-2);z-index:2;text-align:center;will-change:transform;transform-origin:0 0;width:100%;position:absolute;left:0}.has-motion .hero-giant{visibility:hidden}.hero-giant-inner{font-family:var(--typography-font-en);font-weight:800;font-size:var(--fs-giant);letter-spacing:.02em;color:var(--color-light-text);white-space:nowrap;line-height:1;display:inline-block}.hero-scroll{bottom:calc(var(--fs-giant) + var(--spacing-6));left:var(--container-pad);align-items:center;gap:var(--spacing-1);font-family:var(--typography-font-en);font-size:var(--fs-2xs);letter-spacing:var(--typography-tracking-en);color:var(--color-light-text);z-index:2;flex-direction:row;display:flex;position:absolute}.hero-scroll>span{writing-mode:vertical-rl;transform:rotate(180deg)}.hero-scroll-line{width:1px;height:var(--spacing-6);background:color-mix(in srgb, var(--color-light-text) 25%, transparent);display:block;position:relative;overflow:hidden}.hero-scroll-line:after{content:"";background:var(--color-light-text);width:100%;height:50%;animation:1.8s cubic-bezier(.65,0,.35,1) infinite scroll-hint;position:absolute;top:0;left:0}@keyframes scroll-hint{0%{transform:translateY(-100%)}60%{transform:translateY(200%)}to{transform:translateY(200%)}}@media (prefers-reduced-motion:reduce){.hero-scroll-line:after{animation:none}}.cover{background:var(--color-light-background)}.catch{min-height:100svh;position:relative}html.has-motion .catch{min-height:115svh}.has-motion .catch-title,.has-motion .catch-sub{opacity:0}.catch-sticky{min-height:100svh;padding:var(--spacing-section) var(--spacing-section);align-items:center;display:flex;position:sticky;top:0}.catch-inner{max-width:var(--container-max);width:100%;margin-inline:auto;position:relative}.catch-title{font-family:var(--typography-font-display);font-weight:800;font-size:var(--fs-display);line-height:var(--typography-line-display);letter-spacing:.01em}.catch-title>span{display:block;overflow:hidden}.line-in{display:inline-block}.beat{color:var(--color-light-accent);font-style:normal}.catch-sub{margin-top:var(--spacing-4);font-size:var(--fs-lg);color:var(--color-light-text-sub);max-width:var(--container-text);font-weight:700}.catch-art{pointer-events:none;position:absolute;inset:auto 0 0}.catch-art .esc{width:100%;height:100%;display:block;overflow:visible}.esc-steps{fill:none;stroke:var(--color-light-text);stroke-width:2px}.esc-ball{fill:var(--color-light-accent)}.door{background:var(--color-light-background);padding:var(--spacing-section) var(--container-pad)}.door-title{max-width:var(--container-max);text-align:center;width:100%;margin-inline:auto;position:relative}.door-en{font-family:var(--typography-font-en);font-weight:600;font-size:var(--fs-giant);letter-spacing:.02em;line-height:1.05;display:block}.has-motion #works .door-en,.has-motion #services .door-en,.has-motion #company .door-en,.has-motion #contact .door-en{opacity:0;filter:blur(12px);transform:translateY(40px)scale(1.04)}.plain>.door{padding:0 0 var(--spacing-4)}.sec-body{z-index:2;padding:0 var(--spacing-8);position:relative}.sec-body>*{max-width:var(--container-max);margin-inline:auto}.sec-head{margin-bottom:var(--spacing-6);max-width:var(--container-text)!important}#story .sec-body{padding:var(--spacing-4)}.story-body{max-width:var(--container-text)!important}#story.story-split{padding:var(--spacing-section) var(--container-pad)}#story.story-split .door{background:0 0;padding:5vw 0 2.5vw}#story.story-split .sec-body{margin-top:var(--spacing-8)}.story-photo{margin-top:var(--spacing-5);max-width:360px;position:relative}.story-photo img{width:100%;height:auto}.story-photo .story-desc{pointer-events:none;width:44%;height:auto;position:absolute;top:0;right:8%}.story-body p{font-weight:700;font-size:var(--fs-lg);line-height:var(--typography-line-body);color:var(--color-light-text-sub)}.story-body p+p{margin-top:var(--spacing-4)}.story-body .story-creed{font-weight:800;font-size:var(--fs-xl);color:var(--color-light-text);border-left:2px solid var(--color-light-accent);padding-left:var(--spacing-3)}.works-body{z-index:2;padding:var(--spacing-6) var(--spacing-8) var(--spacing-section);position:relative}.works-grid{max-width:var(--container-max);gap:var(--spacing-6) var(--spacing-4);grid-template-columns:1fr;margin-inline:auto;display:grid}.works-compact{gap:var(--spacing-4) var(--spacing-3);margin-top:var(--spacing-8);grid-template-columns:repeat(2,1fr)}.work a{color:inherit;text-decoration:none;display:block}.work-frame{background:var(--color-light-line);display:block;overflow:hidden}.work-frame img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.work a:hover .work-frame img,.work a:focus-visible .work-frame img{transform:scale(1.04)}.work figcaption{margin-top:var(--spacing-2);font-size:var(--fs-xs);letter-spacing:.04em;line-height:var(--typography-line-heading);color:var(--color-light-text-sub)}.works-note{max-width:var(--container-max);margin:var(--spacing-8) auto 0;font-size:var(--fs-2xs);color:var(--color-light-text-sub)}.hslide-hint{display:none}.has-motion #services .card,.has-motion #services .sec-head,.has-motion #company .sec-head,.has-motion #company>.company-table,.has-motion #contact .sec-head,.has-motion #contact .contact-inner,.has-motion .work{opacity:0;filter:blur(12px);transform:translateY(40px)scale(1.04)}.card-row{gap:var(--spacing-6);grid-template-columns:1fr;list-style:none;display:grid}.card{background:var(--card-bg);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--spacing-3);overflow:hidden}.card-thumb{width:calc(100% + var(--spacing-4) * 2);max-width:none;margin:calc(var(--spacing-4) * -1) calc(var(--spacing-4) * -1) var(--spacing-2);aspect-ratio:16/9;object-fit:cover;display:block}.card-no{font-family:var(--typography-font-en);font-size:var(--fs-2xl);color:var(--color-light-accent);vertical-align:middle;display:inline-block}.card-title{font-family:var(--typography-font-display);font-weight:800;font-size:var(--fs-lg);line-height:var(--typography-line-heading);margin-top:var(--spacing-1)}.card-text{margin-top:var(--spacing-2);font-size:var(--fs-sm);color:var(--color-light-text-sub)}.card-soon{font-family:var(--typography-font-en);font-size:var(--fs-2xs);letter-spacing:var(--typography-tracking-en);color:var(--color-light-accent);border:1px solid var(--color-light-accent);border-radius:var(--radius-sm);padding:0 var(--spacing-1);vertical-align:middle;margin-left:var(--spacing-2);display:inline-block}.card-domain{margin-top:var(--spacing-2);font-family:var(--typography-font-en);font-size:var(--fs-xs);color:var(--color-light-text-sub);letter-spacing:.06em;display:block}.plain{padding:var(--spacing-section) var(--container-pad);z-index:2}.plain>*{max-width:var(--container-text);margin-inline:auto}.company-table{margin-top:var(--spacing-6);border-top:1px solid var(--color-light-line);max-width:var(--container-text)!important}.company-table>div{padding:var(--spacing-2) 0;border-bottom:1px solid var(--color-light-line);grid-template-columns:1fr;display:grid}.company-table dt{font-size:var(--fs-2xs);letter-spacing:.2em;color:var(--color-light-text-sub);align-items:center;display:flex}.company-table dd{font-size:var(--fs-sm)}.company-values{gap:0 var(--spacing-2);flex-wrap:wrap;display:flex}.company-values span{font-family:var(--typography-font-display);font-weight:800;font-size:var(--fs-2xs);letter-spacing:var(--typography-tracking-en);color:var(--color-light-text-sub)}.rep-personal{margin-top:var(--spacing-1);border-top:0}.rep-personal>div{border-bottom:0}.contact-inner{margin-top:var(--spacing-6);gap:var(--spacing-6);grid-template-columns:1fr;display:grid}.contact-form{max-width:var(--container-text)}.form-hp{width:1px;height:1px;position:absolute;top:auto;left:-9999px;overflow:hidden}.form-row{margin-bottom:var(--spacing-3)}.form-row label{font-size:var(--fs-xs);letter-spacing:.08em;margin-bottom:var(--spacing-1);display:block}.form-req{color:var(--color-light-accent);font-size:var(--fs-2xs);margin-left:var(--spacing-1)}.form-row input,.form-row select,.form-row textarea{appearance:none;width:100%;font:inherit;font-size:var(--fs-lg);line-height:var(--typography-line-heading);color:var(--color-light-text);background:var(--form-field-bg);border:1px solid var(--form-field-line);border-radius:var(--radius-sm);padding:var(--spacing-2)}.form-row textarea{resize:vertical}.form-row select{padding-right:var(--spacing-6)}.select-wrap{position:relative}.select-wrap:after{content:"";top:50%;right:var(--spacing-2);width:var(--spacing-1);height:var(--spacing-1);border-right:2px solid var(--color-light-text);border-bottom:2px solid var(--color-light-text);pointer-events:none;position:absolute;transform:translateY(-70%)rotate(45deg)}.form-row input:focus-visible,.form-row select:focus-visible,.form-row textarea:focus-visible{outline:2px solid var(--form-focus);outline-offset:1px;border-color:var(--form-focus)}.form-privacy{font-size:var(--fs-2xs);color:var(--color-light-text-sub);margin-bottom:var(--spacing-2)}.form-result{min-height:var(--spacing-3);font-size:var(--fs-sm);color:var(--color-light-accent);margin-bottom:var(--spacing-2)}.form-result.is-error{border:1px solid var(--color-light-accent);border-radius:var(--radius-sm);background:var(--color-light-accent-surface);padding:var(--spacing-2)}.form-submit{font:inherit;font-size:var(--fs-sm);letter-spacing:.14em;background:var(--button-bg);color:var(--button-text);border-radius:var(--button-radius);padding:var(--spacing-2) var(--spacing-8);cursor:pointer;border:0;transition:background .2s}.form-submit:hover{background:var(--button-bg-hover)}.form-submit:focus-visible{outline:2px solid var(--form-focus);outline-offset:2px}.contact-form.is-confirm .form-row,.contact-form.is-confirm .form-privacy,.contact-form.is-confirm [data-form-next],.contact-form.is-done .form-row,.contact-form.is-done .form-privacy,.contact-form.is-done [data-form-next]{display:none}.form-confirm-lead{margin-bottom:var(--spacing-3);font-weight:700}.form-confirm-lead:focus{outline:none}.form-confirm-list{border-top:1px solid var(--form-field-line);margin-bottom:var(--spacing-4)}.form-confirm-list>div{gap:var(--spacing-2);padding:var(--spacing-2) 0;border-bottom:1px solid var(--form-field-line);grid-template-columns:9em 1fr;display:grid}.form-confirm-list dt{font-size:var(--fs-xs);color:var(--color-light-text-sub)}.form-confirm-list dd{white-space:pre-wrap;overflow-wrap:anywhere}.form-confirm-actions{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.form-back{font:inherit;font-size:var(--fs-sm);letter-spacing:.14em;color:var(--color-light-text);border:1px solid var(--color-light-text);border-radius:var(--button-radius);padding:var(--spacing-2) var(--spacing-6);cursor:pointer;background:0 0;transition:background .2s}.form-back:hover{background:var(--color-light-line)}.form-back:focus-visible{outline:2px solid var(--form-focus);outline-offset:2px}.form-done{border:1px solid var(--form-field-line);border-radius:var(--radius-md);background:var(--color-light-surface);padding:var(--spacing-4)}.form-done-title{font-family:var(--typography-font-display);font-weight:800;font-size:var(--fs-xl);color:var(--color-light-accent);margin-bottom:var(--spacing-2)}.form-done-title:focus{outline:none}.form-done-body{color:var(--color-light-text-sub)}.contact-inner>.form-submit{justify-self:start}.form-modal{z-index:110;visibility:hidden;position:fixed;inset:0}.form-modal.is-open{visibility:visible}.form-modal-overlay{background:color-mix(in srgb, var(--color-light-text) 55%, transparent);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s;position:absolute;inset:0}.form-modal.is-open .form-modal-overlay{opacity:1}.form-modal-panel{background:var(--color-light-background);border-radius:var(--radius-md);width:min(640px,94vw);height:fit-content;max-height:88svh;padding:var(--spacing-3) var(--spacing-4) var(--spacing-4);opacity:0;margin:auto;transition:opacity .3s,transform .3s;position:absolute;inset:0;overflow-y:auto;transform:translateY(16px)}.form-modal.is-open .form-modal-panel{opacity:1;transform:none}.form-modal-panel:focus{outline:none}.form-close{z-index:2;width:var(--spacing-6);height:var(--spacing-6);border-radius:var(--radius-full);background:var(--color-light-text);color:var(--color-light-on-inverse);font-size:var(--fs-sm);cursor:pointer;border:0;margin-left:auto;transition:background .2s;display:block;position:sticky;top:0}.form-close:hover{background:var(--color-light-accent)}.form-close:focus-visible{outline:2px solid var(--form-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.form-modal-overlay,.form-modal-panel{transition:none}}.contact-aside p{margin-bottom:var(--spacing-3)}.contact-aside span{font-size:var(--fs-2xs);letter-spacing:.2em;color:var(--color-light-text-sub);display:block}.contact-aside a{font-family:var(--typography-font-en);font-size:var(--fs-xl);text-decoration:none}.site-footer{--panx:0;z-index:2;background:var(--color-light-background);padding:var(--spacing-6) var(--container-pad);flex-direction:column;justify-content:flex-end;min-height:100svh;display:flex;position:relative}.site-footer>*{max-width:var(--container-max);width:100%;margin-inline:auto}.footer-brand{font-family:var(--typography-font-en);font-size:var(--fs-3xl);font-weight:800;line-height:var(--typography-line-display);color:var(--color-dark-text)}.footer-note{margin-top:var(--spacing-2);font-size:var(--fs-2xs);color:var(--color-light-text-sub)}.footer-copy{margin-top:var(--spacing-2);font-family:var(--typography-font-en);font-size:var(--fs-2xs);color:var(--color-light-text-sub);letter-spacing:.1em}.footer-msg{display:none}.has-motion .footer-msg{text-align:center;pointer-events:none;width:max-content;max-width:88vw;margin:0;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.footer-msg-inner{gap:var(--spacing-1);color:var(--color-light-on-inverse);font-family:var(--typography-font-display);font-size:var(--fs-xs);letter-spacing:.04em;flex-direction:column;line-height:1.5;display:flex}.footer-msg span{white-space:nowrap}.has-motion .footer-msg-inner{opacity:0;filter:blur(12px);transform:scale(1.15)}body,.tri-bg,.tri-bg .tri-grid path,.site-footer,.footer-brand,.footer-note,.footer-copy{transition:background-color .6s,fill .6s,color .6s,border-color .6s}.is-end-dark body{background:var(--color-dark-background)}.is-end-dark.has-motion .tri-bg{background:var(--color-dark-background);opacity:.1}.is-end-dark.has-motion .tri-bg .tri-grid path{fill:var(--color-dark-line)}.is-end-dark .site-footer{border-top-color:var(--color-dark-line)}.is-end-dark .footer-note,.is-end-dark .footer-copy{color:var(--color-dark-text-sub)}@media (orientation:landscape) and (height<=500px){.hero-scroll{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}