@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;--label-size:16px;--filter-row-height:40px;--filter-top-gap:24px;--ease:cubic-bezier(.32,.72,0,1);--content-line:calc(48px + clamp(48px,8vw,144px));--rail-width:200px;--frame-space:48px}*{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,textarea{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}.editor-panel[hidden],.editor-reopen[hidden]{display:none}.editor-panel{z-index:40;border:1px solid var(--line);width:min(420px,100vw - 32px);color:var(--ink);background:#fffffffa;flex-direction:column;gap:14px;padding:20px;font-size:13px;display:flex;position:fixed;top:80px;bottom:16px;right:16px;overflow:auto}.editor-panel__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;display:flex}.editor-panel__header h2{font-family:var(--font-en);margin:4px 0 0;font-size:20px;font-weight:600;line-height:1.2}.editor-panel__close,.editor-panel__actions button,.editor-gallery__controls button,.editor-panel__add-image{border:1px solid var(--ink);cursor:pointer;background:#fff;min-height:36px;padding:0 12px;font-size:12px;line-height:1}.editor-panel__close:hover,.editor-panel__actions button:hover,.editor-gallery__controls button:hover,.editor-panel__add-image:hover{background:var(--ink);color:#fff}.editor-panel__hint{color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.editor-panel__field{color:var(--ink-2);gap:7px;font-size:12px;line-height:1.4;display:grid}.editor-panel__field input,.editor-panel__field select,.editor-panel__field textarea,.editor-gallery__body input{border:1px solid var(--surface-mute);background:var(--surface-soft);width:100%;color:var(--ink);border-radius:0;padding:8px 10px;font-size:14px;line-height:1.5}.editor-panel__field textarea{resize:vertical}.editor-panel__thumb{object-fit:contain;background:var(--surface-soft);width:100%;height:120px}.editor-gallery{gap:10px;display:grid}.editor-gallery__item{border:1px solid var(--line);background:#fff;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:10px;display:grid}.editor-gallery__item>img{object-fit:contain;background:var(--surface-soft);width:112px;height:80px}.editor-gallery__body{align-content:start;gap:7px;min-width:0;display:grid}.editor-gallery__body strong{font-family:var(--font-en);font-size:12px;font-weight:600}.editor-gallery__body input{padding:6px 8px;font-size:11px}.editor-gallery__controls{flex-wrap:wrap;gap:6px;display:flex}.editor-gallery__controls button{border-color:var(--surface-mute);min-height:30px;padding:0 8px;font-size:11px}.editor-gallery__controls button:disabled{cursor:not-allowed;opacity:.35}.editor-panel__add-image{cursor:pointer;justify-content:center;align-items:center;width:max-content;display:inline-flex}.editor-panel__add-image input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.editor-panel__empty{color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.editor-panel__status{min-height:20px;color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.editor-panel__status.is-error{color:#c5352e}.editor-panel__actions{background:#fffffffa;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:12px;display:flex;position:sticky;bottom:0}.editor-panel__actions button:last-child{background:var(--ink);color:#fff}.editor-panel__actions button:last-child:hover{background:#000}.editor-reopen{z-index:41;border:1px solid var(--ink);background:var(--ink);color:#fff;min-height:40px;padding:0 16px;font-size:13px;position:fixed;bottom:16px;right:16px}.hero-frame{color:#fff;background:#86d5df;border-radius:48px;min-height:calc(100svh - 96px);margin:48px;position:relative;overflow:hidden}.topbar{top:var(--frame-space);z-index:20;color:#fff;pointer-events:none;height:104px;transition:top .24s var(--ease),height .24s var(--ease),background-color .2s ease,color .2s ease,border-color .2s ease;background:0 0;border-bottom:1px solid #0000;position:fixed;left:0;right:0}.topbar.is-scrolled{border-bottom-color:var(--line);height:72px;color:var(--ink);-webkit-backdrop-filter:blur(18px);background:#ffffffe6;top:0}.topbar__inner{width:100%;max-width:1440px;height:100%;padding-inline:var(--content-line);justify-content:flex-end;align-items:center;margin-inline:auto;display:flex}.topbar__nav{font-family:var(--font-en);pointer-events:auto;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{font-family:var(--font-en);letter-spacing:0;margin:0;line-height:1.2}.hero__label{font-size:18px}.section-label{font-size:var(--label-size)}.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{grid-template-columns:var(--rail-width) minmax(0,1fr);width:100%;max-width:1440px;padding:96px var(--content-line);background:#fff;gap:40px;margin-inline:auto;scroll-margin-top:16px;display:grid;position:relative;container-type:inline-size}.works:before,.about:before,.contact:before{content:"";top:108px;left:calc(var(--content-line) + var(--rail-width) + 40px);right:var(--content-line);background:linear-gradient(90deg,var(--accent-soft),#86d5df);transform-origin:0;height:16px;transition:transform .7s var(--ease);position:absolute;transform:scaleX(0)}.works.is-line-visible:before,.about.is-line-visible:before,.contact.is-line-visible:before{transform:scaleX(1)}.section-rail{align-self:start;position:sticky;top:112px}.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{margin-top:var(--filter-top-gap);justify-items:start;display:grid}.works__filter{min-width:88px;min-height:var(--filter-row-height);color:var(--ink-2);text-align:left;font-family:var(--font-en);font-size:var(--label-size);background:0 0;border:0;padding:0;font-weight:400;line-height:1.2;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;padding-top:72px}.works__grid{grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:8px;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}.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;padding-top:72px}.profile-block>.section-label{margin-bottom:24px}.profile-item{border-top:1px solid var(--line);grid-template-columns:minmax(240px,.5fr) minmax(0,1fr);align-items:start;gap:40px;padding:24px 0;display:grid}.profile-item__visual{aspect-ratio:16/9;background:var(--surface-soft);display:block;overflow:hidden}.profile-item__visual img{object-fit:cover;width:100%;height:100%}.profile-item__body h3{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:0;font-size:20px;font-weight:700;line-height:1.6}.profile-item__body p{color:var(--ink-2);margin:0;font-size:15px;line-height:2}.profile-item__body h3{margin-bottom:24px}.media-block{margin-top:64px}.media-block>.section-label{margin-bottom:24px}.media-item{border-top:1px solid var(--line);grid-template-columns:minmax(240px,.5fr) minmax(0,1fr);align-items:start;gap:40px;padding:24px 0;display:grid}.media-item__visual{aspect-ratio:3/2;background:var(--surface-soft);display:block;overflow:hidden}.media-item__visual img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease)}.media-item__body{flex-direction:column;align-items:flex-start;min-height:100%;display:flex}.media-item__meta{color:var(--ink-2);font-family:var(--font-en);font-size:14px;line-height:1.4}.media-item strong{max-width:640px;font-family:var(--font-display);letter-spacing:-.015em;margin:24px 0;font-size:20px;font-weight:700;line-height:1.6}.media-item__link,.contact-form__submit{border:1px solid var(--ink);min-height:44px;font-family:var(--font-body);background:#fff;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:400;line-height:1;transition:background-color .16s,color .16s;display:inline-flex}.media-item__link{margin-top:auto}.media-item:hover .media-item__link,.contact-form__submit:hover{background:var(--ink);color:#fff}.contact-review__actions svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}@media (hover:hover) and (pointer:fine){.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}.media-item:hover .media-item__visual img{transform:scale(1.025)}}.contact__content{padding-top:72px;display:block}.contact-form{gap:24px;max-width:840px;margin-top:0;display:grid}.contact-form[hidden],.contact-review[hidden],.contact-success[hidden]{display:none}.contact-form__honey{width:1px!important;height:1px!important;position:absolute!important;left:-10000px!important;overflow:hidden!important}.contact-form__field{grid-template-columns:224px minmax(0,1fr);align-items:start;gap:16px;display:grid}.contact-form__field label{white-space:nowrap;padding-top:10px;font-size:15px;line-height:1.6}.contact-form__field label span{color:var(--ink-2);margin-left:8px;font-size:12px}.contact-form__field input,.contact-form__field textarea{border:1px solid var(--surface-mute);background:var(--surface-soft);border-radius:0;outline:0;width:100%;font-size:16px;line-height:1.6;transition:border-color .16s;display:block}.contact-form__field input{min-height:44px;padding:8px 12px}.contact-form__field textarea{resize:vertical;height:112px;min-height:112px;padding:10px 12px}.contact-form__field input:focus,.contact-form__field textarea:focus{border-color:var(--ink);box-shadow:inset 0 0 0 .5px var(--ink)}.contact-form__error{color:#c5352e;min-height:24px;margin:8px 0 0;font-size:13px;line-height:1.6}.contact-form__submit{justify-self:end;margin-top:16px}.contact-review{max-width:840px;animation:content-enter .3s var(--ease) both;margin-top:0}.contact-review h3{margin-bottom:40px}.contact-review__list{border-top:1px solid var(--line);margin:0}.contact-review__list div{border-bottom:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);gap:40px;padding:24px 0;display:grid}.contact-review__list dt{color:var(--ink-2);font-size:13px}.contact-review__list dd{white-space:pre-wrap;margin:0;font-size:15px;line-height:1.8}.contact-review__actions{justify-content:flex-end;gap:12px;margin-top:40px;display:flex}.contact-review__actions button{border:1px solid var(--ink);min-height:44px;font-family:var(--font-body);background:#fff;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:400;line-height:1;transition:background-color .16s,color .16s;display:inline-flex}.contact-review__actions button:hover{background:var(--ink);color:#fff}.contact-review__actions button:disabled{cursor:wait;opacity:.4}.contact-review__error{color:#c5352e;text-align:right;min-height:24px;margin:12px 0 0;font-size:13px;line-height:1.6}.contact-success{max-width:840px}.contact-success h3{font-family:var(--font-display);margin:0 0 16px;font-size:20px;line-height:1.6}.contact-success p{color:var(--ink-2);margin:0;font-size:15px;line-height:2}.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:auto;object-fit:contain;background:var(--surface-soft);width:100%;height:auto}.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:-.02em;margin:24px 0 0;font-size:clamp(20px,1.8vw,28px);line-height:1.5}.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;width:100%;max-width:none;color:var(--ink-2);margin:64px 0 0;font-size:15px;line-height:2}.project-view__gallery{flex-direction:column;gap:16px;margin-top:64px;display:flex}.project-view__gallery img{aspect-ratio:auto;object-fit:contain;background:var(--surface-soft);width:100%;height:auto}@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;--frame-space:64px}.hero-frame{border-radius:56px;min-height:calc(100svh - 128px);margin:64px}}@media (width<=1180px){:root{--rail-width:160px}.works__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=820px){:root{--content-line:32px;--frame-space:12px;--filter-top-gap:16px}.editor-panel{width:calc(100vw - 16px);padding:16px;top:68px;bottom:8px;right:8px}.editor-gallery__item{grid-template-columns:88px minmax(0,1fr)}.editor-gallery__item>img{width:88px;height:72px}.editor-reopen{bottom:8px;right:8px}.hero-frame{border-radius:28px;min-height:calc(100svh - 24px);margin:12px}.topbar{height:80px}.topbar.is-scrolled{height:64px}.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 var(--content-line);scroll-margin-top:24px;display:block}.works:before,.about:before,.contact:before{top:77px;left:140px;right:var(--content-line);height:10px}.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}.works__grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.work-card{grid-template-rows:auto 64px;height:100%;display:grid}.work-card__overlay{display:none}.work-card__caption{justify-content:space-between;align-items:flex-start;gap:8px;height:64px;min-height:64px;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}.works__content,.about__content,.contact__content{padding-top:0}.profile-item{grid-template-columns:1fr;gap:24px}.profile-item__body h3{font-size:20px}.media-item{grid-template-columns:1fr;gap:24px}.media-item strong{margin:16px 0;font-size:18px}.contact-form{gap:24px;margin-top:0}.contact-form__field{display:block}.contact-form__field label{padding:0 0 12px;display:block}.contact-form__submit{justify-self:stretch;width:100%;margin-top:16px}.contact-review{margin-top:0}.contact-review__list div{grid-template-columns:1fr;gap:8px}.contact-review__actions{grid-template-columns:1fr 1fr;display:grid}.contact-review__actions button,.contact-review__actions a{padding:0 16px}.project-view__top{margin-bottom:40px}.project-view{scroll-margin-top:80px}.project-view__body{padding-bottom:0}.project-view__intro{grid-template-columns:1fr;gap:40px;padding-bottom:40px}.project-view__intro h2{font-size:20px}.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}.works:before,.about:before,.contact:before{transform:none}}
