@charset "UTF-8";
/* Hero animation only: preserve the heading's existing typography and geometry. */
.hero-reveal-pending #hero-title{visibility:hidden}
#hero-title .hero-reveal-line-mask{overflow:hidden}
@media(prefers-reduced-motion:reduce){.hero-reveal-pending #hero-title{visibility:visible}}
:root{--ink:#17241f;--green:#064c3e;--accent:#d5f780;--paper:#fff;--muted:#5a6660;--line:#dce2de;--wash:#f4f6f4;color-scheme:light;font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #c66124;outline-offset:6px}img{display:block;max-width:100%}p,h1,h2,h3{margin:0}a,button{-webkit-tap-highlight-color:transparent}.wrap{width:min(1200px,calc(100% - 96px));margin-inline:auto}.header{min-height:100px;display:flex;align-items:center;gap:28px}.logo{font-size:2.45rem;font-weight:800;letter-spacing:-.075em;line-height:1}.logo span{color:#328262}.header-description{font-size:.875rem;color:var(--muted);padding-left:26px;border-left:1px solid var(--line)}nav{margin-left:auto;display:flex;gap:32px;font-size:.875rem;font-weight:600}nav a{padding-block:12px}nav a:hover{color:#187158}.hero{background:var(--green);color:white}.hero-inner{padding-block:46px 25px}.eyebrow{font-size:.75rem;letter-spacing:.15em;font-weight:600;color:var(--green);margin-bottom:20px}.light{color:#c7ded3}.hero-grid{display:grid;grid-template-columns:1.6fr 1fr;align-items:center;gap:30px;padding:26px 0 53px}h1{font-size:clamp(2.6rem,5.2vw,4.65rem);line-height:1.5;letter-spacing:.04em;font-weight:700}.hero-accent{color:var(--accent)}.hero-description{font-size:1rem;line-height:2.05;color:#dce9e2;margin-top:27px}.hero-side{justify-self:end;border-left:1px solid #4c7d6b;padding-left:48px;align-self:center}.type-art{font-size:clamp(3rem,5.8vw,5.1rem);font-weight:500;line-height:1;letter-spacing:-.065em}.type-art>span:first-child{display:block;color:var(--accent);font-size:.48em;padding:14px 0 20px;letter-spacing:-.1em}.type-art .type-period{color:var(--accent)}.hero-side-note{font-size:.875rem;color:#dce9e2;margin-top:28px}.hero-bottom{border-top:1px solid #4c7d6b;padding-top:22px;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;color:#e3ede7}.hero-bottom a{display:flex;gap:38px;align-items:center;padding:8px 0}.hero-bottom a span{font-size:1.4rem;color:var(--accent)}.section{padding-block:96px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px}.section-heading .eyebrow{margin-bottom:15px}h2{font-size:clamp(1.6rem,2.4vw,2rem);line-height:1.6;letter-spacing:.02em}.section-aside{font-size:.875rem;color:var(--muted);padding-bottom:8px}.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px}.work-visual{aspect-ratio:1.45;display:block;position:relative;overflow:hidden}.aqua{background:#096e79;color:#fff}.aqua img{width:100%;height:100%;object-fit:cover;object-position:43%;transition:transform .5s ease;filter:brightness(.7)}.work-visual:hover img{transform:scale(1.035)}.work-visual-title{position:absolute;inset:34px auto auto 32px;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.05;font-weight:500;letter-spacing:.065em}.work-visual-title>span{display:block;font-size:.7rem;letter-spacing:.13em;margin-top:17px}.round-arrow{position:absolute;bottom:22px;right:22px;display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffffa0;border-radius:50%;font-size:1.35rem;transition:background .2s}.work-visual:hover .round-arrow{background:#ffffff30}.shitara{background:#e7ecd9;color:#264533;padding:28px 32px}.shitara-top{display:flex;justify-content:space-between;gap:10px;font-size:.7rem;letter-spacing:.13em;font-weight:600;border-bottom:1px solid #aebca4;padding-bottom:17px}.shitara-title{display:block;font-size:clamp(1.9rem,3.3vw,3rem);line-height:1.45;letter-spacing:.11em;font-weight:600;margin-top:24px}.shitara-bottom{position:absolute;bottom:28px;font-size:.75rem;letter-spacing:.06em}.shitara .round-arrow{border-color:#82977e}.shitara:hover{background:#dce5ca}.work-meta{display:flex;justify-content:space-between;gap:12px;margin-top:24px;color:var(--muted);font-size:.75rem;letter-spacing:.07em}.work-meta span:last-child{letter-spacing:0}.work h3{font-size:1.65rem;margin-top:16px;line-height:1.4}.work-subtitle{font-size:.875rem;margin-top:9px}.work-description{font-size:1rem;line-height:1.9;color:var(--muted);margin-top:18px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.tags span{font-size:.75rem;border:1px solid var(--line);padding:6px 10px;border-radius:3px}.text-link{display:inline-flex;gap:34px;align-items:center;margin-top:25px;border-bottom:1px solid var(--ink);padding-bottom:9px;font-size:.875rem;font-weight:600}.text-link:hover{color:#187158;border-color:#187158}.services-section{background:var(--wash)}.service-row{display:grid;grid-template-columns:45px 1fr 1.65fr;gap:26px;border-top:1px solid #cdd8d0;padding-block:36px}.service-row:last-child{padding-bottom:0}.service-number{font-size:.875rem;color:#567765;padding-top:9px}.service-name h3{font-size:1.75rem;line-height:1.5}.service-name>span{display:block;font-size:.75rem;letter-spacing:.1em;color:var(--muted);margin-top:8px}.service-body>p{font-size:1rem;line-height:1.9}.service-body ul{display:grid;gap:12px;list-style:none;margin:22px 0 0;padding:0;color:var(--muted);font-size:.875rem}.service-body li{position:relative;padding-left:18px;line-height:1.65}.service-body li:before{content:"";width:6px;height:6px;border:1px solid #3e6d53;position:absolute;left:0;top:.55em}.about{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.about h2{line-height:1.8}.name{margin-top:32px;display:flex;align-items:center;gap:18px}.name strong{font-size:1.3rem;letter-spacing:.1em}.name span{font-size:.75rem;letter-spacing:.08em;color:var(--muted)}.about-body{padding-top:35px}.about-body>p{font-size:1rem;line-height:2;color:var(--muted)}.about-body>p+p{margin-top:19px}.skills{display:flex;gap:12px 22px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px;margin-top:30px;font-size:.875rem;color:var(--green)}.footer{border-top:1px solid var(--line)}.footer-inner{display:flex;align-items:center;gap:26px;min-height:105px}.footer .logo{font-size:2rem}.footer-inner>span{font-size:.75rem;color:var(--muted)}.footer small{font-size:.75rem;margin-left:auto;color:var(--muted)}.back-top{font-size:.875rem;padding:12px 0}.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-180%);padding:12px;background:white;color:var(--green);z-index:10}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.hero-grid{padding-block:40px 64px}.hero-inner{padding-top:54px}}
@media(max-width:950px){.wrap{width:calc(100% - 56px)}.header{gap:20px}.header-description{padding-left:18px;font-size:.75rem}nav{gap:20px}.hero-side{padding-left:26px}.works-grid{gap:28px}.shitara{padding:22px}.shitara-title{margin-top:18px}.shitara-bottom{font-size:.7rem;bottom:22px;max-width:70%;line-height:1.7}.shitara-top{font-size:.65rem}.shitara-top span{display:none}.work-visual-title{left:24px;top:26px}.section{padding-block:74px}.about{gap:45px}.service-row{grid-template-columns:25px 1fr 1.6fr;gap:18px}.footer-inner{flex-wrap:wrap;gap:16px}.footer-inner>span{display:none}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.header{min-height:80px;flex-wrap:wrap;justify-content:space-between;padding-block:18px;gap:14px}.header .logo{font-size:2rem}.header-description{display:none}nav{gap:17px;font-size:.875rem}.hero-inner{padding-top:30px}.eyebrow{font-size:.7rem}.hero-grid{grid-template-columns:1fr;padding-block:18px 30px;gap:26px}h1{font-size:clamp(2rem,8.7vw,3.5rem);line-height:1.55}.hero-description{font-size:.9375rem;line-height:1.95;margin-top:24px}.hero-side{justify-self:stretch;padding:22px 0 0;border-left:0;border-top:1px solid #4c7d6b;display:flex;align-items:center;justify-content:space-between;gap:20px}.type-art{font-size:2.2rem;line-height:1.2;letter-spacing:-.06em}.type-art>span:first-child{display:inline;font-size:.62em;padding:0 8px;vertical-align:middle}.hero-side-note{font-size:.75rem;line-height:1.8;margin-top:0;max-width:7em}.hero-bottom{font-size:.75rem;padding-top:14px}.hero-bottom a{gap:20px}.section{padding-block:58px}.section-heading{display:block;margin-bottom:27px}.section-aside{margin-top:10px;padding:0}.section-heading .eyebrow{margin-bottom:10px}h2{font-size:1.55rem}.works-grid{grid-template-columns:1fr;gap:46px}.work-visual{aspect-ratio:1.3}.work-visual-title{font-size:2.7rem;top:28px;left:26px}.shitara{padding:24px}.shitara-title{font-size:2.5rem;margin-top:18px;line-height:1.4}.shitara-top{font-size:.7rem}.shitara-top span{display:inline}.shitara-bottom{font-size:.75rem;bottom:26px}.work-meta{margin-top:20px;letter-spacing:.02em}.work h3{font-size:1.45rem;margin-top:12px}.work-description{margin-top:15px}.service-row{grid-template-columns:26px 1fr;gap:16px;padding-block:27px}.service-name h3{font-size:1.5rem}.service-body{grid-column:2}.service-body>p br{display:none}.service-body ul{margin-top:17px}.about{grid-template-columns:1fr;gap:25px}.about-body{padding-top:0}.name{margin-top:24px}.footer-inner{min-height:130px;padding-block:24px;display:grid;grid-template-columns:1fr auto;gap:22px}.footer small{margin:0;grid-column:1;grid-row:2}.back-top{grid-column:2;grid-row:1/3;font-size:.75rem}}
.shitara{display:block;padding:0;background:#264533;color:#fff}
.shitara img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%;transition:transform .5s ease}
.shitara .round-arrow{border-color:#ffffffa0;background:#163b2bcc}
.shitara:hover .round-arrow{background:#163b2b}
.otogawa{display:block;background:#e7eff2;padding:0;color:#213f4e}
.otogawa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform .5s ease}
.otogawa .round-arrow{border-color:#8fa7b1;background:#ffffffba}
.otogawa:hover .round-arrow{background:#fff}
.works-image-reveal{position:absolute;inset:0;display:block;overflow:hidden}
.works-image-reveal.is-revealing img{transition:none;will-change:transform}
.skills>span{white-space:nowrap}
.profile-identity{display:flex;align-items:center;gap:26px;margin-top:30px}
.profile-photo{width:132px;height:165px;object-fit:cover;border-radius:4px;flex-shrink:0}
.profile-identity .name{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.profile-identity .profile-role{font-size:.875rem;letter-spacing:0;line-height:1.6}
.profile-social{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding-block:4px;color:var(--muted);font-size:.875rem;line-height:1.6;letter-spacing:0;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}
.profile-social:hover{color:var(--green);text-decoration-color:var(--green)}
.profile-social-icon{display:block;width:16px;height:17px;object-fit:contain;flex-shrink:0;filter:brightness(0)}
.contact-section{background:var(--green);color:white}
.contact-inner{padding-block:62px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:36px}
.contact-inner .eyebrow{margin-bottom:15px}
.contact-inner h2{font-size:clamp(1.4rem,2.2vw,1.75rem)}
.contact-description{font-size:.875rem;line-height:1.9;color:#dce9e2;margin-top:13px}
.contact-email{display:flex;align-items:center;gap:23px;font-size:clamp(1rem,2vw,1.5rem);line-height:1.6;border-bottom:1px solid #86aa97;padding-block:14px;min-width:0}
.contact-email span:first-child{overflow-wrap:anywhere}
.contact-email span:last-child{color:var(--accent);flex-shrink:0}
.contact-email:hover{color:var(--accent);border-color:var(--accent)}
@media(max-width:950px){.header-description{display:none}.contact-inner{grid-template-columns:1fr;gap:24px}.contact-email{justify-self:start;font-size:1.5rem}.profile-identity{gap:18px}.profile-photo{width:112px;height:140px}}
@media(max-width:640px){.header nav{flex-basis:100%;margin-left:0;justify-content:space-between;gap:10px}.header{row-gap:20px}.profile-photo{width:120px;height:150px}.profile-identity{gap:24px;margin-top:26px}.contact-inner{padding-block:44px;gap:19px}.contact-email{font-size:clamp(1rem,4.4vw,1.35rem);gap:18px}}
.logo{display:inline-flex;align-items:center;gap:13px;flex-shrink:0;width:max-content}
.logo .brand-wordmark{color:var(--ink)}
.brand-mark{width:48px;height:48px;object-fit:contain;flex-shrink:0}
.footer .brand-mark{width:40px;height:40px}
@media(max-width:640px){.header .brand-mark{width:40px;height:40px}.logo{gap:11px}.footer .brand-mark{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* An oversized brand watermark, cropped at the About section's top right. */
.about-section{position:relative;isolation:isolate;overflow:clip}
.about-section::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-54px;
  right:-68px;
  width:clamp(260px,31vw,440px);
  aspect-ratio:1;
  background:url("assets/logo-mark.png") center / contain no-repeat;
  opacity:.08;
  pointer-events:none;
}
@media(max-width:640px){
  .about-section::before{width:220px;top:-34px;right:-60px}
}

/* A quiet asanoha texture behind the right-hand hero lettering. */
.hero{overflow:clip}
.hero-side{position:relative;isolation:isolate}
.hero-side::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-85px;
  right:-120px;
  width:clamp(400px,48vw,680px);
  height:calc(100% + 170px);
  background:url("assets/asanoha.png") center / 560px auto repeat;
  filter:invert(1);
  opacity:.05;
  -webkit-mask-image:radial-gradient(ellipse at 65% 50%,#000 30%,transparent 75%);
  mask-image:radial-gradient(ellipse at 65% 50%,#000 30%,transparent 75%);
  pointer-events:none;
}
@media(max-width:640px){
  .hero-side::before{
    top:-25px;
    right:-60px;
    width:100%;
    height:calc(100% + 70px);
    background-size:360px auto;
  }
}
