:root{--paper:#fbf9f2;--paper-2:#f4f1e6;--paper-edge:#e7e4d5;--paper-white:#fff;--ink:#2a2723;--ink-2:#4a4641;--ink-3:#786f65;--sub:#9a9388;--rule:#e3e0cf;--rule-2:#cfcbb6;--accent:#6b8e3e;--accent-deep:#4f6f2b;--accent-wash:#e3ecd3;--seal:#5a7a33;--ok:#6a8e3e;--gold:#b8894a;--f-sans:"Zen Kaku Gothic New",system-ui,-apple-system,"Helvetica Neue",sans-serif;--f-serif:"Zen Kaku Gothic New",system-ui,-apple-system,"Helvetica Neue",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--f-num:"Roboto","Zen Kaku Gothic New",system-ui,-apple-system,sans-serif;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;--maxw:1200px;--radius:4px;--radius-lg:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-feature-settings:"palt" 1;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{background-image:radial-gradient(1px 1px at 20% 30%,rgba(110,120,90,.04) 1px,transparent 0),radial-gradient(1px 1px at 60% 70%,rgba(110,120,90,.035) 1px,transparent 0),radial-gradient(1px 1px at 80% 20%,rgba(110,120,90,.03) 1px,transparent 0);background-size:240px 240px,180px 180px,320px 320px;content:"";inset:0;opacity:.35;pointer-events:none;position:fixed;z-index:0}a{color:inherit;text-decoration:none}img{display:block;height:auto;max-width:100%}button{background:none;border:0;color:inherit;cursor:pointer;font-family:inherit;padding:0}input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4{font-weight:600;letter-spacing:.01em;line-height:1.3;margin:0}.hide-mobile{display:flex}.show-mobile{display:none}@media (max-width:860px){.hide-mobile{display:none!important}.show-mobile{display:block!important}}.container{margin:0 auto;max-width:var(--maxw);padding:0 24px;position:relative;z-index:1}@media (max-width:720px){.container{padding:0 20px}}main{position:relative;z-index:1}.eyebrow{align-items:center;color:var(--ink-3);display:inline-flex;font-family:var(--f-mono);font-size:11px;gap:10px;letter-spacing:.14em;text-transform:uppercase}.eyebrow .num{border:1px solid var(--rule-2);border-radius:50%;color:var(--ink-2);display:inline-block;font-family:var(--f-num);font-size:10px;height:22px;line-height:20px;text-align:center;width:22px}.eyebrow .jp{color:var(--ink-2);font-family:var(--f-serif);font-size:12px;letter-spacing:.2em;text-transform:none}.section-title{font-family:var(--f-sans);font-size:40px;font-weight:600;letter-spacing:.02em;line-height:1.25}.section-title .ja-sub{color:var(--ink-3);display:block;font-family:var(--f-serif);font-size:15px;font-weight:400;letter-spacing:.12em;margin-top:6px}@media (max-width:720px){.section-title{font-size:28px}}.rule{background:var(--rule);height:1px;width:100%}.btn{align-items:center;border-radius:999px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:10px;letter-spacing:.04em;padding:14px 22px;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;white-space:nowrap}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);box-shadow:0 10px 22px -12px rgba(107,142,62,.55);transform:translateY(-2px)}.btn-primary .arrow{align-items:center;background:var(--paper);border-radius:50%;color:var(--ink);display:inline-flex;font-size:11px;height:18px;justify-content:center;transition:transform .3s ease;width:18px}.btn-primary:hover .arrow{transform:translateX(3px)}.btn-ghost{background:transparent;border:1px solid var(--ink);color:var(--ink);padding:13px 21px}.btn-ghost:hover{background:var(--ink);color:var(--paper)}.seal{align-items:center;background:hsla(38,68%,93%,.4);border:2px solid var(--seal);border-radius:6px;color:var(--seal);display:inline-flex;flex-direction:column;font-family:var(--f-serif);font-size:14px;font-weight:700;gap:2px;height:54px;justify-content:center;letter-spacing:.06em;line-height:1;padding:6px;text-align:center;transform:rotate(-6deg);width:54px}.seal.sm{font-size:10px;height:40px;width:40px}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}.reveal.in{opacity:1;transform:translateY(0)}.section-divider{align-items:center;color:var(--accent);display:flex;gap:28px;justify-content:center;margin:0 auto;max-width:320px;padding:60px 24px 0}.section-divider__line{background:var(--rule-2);flex:1;height:1px}.section-divider__icon{flex-shrink:0;height:28px;opacity:.8;width:28px}.tick-rule{background-image:linear-gradient(to right,var(--ink-2) 1px,transparent 1px);background-position:bottom;background-repeat:repeat-x;background-size:8px 12px;height:12px}.site-header{-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);background:hsla(0,0%,100%,.55);border-bottom:1px solid transparent;left:0;position:fixed;right:0;top:0;transition:background .3s ease,border-color .3s ease;z-index:100}.site-header.is-scrolled{background:hsla(0,0%,100%,.82);border-bottom-color:var(--rule)}.site-header__inner{align-items:center;display:flex;height:80px;justify-content:space-between;transition:height .3s ease}.site-header.is-scrolled .site-header__inner{height:64px}.site-header__logo{color:var(--ink);display:inline-flex;text-decoration:none}.wc-logo{align-items:center;color:currentColor;display:inline-flex;gap:10px}.wc-logo__text{font-family:var(--f-serif);font-size:18px;font-weight:600;letter-spacing:.02em;line-height:1}.wc-logo__sub{color:var(--ink-3);display:block;font-family:var(--f-mono);font-size:8px;font-weight:400;letter-spacing:.24em;margin-top:2px}.wc-logo--light{color:var(--paper)}.wc-logo--light .wc-logo__sub{color:#a89f8e}.site-header__nav{align-items:center;display:flex;gap:28px}.site-header__nav-link{color:var(--ink-2);font-size:13px;font-weight:500;padding:6px 0;position:relative;text-decoration:none;transition:color .2s ease}.site-header__nav-link:hover{color:var(--accent)}.site-header__nav-jp{color:var(--ink-3);display:block;font-family:var(--f-serif);font-size:10px;letter-spacing:.14em;margin-top:2px}.site-header__cta{align-items:center;display:flex;gap:10px}.site-header__burger{background:transparent;border:0;cursor:pointer;display:none;padding:8px}.site-header__burger span{background:var(--ink);display:block;height:2px;margin-bottom:5px;width:22px}.site-header__burger span:last-child{background:var(--accent);margin-bottom:0;width:14px}.site-header__menu{background:var(--paper);border-top:1px solid var(--rule);padding:16px 20px}.site-header__menu-link{align-items:baseline;border-bottom:1px solid var(--rule);color:var(--ink);display:flex;font-size:16px;gap:12px;padding:14px 0;text-decoration:none}.site-header__menu-num{color:var(--ink-3);font-family:var(--f-num);font-size:11px}.site-header__menu-label{font-weight:500}.site-header__menu-jp{color:var(--ink-3);font-family:var(--f-serif);font-size:13px;margin-left:auto}@media (max-width:860px){.site-header__burger{align-items:flex-end;display:inline-flex;flex-direction:column}}.site-footer{background:var(--ink);color:var(--paper);margin-top:120px;position:relative;z-index:1}.site-footer .tick-rule{background-image:linear-gradient(to right,var(--ink-2) 1px,transparent 1px)}.site-footer__inner{margin:0 auto;max-width:var(--maxw);padding:80px 24px 40px}.site-footer__grid{display:grid;gap:48px;grid-template-columns:1.2fr 1fr 1fr 1fr;margin-bottom:64px}.site-footer__lead{color:#a89f8e;font-size:13px;line-height:1.9;margin:20px 0 0;max-width:300px}.site-footer__signature{align-items:center;display:flex;gap:12px;margin-top:24px}.site-footer__signature-text{line-height:1.5}.site-footer__heading,.site-footer__signature-text{color:#a89f8e;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em}.site-footer__heading{margin-bottom:16px;text-transform:uppercase}.site-footer__link{color:var(--paper);display:block;font-size:14px;padding:6px 0;text-decoration:none}.site-footer__link:hover{color:var(--accent-wash)}.site-footer__email{color:var(--paper);display:block;font-size:15px;font-weight:500;margin-bottom:8px}.site-footer__note{color:#a89f8e;font-size:12px;line-height:1.7;margin-top:16px}.site-footer__bottom{align-items:baseline;border-top:1px solid var(--ink-2);color:#a89f8e;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;justify-content:space-between;padding-top:28px}.site-footer__credit{font-family:var(--f-mono);letter-spacing:.14em}@media (max-width:860px){.footer-grid{gap:32px!important;grid-template-columns:1fr!important}}.sec-head{align-items:end;display:grid;gap:60px;grid-template-columns:1fr 2fr;margin-bottom:70px}.service-grid{border-bottom:1px solid var(--ink);border-top:1px solid var(--ink);display:grid;grid-template-columns:repeat(3,1fr)}.service-grid>article{padding:40px 32px;position:relative;transition:background .3s ease}.service-grid>article:not(:last-child){border-right:1px solid var(--rule)}.service-grid>article:hover{background:rgba(107,142,62,.05)}.blog-grid,.works-grid{display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}.hero{background-color:var(--paper-white);overflow:hidden;padding:140px 0 100px;position:relative}.hero__deco{animation:none;opacity:.55;pointer-events:none;position:absolute}.hero__deco--tr{height:380px;right:-40px;top:60px;width:380px}.hero__deco--bl{bottom:120px;height:200px;left:-20px;opacity:.5;transform:scaleX(-1);width:200px}.hero__blob{background:radial-gradient(circle at 35% 35%,var(--accent-wash),transparent 72%);border-radius:50%;filter:blur(2px);height:260px;pointer-events:none;position:absolute;right:80px;top:200px;transition:transform .4s ease-out;width:260px}.hero__topbar{align-items:center;color:var(--ink-3);display:flex;font-family:var(--f-mono);font-size:11px;gap:16px;letter-spacing:.2em;margin-bottom:40px}.hero__topbar-line{background:var(--rule);flex:1;height:1px}.hero-grid{align-items:flex-start;display:flex;flex-direction:row-reverse;gap:60px}.hero__image{aspect-ratio:3/4;border:1px solid var(--rule-2);border-radius:4px;box-shadow:0 18px 36px -22px rgba(60,40,20,.25);flex-shrink:0;overflow:hidden;position:relative;width:clamp(260px,28vw,360px)}.hero__image img{height:100%;object-fit:cover;width:100%}.hero__text{flex:1;max-width:640px;min-width:0}.hero__title{font-family:var(--f-sans);font-size:clamp(34px,5vw,60px);font-weight:600;letter-spacing:.02em;line-height:1.3;margin:0}.hero__title em{color:var(--accent);font-style:normal}.hero__sub{font-family:var(--f-serif);letter-spacing:.05em;line-height:2;margin:20px 0 0}.hero__body p,.hero__sub{color:var(--ink-2);font-size:clamp(13px,1.4vw,16px)}.hero__body p{line-height:1.95;margin:0}.hero__body p+p{margin-top:22px}.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}.hero__marquee{border-bottom:1px solid var(--rule);border-top:1px solid var(--rule);margin-top:100px;overflow:hidden;padding:16px 0;white-space:nowrap}.hero__marquee-track{animation:marquee 30s linear infinite;color:var(--ink-3);display:inline-flex;font-family:var(--f-mono);font-size:12px;gap:48px;letter-spacing:.14em}.hero__marquee-item{align-items:center;display:inline-flex;gap:12px}.hero__marquee-item:before{background:var(--accent);border-radius:50%;content:"";height:4px;width:4px}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes orb-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.orb-pulse{animation:orb-pulse 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@media (prefers-reduced-motion:reduce){.hero__marquee-track,.orb-pulse{animation:none}}.stats{background:var(--paper-2);border-bottom:1px solid var(--rule);border-top:1px solid var(--rule);padding:100px 0}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr)}.stats-grid>div{padding:24px 32px;text-align:center}.stats-grid>div+div{border-left:1px solid var(--rule-2)}.stats__value-wrap{align-items:flex-end;color:var(--ink);display:flex;font-family:var(--f-num);gap:0;justify-content:center;letter-spacing:-.01em;line-height:1;min-height:clamp(40px,6vw,72px)}.stats__value-wrap.has-unit{gap:10px}.stats__value{font-size:clamp(40px,6vw,72px);font-weight:600;white-space:nowrap}.stats__value--static-sm{font-size:clamp(30px,4.4vw,52px)}.stats__unit{color:var(--ink-2);font-size:clamp(13px,1.6vw,20px);font-weight:500;white-space:nowrap}.stats__short{color:var(--ink-3);font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;margin-top:22px;text-transform:uppercase}.stats__label{color:var(--ink-2);font-family:var(--f-serif);font-size:13px;letter-spacing:.04em;margin-top:6px}.service-card__no{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:24px}.service-card__num{color:var(--ink);font-family:var(--f-num);font-size:48px;font-weight:300;letter-spacing:-.02em;line-height:1}.service-card__img{aspect-ratio:10/7;border:1px solid var(--rule);border-radius:3px;margin-bottom:24px;overflow:hidden}.service-card__img svg{height:100%;width:100%}.service-card__title{font-size:26px;font-weight:600;margin-bottom:4px}.service-card__jp{color:var(--ink-3);font-family:var(--f-serif);font-size:13px;letter-spacing:.1em;margin-bottom:8px}.service-card__price{color:var(--accent);font-family:var(--f-num);font-size:13px;font-weight:600;margin-bottom:16px}.service-card__desc{color:var(--ink-2);font-size:clamp(13px,1.3vw,16px);line-height:1.9;margin:0 0 20px}.service-card__tags{display:flex;flex-wrap:wrap;gap:6px}.service-card__tag{border:1px solid var(--rule-2);border-radius:999px;color:var(--ink-3);font-size:11px;padding:4px 10px}.work-card{color:inherit;display:block;position:relative;text-decoration:none}.work-card__cover{aspect-ratio:4/3;border-radius:6px;overflow:hidden;position:relative;transition:transform .4s ease}.work-card:hover .work-card__cover{transform:translateY(-4px)}.work-card__mock{background:hsla(0,0%,100%,.94);border-radius:4px;display:flex;flex-direction:column;inset:20px;position:absolute}.work-card__mock-bar{align-items:center;border-bottom:1px solid #eee;display:flex;gap:4px;height:18px;padding-left:8px}.work-card__mock-bar span{border-radius:50%;height:5px;width:5px}.work-card__mock-body{display:flex;flex:1;flex-direction:column;gap:4px;padding:10px}.work-card__hover{background:rgba(28,25,23,.88);color:var(--paper);display:flex;flex-direction:column;inset:0;justify-content:flex-end;opacity:0;padding:24px;position:absolute;transition:opacity .3s ease}.work-card:hover .work-card__hover{opacity:1}.work-card__hover-kind{color:var(--accent-wash);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;margin-bottom:8px}.work-card__hover-text{font-size:15px;line-height:1.7}.work-card__hover-cta{align-items:center;display:inline-flex;font-size:12px;gap:8px;margin-top:18px}.work-card__hover-cta,.work-card__tag{font-family:var(--f-mono);letter-spacing:.1em}.work-card__tag{background:rgba(28,25,23,.85);border-radius:999px;color:var(--paper);font-size:10px;padding:4px 9px;position:absolute;right:12px;top:12px}.work-card__meta{align-items:baseline;display:flex;gap:12px;justify-content:space-between;padding:16px 4px 0}.work-card__title{font-size:clamp(17px,1.7vw,22px);font-weight:600;line-height:1.45;margin:0 0 6px}.work-card__jp{color:var(--ink-3);font-size:clamp(13px,1.1vw,15px)}.work-card__year{color:var(--ink-3);flex-shrink:0;font-family:var(--f-num);font-size:clamp(12px,1vw,14px)}.works-listing{padding:40px 0 120px}.works-listing__filters{border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px;padding-bottom:20px}.filter-btn{align-items:center;background:transparent;border:1px solid var(--rule-2);border-radius:999px;color:var(--ink-2);display:flex;font-size:13px;font-weight:500;gap:8px;padding:10px 18px;transition:all .2s ease}.filter-btn.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filter-btn__count{font-family:var(--f-mono);font-size:10px;opacity:.6}.about-grid{align-items:start;display:grid;gap:60px;grid-template-columns:1fr 1.4fr}.about-card{background:var(--paper);border:1px solid var(--rule-2);border-radius:6px;margin-top:40px;padding:24px;position:relative}.about-card__head{align-items:center;display:flex;gap:16px;margin-bottom:16px}.about-card__avatar{align-items:center;background:linear-gradient(135deg,var(--accent-wash),var(--paper-edge));border:1px solid var(--rule-2);border-radius:50%;color:var(--ink-2);display:flex;flex-shrink:0;font-family:var(--f-serif);font-size:24px;height:60px;justify-content:center;overflow:hidden;width:60px}.about-card__avatar img{display:block;height:100%;object-fit:cover;width:100%}.about-card__name{font-size:15px;font-weight:600}.about-card__role{color:var(--ink-3);font-family:var(--f-serif);font-size:12px;margin-top:2px}.about-card__bio{color:var(--ink-2);font-size:13px;line-height:1.9;margin:0}.about-card__link{align-items:center;border:1px solid var(--ink);border-radius:999px;color:var(--ink);display:inline-flex;font-size:13px;font-weight:600;gap:10px;margin-top:20px;padding:12px 18px;text-decoration:none;transition:background .2s ease,color .2s ease}.about-card__link:hover{background:var(--ink);color:var(--paper)}.strength-row{align-items:start;border-top:1px solid var(--rule-2);display:grid;gap:24px;grid-template-columns:80px 1fr;padding:36px 0}.strength-row:last-child{border-bottom:1px solid var(--rule-2)}.strength-row__no{color:var(--accent);font-family:var(--f-serif);font-size:42px;line-height:1}.strength-row__title{font-size:22px;font-weight:600;line-height:1.4;margin:0 0 10px}.strength-row__desc{color:var(--ink-2);font-size:clamp(13px,1.3vw,16px);line-height:1.9;margin:0}@media (max-width:860px){.about-grid{gap:32px!important;grid-template-columns:1fr!important}.about-grid>div:first-child{position:static!important}}.estimate-form{background:var(--paper);border:1px solid var(--rule-2);border-radius:8px;padding:32px 36px}.estimate-row{border-bottom:1px dashed var(--rule-2);padding:20px 0}.estimate-row:last-of-type{border-bottom:none}.estimate-row__head{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:12px}.estimate-row__label{font-size:14px;font-weight:600}.estimate-row__note{color:var(--ink-3);font-family:var(--f-mono);font-size:11px}.estimate-row input[type=range]{accent-color:var(--accent);padding:0;width:100%}.estimate-row__range-marks{color:var(--ink-3);display:flex;font-family:var(--f-mono);font-size:11px;justify-content:space-between;margin-top:4px}.toggle{border:1px solid var(--rule-2);border-radius:999px;display:inline-flex;padding:2px}.toggle button{background:transparent;border-radius:999px;color:var(--ink-2);font-size:13px;font-weight:500;padding:8px 18px;transition:all .2s ease}.toggle button.is-on{background:var(--ink);color:var(--paper)}.est-grid{align-items:start;display:grid;gap:40px;grid-template-columns:1.2fr 1fr}.estimate-result{position:sticky;top:100px}.estimate-result__card{background:var(--ink);border-radius:8px;color:var(--paper);overflow:hidden;padding:36px 32px;position:relative}.estimate-result__card:before{background:radial-gradient(circle,rgba(107,142,62,.22),transparent 70%);border-radius:50%;content:"";height:160px;position:absolute;right:-40px;top:-40px;width:160px}.estimate-result__label{color:hsla(0,0%,100%,.65);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;margin-bottom:12px}.estimate-result__price{align-items:baseline;display:flex;gap:8px;margin-bottom:4px}.estimate-result__price-currency{color:hsla(0,0%,100%,.65);font-size:16px}.estimate-result__price-value{font-family:var(--f-num);font-size:56px;font-weight:600;letter-spacing:-.01em;line-height:1}.estimate-result__price-suffix{color:hsla(0,0%,100%,.65);font-size:12px;margin-left:6px}.estimate-result__monthly{display:none}.estimate-result__monthly.is-on{align-items:baseline;display:flex;gap:6px;margin-bottom:4px}.estimate-result__monthly-currency{color:hsla(0,0%,100%,.65);font-size:14px}.estimate-result__monthly-value{font-family:var(--f-num);font-size:28px;font-weight:600;line-height:1}.estimate-result__monthly-suffix{color:hsla(0,0%,100%,.65);font-size:12px;margin-left:4px}.estimate-result__caption{color:hsla(0,0%,100%,.65);font-size:12px;margin-bottom:24px;margin-top:8px}.estimate-result__items{border-top:1px solid hsla(0,0%,100%,.1);margin-bottom:24px;padding-top:20px}.estimate-item{display:flex;font-size:12px;justify-content:space-between;padding:6px 0}.estimate-item__desc{color:hsla(0,0%,100%,.55);font-size:11px;margin-top:2px}.estimate-item__price{color:var(--paper);font-family:var(--f-num)}.estimate-result__maint-note{background:hsla(0,0%,100%,.06);border-radius:6px;color:hsla(0,0%,100%,.8);display:none;font-size:12px;line-height:1.8;margin-bottom:20px;padding:14px 16px}.estimate-result__maint-note.is-on{display:block}.estimate-result__maint-note strong{color:var(--paper);font-size:13px}.estimate-result__cta{align-items:center;background:var(--accent);border-radius:999px;color:var(--paper);display:flex;font-size:14px;font-weight:600;justify-content:space-between;padding:14px 20px;text-decoration:none;transition:transform .2s ease}.estimate-result__cta:hover{transform:translateY(-2px)}.estimate-result__small{color:hsla(0,0%,100%,.55);font-size:11px;line-height:1.7;margin-top:16px}.faq-grid{align-items:start;display:grid;gap:60px;grid-template-columns:1fr 1.6fr}.faq-item{background:var(--paper);border-bottom:1px solid var(--rule-2)}.faq-item:first-child{border-top:1px solid var(--rule-2)}.faq-item__head{align-items:center;background:transparent;border:0;color:var(--ink);cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:20px;justify-content:space-between;line-height:1.6;padding:26px 28px;text-align:left;width:100%}.faq-item__q{align-items:baseline;display:flex;gap:16px}.faq-item__q-mark{color:var(--accent);font-family:var(--f-serif);font-size:22px;line-height:1}.faq-item__toggle{align-items:center;border:1px solid var(--rule-2);border-radius:50%;color:var(--ink-2);display:flex;flex-shrink:0;font-size:14px;height:28px;justify-content:center;transition:transform .35s cubic-bezier(.22,.61,.36,1);width:28px}.faq-item.is-open .faq-item__toggle{transform:rotate(45deg)}.faq-item__body-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.22,.61,.36,1)}.faq-item.is-open .faq-item__body-wrap{grid-template-rows:1fr}.faq-item__body-inner{overflow:hidden}.faq-item__body{color:var(--ink-2);font-size:clamp(13px,1.3vw,16px);line-height:2;opacity:0;padding:0 28px 28px 64px;transform:translateY(-6px);transition:opacity .3s ease .05s,transform .35s cubic-bezier(.22,.61,.36,1) .05s}.faq-item.is-open .faq-item__body{opacity:1;transform:translateY(0)}.faq-item__body-mark{color:var(--ink-3);font-family:var(--f-num);font-size:18px;margin-right:12px}.faq-item__body strong{color:var(--ink)}.faq-item__list{list-style:none;margin:14px 0;padding:0}.faq-item__list li{display:flex;gap:10px;padding:4px 0}.faq-item__list li:before{color:var(--accent);content:"▪︎";flex-shrink:0}@media (max-width:860px){.faq-grid{gap:40px!important;grid-template-columns:1fr!important}.faq-grid>div:first-child{position:static!important}}.blog-card{background:var(--paper);border:1px solid var(--rule-2);border-radius:6px;color:inherit;display:block;overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.blog-card:hover{box-shadow:0 20px 40px -24px rgba(60,40,20,.2);transform:translateY(-4px)}.blog-card__cover{align-items:center;aspect-ratio:16/10;display:flex;justify-content:center;position:relative}.blog-card__ex{color:rgba(28,25,23,.18);font-family:var(--f-serif);font-size:72px;letter-spacing:-.02em;line-height:1}.blog-card__cat{background:hsla(0,0%,100%,.75);border-radius:999px;color:var(--ink-2);font-family:var(--f-mono);font-size:11px;left:14px;letter-spacing:.1em;padding:4px 10px;position:absolute;top:14px}.blog-card__body{padding:22px 22px 24px}.blog-card__meta{color:var(--ink-3);display:flex;font-family:var(--f-mono);font-size:11px;gap:12px;letter-spacing:.08em;margin-bottom:12px}.blog-card__title{font-size:17px;font-weight:600;line-height:1.55;margin:0 0 10px}.blog-card__more{align-items:center;color:var(--accent);display:flex;font-size:12px;font-weight:600;gap:6px}.cta-grid{align-items:center;display:grid;gap:48px;grid-template-columns:1.4fr 1fr;position:relative}@media (max-width:860px){.cta-grid{gap:32px!important;grid-template-columns:1fr!important}.cta-image{order:-1}.cta-image img{max-height:260px!important}}.page-hero{padding:140px 0 40px}.page-hero__crumb{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;margin-bottom:28px}.page-hero__crumb,.page-hero__crumb a{color:var(--ink-3)}.page-hero__title{font-size:clamp(40px,6vw,72px);font-weight:600;line-height:1.2}.page-hero__lead,.page-hero__title .jp{font-family:var(--f-serif)}.page-hero__lead{color:var(--ink-3);margin-top:12px}.about-hero-grid{align-items:center;display:grid;gap:56px;grid-template-columns:1.4fr 1fr}.about-page-grid{align-items:start;display:grid;gap:60px;grid-template-columns:1fr 2fr;padding:60px 0}.about-page-grid+.about-page-grid{border-top:1px solid var(--rule-2)}.about-profile-grid{align-items:center;border-bottom:1px solid var(--ink);border-top:1px solid var(--ink);display:grid;gap:40px;grid-template-columns:1fr 1.8fr;padding:36px 0}.about-body p{color:var(--ink-2);font-size:clamp(14px,1.35vw,16px);line-height:2.1;margin-bottom:22px}.about-body p:last-child{margin-bottom:0}.about-body strong{background:linear-gradient(transparent 65%,var(--accent-wash) 65%);color:var(--ink);font-weight:600;padding:0 2px}.about-list{border-top:1px dashed var(--rule-2);list-style:none;margin:12px 0 28px;padding:0}.about-list,.about-list li{border-bottom:1px dashed var(--rule-2)}.about-list li{color:var(--ink-2);font-size:clamp(14px,1.35vw,16px);line-height:1.8;padding:14px 0 14px 28px;position:relative}.about-list li:last-child{border-bottom:none}.about-list li:before{color:var(--accent);content:"▪︎";font-size:12px;left:6px;position:absolute;top:14px}.contact-grid{align-items:start;display:grid;gap:60px;grid-template-columns:1fr 2fr}.contact-aside{background:var(--paper-2);padding:28px}.contact-aside,.contact-form{border:1px solid var(--rule-2);border-radius:8px}.contact-form{background:var(--paper);padding:36px 40px}.contact-form .field{margin-bottom:22px}.contact-form .field label{align-items:baseline;color:var(--ink-2);display:flex;font-size:13px;font-weight:500;justify-content:space-between;margin-bottom:8px}.contact-form .req{background:var(--accent);border-radius:999px;color:var(--paper);letter-spacing:.06em}.contact-form .opt,.contact-form .req{font-family:var(--f-mono);font-size:10px;padding:3px 8px}.contact-form .opt{border:1px solid var(--rule-2);border-radius:999px;color:var(--ink-3)}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form select,.contact-form textarea{background:#fff;border:1px solid var(--rule-2);border-radius:4px;color:var(--ink);font-family:inherit;font-size:14px;padding:14px 16px;transition:border .2s ease;width:100%}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--accent);outline:none}.contact-form textarea{line-height:1.7;min-height:140px;resize:vertical}.checkbox-group{display:flex;flex-wrap:wrap;gap:10px}.check-chip{border:1px solid var(--rule-2);border-radius:999px;cursor:pointer;display:inline-block;font-size:13px;padding:10px 16px;transition:all .2s ease}.check-chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--paper)}@media (max-width:860px){.contact-grid{gap:40px!important;grid-template-columns:1fr!important}}.contact-form .wpcf7-form-control-wrap{display:block;width:100%}.contact-form .wpcf7-not-valid-tip{color:#c9382a;display:block;font-size:12px;margin-top:6px}.contact-form .wpcf7-response-output{border:1px solid var(--rule-2)!important;border-radius:6px;font-size:13px;line-height:1.7;margin:24px 0 0!important;padding:14px 18px!important}.contact-form .wpcf7 form.invalid .wpcf7-response-output,.contact-form .wpcf7 form.payment-required .wpcf7-response-output,.contact-form .wpcf7 form.unaccepted .wpcf7-response-output{border-color:#c9382a!important;color:#c9382a}.contact-form .wpcf7 form.sent .wpcf7-response-output{border-color:var(--accent)!important;color:var(--accent-deep)}.contact-form .wpcf7-spinner{margin-left:12px}.contact-form .wpcf7-checkbox,.contact-form .wpcf7-radio{display:flex;flex-wrap:wrap;gap:10px}.contact-form .wpcf7-list-item{margin:0!important}.contact-form .wpcf7-list-item label{align-items:center;border:1px solid var(--rule-2);border-radius:999px;color:var(--ink-2);cursor:pointer;display:inline-flex;font-size:13px;padding:10px 16px;transition:all .2s ease}.contact-form .wpcf7-list-item label:hover{border-color:var(--ink-3)}.contact-form .wpcf7-list-item input[type=checkbox],.contact-form .wpcf7-list-item input[type=radio]{opacity:0;pointer-events:none;position:absolute}.contact-form .wpcf7-list-item:has(input:checked) label{background:var(--ink);border-color:var(--ink);color:var(--paper)}.contact-form .wpcf7-list-item-label{line-height:1}.contact-form .wpcf7-acceptance .wpcf7-list-item label{align-items:center;background:transparent;border:0;color:var(--ink-2);display:inline-flex;font-size:13px;gap:10px;padding:0}.contact-form .wpcf7-acceptance .wpcf7-list-item:has(input:checked) label{background:transparent;color:var(--ink-2)}.contact-form .wpcf7-acceptance .wpcf7-list-item input[type=checkbox]{accent-color:var(--accent);height:16px;opacity:1;pointer-events:auto;position:static;width:16px}.contact-form input.wpcf7-submit{align-items:center;background:var(--ink);border:0;border-radius:999px;color:var(--paper);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:10px;letter-spacing:.04em;padding:14px 28px;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.contact-form input.wpcf7-submit:hover{background:var(--accent);box-shadow:0 10px 22px -12px rgba(107,142,62,.55);transform:translateY(-2px)}.contact-form__row{display:grid;gap:20px;grid-template-columns:1fr 1fr}.contact-form__submit-row{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-top:28px}@media (max-width:720px){.contact-form__row{grid-template-columns:1fr}}.article h2{font-size:28px;font-weight:600;line-height:1.4;margin:56px 0 20px}.article h3{font-size:20px;font-weight:600;line-height:1.5;margin:40px 0 14px}.article p{color:var(--ink-2);font-size:16px;line-height:2;margin:0 0 20px}.article blockquote{border-left:3px solid var(--accent);color:var(--ink);font-family:var(--f-serif);font-size:17px;line-height:1.9;margin:32px 0;padding:8px 24px}.article ul{padding-left:22px}.article ul li{color:var(--ink-2);line-height:1.9;margin-bottom:10px}.article strong{color:var(--accent);font-weight:600}.legal{background:var(--paper-white);border:1px solid var(--rule-2);border-radius:8px;padding:48px 56px}.legal h2{border-top:1px solid var(--rule-2);font-size:clamp(18px,1.6vw,22px);font-weight:600;margin:48px 0 16px;padding-top:24px}.legal h2:first-of-type{border-top:none;margin-top:0;padding-top:0}.legal li,.legal p{color:var(--ink-2);font-size:clamp(13px,1.4vw,16px);line-height:1.95}.legal ol,.legal ul{margin:12px 0;padding-left:1.4em}.legal li{margin-bottom:6px}.legal strong{color:var(--ink);font-weight:600}.law-row{border-bottom:1px solid var(--rule);display:grid;gap:24px;grid-template-columns:220px 1fr;padding:20px 28px}.law-row:last-child{border-bottom:none}.law-row dt{color:var(--ink);font-size:clamp(13px,1.3vw,15px);font-weight:600}.law-row dd{color:var(--ink-2);font-size:clamp(13px,1.4vw,16px);line-height:1.9;margin:0}.law-row dd small{color:var(--ink-3);display:block;font-size:12px;margin-top:4px}@media (max-width:860px){.law-row{gap:4px!important;grid-template-columns:1fr!important;padding:16px 20px!important}}@media (max-width:1024px) and (min-width:861px){.blog-grid,.works-grid{grid-template-columns:repeat(2,1fr)!important}}@media (max-width:860px){.hero-grid{flex-direction:column!important;gap:36px!important}.hero__image{align-self:center!important;max-width:360px!important;width:100%!important}.sec-head{gap:32px!important}.sec-head,.service-grid{grid-template-columns:1fr!important}.service-grid>article{border-bottom:1px solid var(--rule);border-right:none!important}.service-grid>article:last-child{border-bottom:none}.blog-grid,.stats-grid,.works-grid{grid-template-columns:1fr!important}.stats-grid>div+div{border-left:0!important;border-top:1px solid var(--rule-2);padding:36px 20px!important}.about-hero-grid,.est-grid{gap:32px!important;grid-template-columns:1fr!important}.about-profile-grid{gap:28px!important;grid-template-columns:1fr!important}.about-page-grid{gap:32px!important;grid-template-columns:1fr!important}.about-page-grid>div:first-child{position:static!important}.legal{padding:28px 22px!important}.estimate-form{padding:24px 20px!important}.contact-form{padding:24px 22px!important}}.privacy-modal{align-items:center;display:none;inset:0;justify-content:center;padding:10vh 16px;position:fixed;z-index:1000}.privacy-modal[hidden]{display:none}.privacy-modal.is-open{animation:privacy-modal-fade .2s ease-out;display:flex}.privacy-modal__overlay{background:rgba(30,22,12,.55);inset:0;position:absolute}.privacy-modal__panel{background:var(--paper-white,#fff);border-radius:8px;box-shadow:0 30px 70px -20px rgba(20,12,4,.35);display:flex;flex-direction:column;max-height:72vh;max-width:560px;overflow:hidden;position:relative;width:100%}.privacy-modal__header{align-items:center;border-bottom:1px solid var(--rule-2);display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:18px 24px}.privacy-modal__title{color:var(--ink-1);font-size:17px;font-weight:600;letter-spacing:.02em;margin:0}.privacy-modal__close{background:transparent;border:0;border-radius:4px;color:var(--ink-2);cursor:pointer;font-size:26px;height:36px;line-height:1;padding:0;transition:background-color .2s,color .2s;width:36px}.privacy-modal__close:hover{background:var(--rule);color:var(--ink-1)}.privacy-modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.privacy-modal__body{color:var(--ink-2);flex:1;font-size:14px;line-height:1.95;overflow-y:auto}.privacy-modal__body,.privacy-modal__body.legal{background:transparent;border:0;border-radius:0;padding:32px 32px 40px}.privacy-modal__body p,.privacy-modal__body.legal p{font-size:14px;line-height:1.95;margin:0 0 18px}.privacy-modal__body h2,.privacy-modal__body.legal h2{border-top:1px solid var(--rule-2);color:var(--ink-1);font-size:15px;font-weight:600;margin:32px 0 14px;padding-top:24px}.privacy-modal__body h2:first-child,.privacy-modal__body.legal h2:first-of-type{border-top:0;margin-top:24px;padding-top:0}.privacy-modal__body>:first-child{margin-top:0}.privacy-modal__body>:last-child{margin-bottom:0}.privacy-modal__body ul,.privacy-modal__body.legal ul{margin:0 0 18px;padding-left:22px}.privacy-modal__body li,.privacy-modal__body.legal li{font-size:14px;line-height:1.95;list-style:disc;margin-bottom:6px}.privacy-modal__footer{align-items:center;background:var(--paper-white,#fff);border-top:1px solid var(--rule-2);display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:16px 24px}.privacy-modal__agree{align-items:center;color:var(--ink-2);cursor:pointer;display:flex;font-size:13px;gap:10px}.privacy-modal__agree input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:18px;width:18px}.privacy-modal__confirm{flex-shrink:0;font-size:13px!important;padding:10px 22px!important}body.is-privacy-modal-open{overflow:hidden}@keyframes privacy-modal-fade{0%{opacity:0}to{opacity:1}}@media (max-width:600px){.privacy-modal{padding:6vh 10px}.privacy-modal__panel{max-height:84vh}.privacy-modal__header{padding:14px 18px}.privacy-modal__body,.privacy-modal__body.legal{font-size:13px;padding:24px 20px 30px!important}.privacy-modal__body h2,.privacy-modal__body.legal h2{font-size:14px;margin:24px 0 10px;padding-top:18px}.privacy-modal__footer{align-items:stretch;flex-direction:column;gap:12px;padding:14px 18px}.privacy-modal__confirm{width:100%}}@media (prefers-reduced-motion:reduce){.privacy-modal.is-open{animation:none}}
/* stylelint-disable */
.gtranslate_wrapper { display: inline-flex; align-items: center; }
.gtranslate_wrapper a,
.gtranslate_wrapper .gt_selected a,
.gtranslate_wrapper .gt_option { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; color: var(--ink-2); }
.gtranslate_wrapper img { display: inline-block; vertical-align: middle; width: 16px; height: 16px; }
.gtranslate_wrapper .gt_float_switcher,
.gtranslate_wrapper .gt-float-parent { box-shadow: none !important; }
.site-header__menu .gtranslate_wrapper { display: block; border-bottom: 1px solid var(--rule); }
.site-header__menu .gtranslate_wrapper img { width: 18px; height: 18px; }
/* stylelint-enable */