@font-face{font-family:PortfolioJPBody;src:local(A-OTF Gothic BBB Pro),local(A-OTF Gothic BBB Pro Medium),local(GothicBBBPro-Medium),url(/fonts/LINESeedJP-Regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:PortfolioJPDisplay;src:local(A-OTF Midashi Go MB31 Pro),local(A-OTF Midashi Go MB31 Pro MB31),local(MidashiGoPro-MB31),url(/fonts/LINESeedJP-Bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Afacad;src:url(/fonts/Afacad-Latin.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fff;--surface:#fff;--surface-soft:#f2f2f7;--surface-mute:#e5e5ea;--ink:#1c1c1e;--ink-2:#6c6c70;--ink-3:#aeaeb2;--line:#3c3c431a;--accent:#4fb4ca;--accent-soft:#e7f7f9;--font-body:PortfolioJPBody,"A-OTF Gothic BBB Pro","Hiragino Sans","Yu Gothic",sans-serif;--font-display:PortfolioJPDisplay,"A-OTF Midashi Go MB31 Pro","Hiragino Sans","Yu Gothic",sans-serif;--font-en:Afacad,ui-sans-serif,sans-serif;--ease:cubic-bezier(.32,.72,0,1);--content-line:calc(48px + clamp(48px,8vw,144px))}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.7;overflow-x:hidden}button,a,input{font:inherit;color:inherit}button{cursor:pointer}a{text-decoration:none}img{max-width:100%;display:block}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.gate{z-index:100;visibility:visible;transition:transform .3s var(--ease),visibility 0s linear 0s;background:#fff;place-items:center;display:grid;position:fixed;inset:0;transform:translate(0)}.gate.is-hidden{visibility:hidden;transition:transform .3s var(--ease),visibility 0s linear .3s;transform:translate(-100%)}.gate__form{grid-template-columns:minmax(0,280px) auto;align-items:end;gap:16px;width:min(420px,100vw - 40px);display:grid}.gate__form input{border:0;border-bottom:1px solid var(--ink-3);min-width:0;font-family:var(--font-en);background:0 0;border-radius:0;outline:none;padding:12px 0;font-size:16px;line-height:1.5}.gate__form input:focus{border-bottom-color:var(--ink)}.gate__form button{border:1px solid var(--ink);background:var(--ink);color:#fff;min-width:72px;min-height:44px;font-family:var(--font-en);padding:0 16px;font-size:16px}.gate__error{color:#c5352e;grid-column:1/-1;min-height:24px;margin:0;font-size:12px;line-height:1.6}.site{opacity:0;visibility:hidden;width:100%;transition:opacity .3s;container-type:inline-size}.site.is-visible{opacity:1;visibility:visible}.hero-frame{color:#fff;background:#86d5df;border-radius:48px;min-height:calc(100svh - 96px);margin:48px;position:relative;overflow:hidden}.topbar{z-index:4;justify-content:flex-end;align-items:center;height:104px;padding:0 clamp(40px,5vw,80px);display:flex;position:absolute;top:0;left:0;right:0}.topbar__nav{font-family:var(--font-en);gap:32px;font-size:17px;display:flex}.topbar__nav a{place-items:center;min-height:44px;display:grid;position:relative}.topbar__nav a:after{content:"";background:currentColor;height:1px;transition:right .2s;position:absolute;bottom:8px;left:0;right:100%}.topbar__nav a:hover:after{right:0}.hero{min-height:inherit;color:#fff;background:#86d5df;align-items:center;padding:160px clamp(48px,8vw,144px) 112px;display:flex;position:relative;overflow:hidden}#shader-root{z-index:0;background:#86d5df;position:absolute;inset:0;overflow:hidden}#shader-root>div,#shader-root canvas{display:block;width:100%!important;height:100%!important}#shader-root>div{transform-origin:50%;animation:18s ease-in-out infinite alternate mesh-drift}#shader-root:after{content:"";pointer-events:none;background:linear-gradient(90deg,#1e7c9229,#5bbecd0f 58%,#e5f9fa05);position:absolute;inset:0}.hero__content{z-index:1;width:min(1120px,84vw);animation:hero-in .7s var(--ease) both,hero-float 9s .7s ease-in-out infinite alternate;margin-left:max(0px,50cqi - 720px);position:relative}.hero__label,.section-label,.section-index{font-family:var(--font-en)}.hero__label,.section-label{letter-spacing:0;margin:0;line-height:1.2}.hero__label{font-size:18px}.section-label{font-size:16px}.hero__label{margin-bottom:32px}.hero h1{font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(38px,3.8vw,60px);font-weight:700;line-height:1.35}.hero h1 span{white-space:nowrap;display:block}.hero__lead{letter-spacing:0;text-wrap:pretty;max-width:1120px;margin:40px 0 0;font-size:clamp(14px,.95vw,16px);font-weight:400;line-height:2}.works,.about,.contact{width:100%;max-width:1440px;padding:96px 48px 96px var(--content-line);background:#fff;grid-template-columns:200px minmax(0,1fr);gap:40px;margin-inline:auto;display:grid}.about,.contact{border-top:1px solid var(--line)}.section-rail{align-self:start;position:sticky;top:40px}.section-index{color:var(--ink-2);margin:0 0 8px;font-size:15px;line-height:1}.section-rail h2{font-family:var(--font-en);letter-spacing:-.02em;margin:0;font-size:34px;font-weight:600;line-height:1.2}.section-rail__copy{max-width:180px;color:var(--ink-2);margin:24px 0 0;font-size:13px;line-height:1.8}.works__filters{justify-items:start;margin-top:40px;display:grid}.works__filter{min-width:88px;min-height:44px;color:var(--ink-2);text-align:left;font-family:var(--font-en);background:0 0;border:0;padding:0;font-size:17px;font-weight:400;transition:color .16s}.works__filter:hover,.works__filter.is-active{color:var(--ink)}.works__filter.is-active{font-weight:700}.works__content{min-width:0}.works__grid{grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:2px;display:grid}.works__grid[hidden]{display:none}.work-card{text-align:left;background:#fff;border:0;min-width:0;padding:0;display:block}.work-card__visual{aspect-ratio:16/9;background:var(--surface-soft);display:block;position:relative;overflow:hidden}.work-card__visual img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease)}.work-card__overlay{color:#fff;opacity:0;text-align:center;background:#1c1c1ec7;flex-direction:column;justify-content:center;align-items:center;padding:20px;transition:opacity .2s;display:flex;position:absolute;inset:0}.work-card__overlay>span{font-size:15px;line-height:1.6}.work-card__overlay small{font-family:var(--font-en);margin-top:8px;font-size:15px;line-height:1}.work-card__caption{display:none}.work-card:hover .work-card__visual img,.work-card:focus-visible .work-card__visual img{transform:scale(1.025)}.work-card:hover .work-card__overlay,.work-card:focus-visible .work-card__overlay{opacity:1}.reveal{opacity:0;transition:opacity .3s ease var(--delay),transform .3s var(--ease) var(--delay);transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:none}.about__content{min-width:0}.about__intro{display:block}.about__copy{max-width:760px}.about__copy h3,.contact__lead h3{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:24px 0;font-size:clamp(24px,2.1vw,32px);font-weight:700;line-height:1.5}.about__copy>p:last-child,.contact__lead>p{color:var(--ink-2);margin:0;font-size:15px;line-height:2}.contact__content{display:block}.contact__lead h3{margin-top:24px;font-size:clamp(24px,2.1vw,32px)}.contact__lead>p{max-width:720px}.contact__link{border-bottom:1px solid var(--ink);min-height:44px;font-family:var(--font-en);margin-top:40px;padding:8px 0 4px;font-size:20px;font-weight:500;display:inline-block}.footer{width:100%;max-width:1440px;padding:40px 48px 40px var(--content-line);border-top:1px solid var(--line);font-family:var(--font-en);color:var(--ink-2);justify-content:space-between;margin-inline:auto;font-size:15px;display:flex}.project-view{background:#fff;min-width:0}.project-view[hidden]{display:none}.project-view.is-open{animation:content-enter .3s var(--ease) both}.project-view__top{border-bottom:1px solid var(--line);align-items:center;min-height:44px;margin-bottom:40px;display:flex}.project-view__back{min-height:44px;color:var(--ink-2);background:0 0;border:0;padding:0;font-size:13px}.project-view__back:hover{color:var(--ink)}.project-view__body{width:100%;padding:0 0 32px}.project-view__hero{aspect-ratio:16/9;object-fit:cover;background:var(--surface-soft);width:100%}.project-view__intro{grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:64px;padding:0 0 64px;display:grid}.project-view__intro h2{font-family:var(--font-display);letter-spacing:-.025em;margin:24px 0 0;font-size:clamp(24px,2.4vw,36px);line-height:1.4}.project-view__facts{align-content:start;gap:20px;margin:0;display:grid}.project-view__facts div{border-bottom:1px solid var(--line);grid-template-columns:72px 1fr;gap:16px;padding-bottom:20px;display:grid}.project-view__facts dt{color:var(--ink-2);font-size:12px}.project-view__facts dd{font-family:var(--font-en);margin:0;font-size:15px;line-height:1.6}.project-view__summary{white-space:pre-line;max-width:760px;color:var(--ink-2);margin:64px 0 0;font-size:15px;line-height:2}.project-view__gallery{gap:2px;margin-top:64px;display:grid}.project-view__gallery img{aspect-ratio:16/9;object-fit:cover;background:var(--surface-soft);width:100%}@keyframes mesh-drift{0%{transform:scale(1.02)translate(-.5%)}to{transform:scale(1.07)translate(1.5%,-1%)}}@keyframes hero-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes hero-float{0%{translate:0}to{translate:0 -7px}}@keyframes content-enter{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@media (width>=1600px){:root{--content-line:208px}.hero-frame{border-radius:56px;min-height:calc(100svh - 128px);margin:64px}}@media (width<=1180px){.works,.about,.contact{grid-template-columns:160px minmax(0,1fr)}.works__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=820px){:root{--content-line:32px}.hero-frame{border-radius:28px;min-height:calc(100svh - 24px);margin:12px}.topbar{height:80px;padding:0 20px}.topbar__nav{gap:14px;font-size:15px}.hero{padding:120px 20px 72px}.hero__content{width:100%;margin-left:0}.hero__label{margin-bottom:24px;font-size:16px}.hero h1{letter-spacing:-.02em;font-size:clamp(22px,6.15vw,26px);line-height:1.5}.hero__lead{margin-top:32px;font-size:14px;line-height:1.95}.works,.about,.contact{padding:64px 20px 64px var(--content-line);display:block}.section-rail{margin-bottom:40px;position:static}.section-rail h2{font-size:30px}.section-rail__copy{max-width:320px;margin-top:16px;font-size:13px}.works__filters{width:140px;margin-top:24px}.works__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card__overlay{display:none}.work-card__caption{justify-content:space-between;align-items:flex-start;gap:8px;min-height:56px;padding:12px 4px 16px;font-size:12px;line-height:1.5;display:flex}.work-card__caption small{color:var(--ink-2);font-family:var(--font-en);flex-shrink:0;font-size:14px}.about__copy h3,.contact__lead h3{font-size:24px}.footer{padding:32px 20px 32px var(--content-line)}.project-view__top{margin-bottom:40px}.project-view__body{padding-bottom:0}.project-view__intro{grid-template-columns:1fr;gap:40px;padding-bottom:40px}.project-view__intro h2{font-size:24px}.project-view__summary,.project-view__gallery{margin-top:40px}}@media (width<=390px){.topbar__nav{gap:10px;font-size:14px}.hero h1{font-size:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}.reveal{opacity:1;transform:none}}
