/* ============================================================
   Daiweb top — editorial / cinematic renewal
   Reference traits translated for Daiweb: long horizontal opening,
   dark manifesto, fine grid, customer voices, full-bleed photography.
   Scoped to .home-madoguchi.
   ============================================================ */

.home-madoguchi{
  --dh-black:#111214;
  --dh-black-2:#1b1c1f;
  --dh-paper:#f7f7f6;
  --dh-paper-2:#eeeeec;
  --dh-ink:#1d1d1f;
  --dh-blue:#3159ee;
  --dh-line:rgba(29,29,31,.16);
  --dh-line-dark:rgba(255,255,255,.14);
  --dh-ease:cubic-bezier(.16,1,.3,1);
  background:var(--dh-paper);
  color:var(--dh-ink);
}

/* ============================================================
   DAIWEB editorial loader
   A minimal identity sequence followed by a quiet two-panel opening.
   The only visible rule is the progress line.
   ============================================================ */
html.is-dw-loading,html.is-dw-loading body{overflow:hidden!important;overscroll-behavior:none;}
.dw-loader{--dw-loader-ease:cubic-bezier(.76,0,.24,1);--dw-loader-curtain:#55585c;--dw-loader-accent:#b3b5b8;position:fixed;z-index:10000;inset:0;overflow:hidden;color:#fff;opacity:0;visibility:hidden;pointer-events:none;contain:strict;font-family:var(--sans);}
html.is-dw-loading .dw-loader{opacity:1;visibility:visible;pointer-events:auto;}
.dw-loader__blue{position:absolute;z-index:0;inset:0;background:var(--dw-loader-curtain);will-change:transform;}
.dw-loader__blue::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.055),transparent 43%);}
.dw-loader__panels{position:absolute;z-index:1;inset:0;display:grid;grid-template-columns:1fr 1fr;}
.dw-loader__panels i{display:block;background:#0d0f13;will-change:transform;}
.dw-loader__meta{position:absolute;z-index:3;top:clamp(28px,4.2vw,58px);left:5vw;font-size:clamp(.46rem,.56vw,.56rem);font-weight:500;line-height:1.3;letter-spacing:.2em;color:rgba(255,255,255,.42);opacity:0;transform:translateY(10px);transition:opacity .65s ease .08s,transform .8s var(--dh-ease) .08s;}
.dw-loader__identity{position:absolute;z-index:3;left:5vw;right:5vw;top:48%;transform:translateY(-50%);text-align:center;}
.dw-loader__logo{display:block;width:clamp(136px,12vw,184px);height:auto;margin:0 auto clamp(20px,2.3vw,32px);opacity:0;transform:translateY(10px);transition:opacity .65s ease .2s,transform .85s var(--dh-ease) .2s;}
.dw-loader__identity>p{width:max-content;max-width:100%;margin:0 auto clamp(28px,3.6vw,50px);font-family:var(--sans);font-size:clamp(.67rem,.86vw,.84rem);font-weight:500;line-height:1.6;letter-spacing:.13em;color:rgba(255,255,255,.64);opacity:0;transform:translateY(10px);transition:opacity .65s ease .31s,transform .85s var(--dh-ease) .31s;}
.dw-loader__word{display:flex;align-items:center;justify-content:center;gap:clamp(2px,.7vw,14px);height:clamp(92px,17vw,245px);overflow:hidden;}
.dw-loader__word span{display:flex;align-items:center;justify-content:center;overflow:hidden;}
.dw-loader__word i{display:block;font-family:var(--sans);font-size:clamp(62px,11.4vw,178px);font-style:normal;font-weight:500;line-height:.8;letter-spacing:-.04em;color:#f7f7f4;transform:translate3d(0,114%,0);will-change:transform;transition:transform .94s var(--dh-ease) calc(.28s + var(--dw-i) * .07s);}
.dw-loader__hud{position:absolute;z-index:3;left:50%;bottom:clamp(30px,4.6vw,60px);width:min(900px,90vw);transform:translate(-50%,12px);opacity:0;transition:opacity .65s ease .4s,transform .85s var(--dh-ease) .4s;}
.dw-loader__hud>p{display:flex;align-items:flex-end;justify-content:space-between;margin:0;color:rgba(255,255,255,.52);font-size:clamp(.47rem,.6vw,.6rem);line-height:1;letter-spacing:.2em;}
.dw-loader__hud>p b{font-family:var(--sans);font-size:clamp(1.55rem,2.5vw,2.5rem);font-weight:400;line-height:.72;letter-spacing:.01em;color:#fff;font-variant-numeric:tabular-nums;}
.dw-loader__hud>i{position:relative;display:block;height:1px;margin-top:17px;overflow:hidden;background:rgba(255,255,255,.12);}
.dw-loader__hud>i span{position:absolute;inset:0;background:var(--dw-loader-accent);transform:scaleX(0);transform-origin:left center;will-change:transform;}
.dw-loader__skip{position:absolute;z-index:4;right:5vw;top:clamp(20px,3.3vw,46px);display:flex;align-items:center;gap:9px;padding:10px 12px;font-size:.52rem;letter-spacing:.2em;color:rgba(255,255,255,.5);opacity:0;transform:translateY(8px);transition:color .25s ease,background .25s ease,opacity .65s ease .2s,transform .8s var(--dh-ease) .2s;}
.dw-loader__skip:hover,.dw-loader__skip:focus-visible{color:#fff;background:rgba(255,255,255,.055);outline:1px solid rgba(255,255,255,.45);outline-offset:2px;}
.dw-loader__skip span{font-size:.72rem;}
.dw-loader.is-running .dw-loader__meta,.dw-loader.is-running .dw-loader__logo,.dw-loader.is-running .dw-loader__identity>p,.dw-loader.is-running .dw-loader__skip{opacity:1;transform:none;}
.dw-loader.is-running .dw-loader__hud{opacity:1;transform:translate(-50%,0);}
.dw-loader.is-running .dw-loader__word i{transform:translate3d(0,0,0);}
.dw-loader.is-opening .dw-loader__meta,.dw-loader.is-opening .dw-loader__identity,.dw-loader.is-opening .dw-loader__hud,.dw-loader.is-opening .dw-loader__skip{opacity:0;transition:opacity .2s ease;pointer-events:none;}
.dw-loader.is-opening .dw-loader__panels i:first-child{transform:translate3d(-101%,0,0);transition:transform .82s var(--dw-loader-ease);}
.dw-loader.is-opening .dw-loader__panels i:last-child{transform:translate3d(101%,0,0);transition:transform .82s var(--dw-loader-ease) .04s;}
.dw-loader.is-opening .dw-loader__blue{opacity:0;transition:opacity .46s ease .52s;}
.dw-loader.is-complete{visibility:hidden;pointer-events:none;}

@media (max-width:800px){
  .dw-loader__meta{left:24px;}
  .dw-loader__identity{left:24px;right:24px;}
  .dw-loader__identity{top:45%;}
  .dw-loader__logo{width:clamp(126px,36vw,166px);}
  .dw-loader__identity>p{font-size:clamp(.62rem,2.7vw,.76rem);letter-spacing:.08em;text-align:center;}
  .dw-loader__word{height:clamp(84px,24vw,124px);}
  .dw-loader__word i{font-size:clamp(48px,13.5vw,78px);}
  .dw-loader__hud{bottom:max(28px,env(safe-area-inset-bottom));width:calc(100% - 48px);}
  .dw-loader__skip{right:18px;top:max(18px,env(safe-area-inset-top));}
}

@media (max-width:480px){
  .dw-loader__identity>p{max-width:82vw;}
  .dw-loader__hud>p b{font-size:2rem;}
}

@media (prefers-reduced-motion:reduce){
  .dw-loader *{transition-duration:.01ms!important;transition-delay:0s!important;}
  .dw-loader.is-running .dw-loader__word i{transform:none;}
  .dw-loader.is-opening .dw-loader__panels,.dw-loader.is-opening .dw-loader__blue{opacity:0;transform:none!important;}
}
.home-madoguchi main{overflow:clip;background:var(--dh-paper);}
.home-madoguchi figure{margin:0;}
.home-madoguchi .section{padding:0;}
.dh-skip{position:fixed;z-index:999;left:12px;top:12px;transform:translateY(-150%);padding:10px 16px;background:#fff;color:#111;font-weight:700;}
.dh-skip:focus{transform:none;}

/* Header */
.home-madoguchi .site-header{top:20px;height:68px;width:calc(100% - 88px);max-width:none;padding:0 28px;border-radius:7px;border:1px solid rgba(255,255,255,.12);background:rgba(17,18,20,.62);box-shadow:none;backdrop-filter:blur(16px) saturate(130%);}
.home-madoguchi .site-header.is-scrolled{background:rgba(17,18,20,.82);box-shadow:0 12px 38px -24px rgba(0,0,0,.8);}
.home-madoguchi .site-header .logo-img{width:150px;height:auto;filter:none;}
.home-madoguchi .gnav ul{gap:clamp(14px,1.7vw,28px);}
.home-madoguchi .gnav a{font-size:.75rem;}
.home-madoguchi .gnav a em{display:none;}
.home-madoguchi .hbtn{height:40px;border-radius:3px;padding-inline:24px;font-size:.75rem;}
.home-madoguchi .hbtn--sub{background:rgba(72,100,218,.76);}
.home-madoguchi.dh-header-light .site-header{border-color:rgba(29,29,31,.08);background:rgba(255,255,255,.84);}
.home-madoguchi.dh-header-light .site-header.is-scrolled{background:rgba(255,255,255,.92);box-shadow:0 12px 40px -28px rgba(0,0,0,.45);}
.home-madoguchi.dh-header-light .site-header .logo-img{filter:brightness(0);}
.home-madoguchi.dh-header-light .gnav a{color:var(--dh-ink);}
.home-madoguchi.dh-header-light .gnav a::after{background:var(--dh-ink);}
.home-madoguchi.dh-header-light .nav-toggle span{background:var(--dh-ink);}

/* Shared grain / text */
.dh-noise{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:.18;mix-blend-mode:soft-light;background-image:radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1.4px),radial-gradient(circle at 75% 68%,#fff 0 .7px,transparent 1.2px);background-size:5px 5px,7px 7px;}
.dh-code{position:absolute;z-index:4;margin:0;font-family:var(--sans);font-size:.58rem;line-height:1.55;letter-spacing:.02em;color:rgba(255,255,255,.25);white-space:pre;}
.dh-section-head{width:min(1280px,88vw);margin-inline:auto;}
.dh-section-head>p,.dh-section-head>div>p,.dh-contact-inner>div>p,.dh-local-copy>p{font-family:var(--en);font-size:.74rem;font-weight:500;letter-spacing:.12em;}
.home-madoguchi h1,.home-madoguchi h2,.home-madoguchi h3{text-wrap:balance;line-break:strict;overflow-wrap:break-word;}
.dh-section-head h2{font-size:clamp(2.5rem,5.5vw,5.6rem);font-weight:500;line-height:1.14;letter-spacing:-.035em;}
.dh-section-head--center{text-align:center;}
.dh-section-head--center>div{margin-top:34px;font-size:clamp(.86rem,1.3vw,1rem);line-height:2;color:rgba(29,29,31,.72);}
.dh-section-head--split{display:grid;grid-template-columns:1fr .72fr;gap:8vw;align-items:end;}
.dh-section-head--split>p{padding-bottom:14px;max-width:38rem;font-size:.9rem;line-height:2;color:rgba(29,29,31,.65);}
.dh-center-link{text-align:center;}
.dh-center-link a,.dh-local-copy a{display:inline-flex;align-items:center;gap:28px;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:.8rem;}
.dh-center-link i,.dh-local-copy i{font-style:normal;transition:transform .35s var(--dh-ease);}
.dh-center-link a:hover i,.dh-local-copy a:hover i{transform:translateX(6px);}
.js [data-dh-reveal]{opacity:0;transform:translateY(44px);transition:opacity 1s var(--dh-ease),transform 1s var(--dh-ease);}
.js [data-dh-reveal].is-visible{opacity:1;transform:none;}
@keyframes dhMobileCopyIn{from{opacity:0;filter:blur(7px);transform:translate3d(0,28px,0)}to{opacity:1;filter:none;transform:none}}
@keyframes dhMobileGlow{0%,100%{transform:translate3d(-2%,0,0) scale(1)}50%{transform:translate3d(5%,2%,0) scale(1.08)}}
@keyframes dhMobileMark{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

/* 01 Code-driven horizontal opening — native vertical scroll remains intact. */
@keyframes dhCodeDrift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-42px,0,0)}}
@keyframes dhEditorCursor{0%,42%{opacity:1}43%,100%{opacity:.12}}
@keyframes dhTerminalMeter{0%{transform:scaleX(.34)}55%,100%{transform:scaleX(1)}}
.dh-intro{position:relative;height:320svh;background:#080a0d;color:#fff;}
.dh-intro-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:#080a0d;isolation:isolate;}
.dh-intro-codeworld{position:absolute;z-index:0;inset:0;overflow:hidden;background:radial-gradient(circle at 72% 38%,rgba(81,101,137,.2),transparent 31%),radial-gradient(circle at 16% 82%,rgba(54,67,88,.16),transparent 32%),#080a0d;}
.dh-intro-video{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;object-position:center;opacity:.34;filter:grayscale(1) brightness(.56) contrast(1.18);transform:scale(1.035);}
.dh-intro-codegrid{position:absolute;inset:-10%;opacity:.42;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:clamp(54px,5.8vw,92px) clamp(54px,5.8vw,92px);transform:perspective(900px) rotateX(58deg) translate3d(0,19%,0) scale(1.28);transform-origin:center bottom;-webkit-mask-image:linear-gradient(transparent 2%,#000 34%,#000 78%,transparent 100%);mask-image:linear-gradient(transparent 2%,#000 34%,#000 78%,transparent 100%);}
.dh-code-rails{position:absolute;inset:0;overflow:hidden;opacity:.68;}
.dh-code-rail{position:absolute;left:-20vw;display:flex;width:max-content;will-change:transform;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:clamp(.55rem,.72vw,.72rem);line-height:1;letter-spacing:.045em;white-space:nowrap;color:rgba(222,229,240,.34);}
.dh-code-rail p{flex:none;padding-right:7vw;animation:dhCodeDrift 13s ease-in-out infinite;}
.dh-code-rail span{color:rgba(133,162,223,.8);}.dh-code-rail b{font-weight:500;color:rgba(238,241,246,.7);}
.dh-code-rail--01{top:23%;}.dh-code-rail--02{top:53%;font-size:clamp(.48rem,.62vw,.64rem);opacity:.66;}.dh-code-rail--03{top:80%;opacity:.55;}
.dh-code-scene{position:absolute;inset:0;opacity:0;filter:blur(10px);transform:translate3d(5vw,0,0) scale(.97);transition:opacity .65s ease,filter .9s var(--dh-ease),transform 1.1s var(--dh-ease);will-change:opacity,filter,transform;}
.dh-code-scene.is-active{opacity:1;filter:none;transform:none;}
.dh-editor{position:absolute;right:4.8vw;top:19%;width:min(47vw,730px);height:min(51vh,470px);overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:3px;background:rgba(11,14,19,.68);box-shadow:0 28px 90px rgba(0,0,0,.38);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.dh-editor::before{content:"";position:absolute;inset:42px 0 0 54px;border-left:1px solid rgba(255,255,255,.07);background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:20% 100%;}
.dh-editor__bar{height:43px;display:flex;align-items:center;gap:7px;padding:0 17px;border-bottom:1px solid rgba(255,255,255,.11);font-family:var(--en);font-size:.5rem;letter-spacing:.13em;color:rgba(255,255,255,.48);}
.dh-editor__bar i{width:5px;height:5px;border:1px solid rgba(255,255,255,.38);border-radius:50%;}.dh-editor__bar span{margin-left:10px;color:rgba(255,255,255,.68);}.dh-editor__bar em{margin-left:auto;font-style:normal;color:rgba(141,171,228,.72);}
.dh-editor__code{position:relative;margin:0;padding:clamp(38px,6vh,68px) 34px 28px 82px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:clamp(.72rem,1.05vw,1rem);line-height:2.12;letter-spacing:-.015em;color:rgba(232,235,240,.72);counter-reset:editor-line;}
.dh-editor__code li{padding-left:15px;list-style:decimal-leading-zero;color:rgba(255,255,255,.62);}.dh-editor__code li::marker{font-size:.58rem;color:rgba(255,255,255,.24);}.dh-editor__code span{color:#8ba9df;}.dh-editor__code b{font-weight:500;color:rgba(255,255,255,.9);}
.dh-editor__cursor{position:absolute;left:clamp(267px,20vw,334px);top:clamp(188px,24vh,236px);width:1px;height:1.2em;background:#b7c7e6;animation:dhEditorCursor 1.05s step-end infinite;}
.dh-system-map{position:absolute;left:4.8vw;top:20%;width:min(48vw,740px);height:min(57vh,520px);border:1px solid rgba(255,255,255,.12);background:rgba(10,13,18,.42);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);}
.dh-system-map::before,.dh-system-map::after{content:"";position:absolute;background:rgba(255,255,255,.07);}.dh-system-map::before{left:50%;top:0;bottom:0;width:1px;}.dh-system-map::after{top:50%;left:0;right:0;height:1px;}
.dh-system-map__label{position:absolute;left:20px;top:18px;font-family:var(--en);font-size:.48rem;letter-spacing:.16em;color:rgba(255,255,255,.38);}
.dh-system-map__line{position:absolute;left:24%;top:56%;height:1px;background:linear-gradient(90deg,transparent,rgba(133,162,223,.9),transparent);transform-origin:left;}.dh-system-map__line--01{width:52%;transform:rotate(-22deg);}.dh-system-map__line--02{width:49%;transform:rotate(23deg);}
.dh-system-map__node{position:absolute;width:clamp(106px,10vw,154px);aspect-ratio:1;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(12,16,22,.84);box-shadow:0 0 0 10px rgba(255,255,255,.018);font-family:var(--en);}
.dh-system-map__node small{font-size:.46rem;color:rgba(255,255,255,.4);}.dh-system-map__node b{margin-top:8px;font-size:clamp(1.15rem,2vw,1.8rem);font-weight:500;letter-spacing:.08em;}.dh-system-map__node em{margin-top:5px;font-size:.42rem;font-style:normal;letter-spacing:.15em;color:rgba(139,169,223,.85);}
.dh-system-map__node--01{left:10%;top:43%;}.dh-system-map__node--02{right:9%;top:17%;}.dh-system-map__node--03{right:8%;bottom:7%;}
.dh-terminal{position:absolute;right:5vw;top:26%;width:min(41vw,640px);padding:0 28px 28px;border:1px solid rgba(255,255,255,.15);background:rgba(7,10,14,.72);box-shadow:0 30px 100px rgba(0,0,0,.38);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);font-family:var(--en);}
.dh-terminal__head{height:51px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12);font-size:.49rem;letter-spacing:.16em;color:rgba(255,255,255,.48);}.dh-terminal__head em{font-style:normal;color:rgba(141,174,231,.82);}
.dh-terminal>p{display:grid;grid-template-columns:38px 1fr auto;gap:15px;align-items:center;min-height:70px;border-bottom:1px solid rgba(255,255,255,.08);font-size:.62rem;letter-spacing:.12em;}.dh-terminal>p i{font-style:normal;color:rgba(255,255,255,.28);}.dh-terminal>p span{color:rgba(255,255,255,.75);}.dh-terminal>p b{font-size:.48rem;font-weight:500;color:rgba(142,172,226,.78);}
.dh-terminal__meter{height:2px;margin-top:26px;overflow:hidden;background:rgba(255,255,255,.08);}.dh-terminal__meter span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#6f8fc9,#c5d1e4);transform:scaleX(.34);transform-origin:left;}.dh-code-scene.is-active .dh-terminal__meter span{animation:dhTerminalMeter 1.8s var(--dh-ease) both;}
.dh-intro-veil{position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(5,7,10,.84),rgba(5,7,10,.32) 39%,rgba(5,7,10,.23) 64%,rgba(5,7,10,.72)),linear-gradient(0deg,rgba(5,7,10,.78),transparent 38%,rgba(5,7,10,.15) 70%,rgba(5,7,10,.58));pointer-events:none;}
.dh-intro-veil::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 52% 46%,transparent 0 28%,rgba(5,7,10,.22) 68%,rgba(5,7,10,.52));}
.dh-intro-meta{position:absolute;z-index:9;left:clamp(28px,5vw,78px);right:clamp(28px,5vw,78px);top:clamp(118px,14vh,158px);display:flex;justify-content:space-between;gap:24px;font-family:var(--en);font-size:.58rem;letter-spacing:.19em;color:rgba(255,255,255,.55);}
.dh-intro-track{position:relative;z-index:5;height:100%;width:300vw;display:flex;will-change:transform;}
.dh-intro-panel{flex:0 0 100vw;height:100%;display:flex;padding:130px 7vw 110px;}
.dh-intro-panel--01{align-items:flex-end;justify-content:flex-start;}.dh-intro-panel--02{align-items:center;justify-content:flex-end;}.dh-intro-panel--03{align-items:flex-start;justify-content:flex-start;}
.dh-intro-copy{position:relative;width:min(900px,58vw);text-align:left;text-shadow:0 4px 34px rgba(0,0,0,.72);}
.dh-intro-copy--01{margin:0 0 6vh 3vw;}.dh-intro-copy--02{width:min(780px,52vw);margin:10vh 0 0 0;}.dh-intro-copy--03{width:min(820px,54vw);margin:22vh 0 0 7vw;}
.dh-intro-copy::before{content:"";display:block;width:44px;height:1px;margin:0 0 22px;background:rgba(255,255,255,.62);transform-origin:left;transition:transform .9s var(--dh-ease),opacity .5s ease;}
.dh-intro-copy>p{font-family:var(--en);font-size:clamp(.58rem,.72vw,.7rem);letter-spacing:.22em;color:rgba(255,255,255,.62);}
.dh-intro-copy h2{margin-top:22px;font-weight:700;letter-spacing:.035em;text-wrap:balance;}
.dh-intro-copy h2 span{display:block;width:max-content;max-width:100%;white-space:nowrap;opacity:.12;clip-path:inset(0 100% 0 0);transform:translate3d(0,24px,0);transition:opacity .4s ease,clip-path 1.05s var(--dh-ease),transform 1.05s var(--dh-ease);}
.dh-intro-copy h2 span+span{transition-delay:.1s;}
.dh-intro-copy small{display:block;margin-top:20px;font-size:clamp(.67rem,.86vw,.84rem);font-weight:500;line-height:1.8;letter-spacing:.12em;color:rgba(255,255,255,.68);opacity:0;transform:translate3d(0,18px,0);transition:opacity .7s ease .28s,transform .9s var(--dh-ease) .28s;}
.dh-intro-panel:not(.is-active) .dh-intro-copy::before{opacity:.2;transform:scaleX(.2);}.dh-intro-panel.is-active .dh-intro-copy h2 span{opacity:1;clip-path:inset(0);transform:none;}.dh-intro-panel.is-active .dh-intro-copy small{opacity:1;transform:none;}
.dh-intro-progress{position:absolute;z-index:12;left:50%;bottom:44px;width:min(380px,38vw);height:1px;overflow:hidden;background:rgba(255,255,255,.24);transform:translateX(-50%);}
.dh-intro-progress span{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left center;will-change:transform;}
.dh-intro-index{position:absolute;z-index:12;right:clamp(28px,5vw,78px);bottom:31px;display:flex;align-items:baseline;gap:8px;font-family:var(--en);letter-spacing:.08em;}
.dh-intro-index b{font-size:1.8rem;font-weight:300;line-height:1;}.dh-intro-index span{font-size:.58rem;color:rgba(255,255,255,.48);}
.dh-intro-scroll{position:absolute;z-index:12;left:clamp(28px,5vw,78px);bottom:32px;display:flex;align-items:center;gap:15px;font-family:var(--en);font-size:.58rem;letter-spacing:.16em;}
.dh-intro-scroll i{width:58px;height:1px;background:rgba(255,255,255,.65);}
.dh-intro-credit{position:absolute;z-index:9;right:clamp(28px,5vw,78px);top:clamp(118px,14vh,158px);transform:translateY(24px);font-family:var(--en);font-size:.46rem;letter-spacing:.16em;color:rgba(255,255,255,.3);}

/* 02 Dark manifesto */
.dh-manifesto{position:relative;height:205svh;background:#050506;color:#fff;}
.dh-manifesto-sticky{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;}
.dh-manifesto-photo{position:absolute;inset:0;}
.dh-manifesto-photo::after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,rgba(1,4,8,.72) 0%,rgba(1,4,8,.47) 42%,rgba(1,4,8,.16) 72%,rgba(1,4,8,.3) 100%),linear-gradient(0deg,rgba(1,4,8,.62),transparent 42%,rgba(1,4,8,.24));pointer-events:none;}
.dh-manifesto-photo picture{display:block;width:100%;height:100%;}
.dh-manifesto-photo img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.78) brightness(.78) contrast(1.1);transform:scale(1.025);will-change:transform;}
.dh-manifesto-photo figcaption{position:absolute;z-index:4;right:clamp(24px,5vw,76px);bottom:28px;font-family:var(--en);font-size:.42rem;letter-spacing:.13em;color:rgba(255,255,255,.3);}.dh-manifesto-photo figcaption a{color:inherit;text-decoration:underline;text-underline-offset:3px;}
.dh-spotlight{position:absolute;z-index:2;left:-8%;top:-28%;width:62vw;height:115%;background:linear-gradient(115deg,rgba(255,255,255,.38),rgba(255,255,255,.05) 34%,transparent 58%);clip-path:polygon(12% 0,65% 0,100% 100%,0 100%);filter:blur(24px);mix-blend-mode:screen;opacity:.55;}
.dh-manifesto-mark{position:absolute;z-index:3;right:6vw;top:15%;width:clamp(64px,8vw,120px);opacity:.08;}
.dh-code--manifest{z-index:3;right:5vw;top:24%;}
.dh-manifesto-title,.dh-manifesto-story{position:absolute;z-index:5;left:clamp(26px,10vw,160px);top:50%;width:min(70vw,1040px);transform:translateY(-50%);will-change:opacity,transform,filter;}
.dh-manifesto-title>p{font-family:var(--en);font-size:.67rem;letter-spacing:.17em;color:rgba(255,255,255,.55);}
.dh-manifesto-title h1{margin-top:30px;font-weight:700;letter-spacing:.015em;white-space:nowrap;}
.dh-manifesto-title>span{display:block;margin-top:30px;font-size:.84rem;letter-spacing:.12em;color:rgba(255,255,255,.68);}
.dh-manifesto-story{left:clamp(26px,32vw,470px);width:min(53vw,760px);opacity:0;transform:translateY(calc(-50% + 70px));}
.dh-manifesto-story p{margin-bottom:24px;font-size:clamp(.86rem,1.25vw,1rem);font-weight:600;line-height:2.05;letter-spacing:.07em;color:rgba(255,255,255,.84);}
.dh-manifesto-story p strong{font-weight:700;color:#fff;}
.dh-manifesto-story__lead>strong{display:block;margin-bottom:12px;font-size:clamp(1.15rem,2vw,1.72rem);line-height:1.7;letter-spacing:.06em;}

/* 03 Service */
.dh-service{position:relative;padding:clamp(60px,6vw,96px) 0 clamp(100px,12vw,180px);background:var(--dh-paper);overflow:hidden;isolation:isolate;}
.dh-service::before{content:"";position:absolute;z-index:0;right:-15vw;top:7%;width:55vw;aspect-ratio:1;border:1px solid rgba(49,89,238,.1);border-radius:50%;box-shadow:0 0 0 8vw rgba(49,89,238,.022),0 0 0 16vw rgba(49,89,238,.014);pointer-events:none;}
.dh-flow::before{content:"";position:absolute;right:-12vw;top:8%;width:56vw;height:42vw;border:1px solid rgba(49,89,238,.1);border-radius:50%;transform:rotate(24deg);box-shadow:0 0 0 7vw rgba(49,89,238,.025),0 0 0 14vw rgba(49,89,238,.018);}
.dh-service-head{position:relative;z-index:2;width:min(1420px,90vw);min-height:clamp(390px,34vw,500px);margin:auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr;padding:22px 0 clamp(48px,5vw,76px);border-top:1px solid var(--dh-line);border-bottom:1px solid var(--dh-line);overflow:hidden;}
.dh-service-head::before{content:"";position:absolute;left:0;top:-1px;width:clamp(76px,9vw,136px);height:3px;background:var(--dh-blue);transform-origin:left;transition:transform 1.1s var(--dh-ease);}
.js .dh-service-head:not(.is-visible)::before{transform:scaleX(0);}
.dh-service-head__meta{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:30px;font-family:var(--en);font-size:.55rem;font-weight:500;letter-spacing:.15em;color:rgba(29,29,31,.48);}
.dh-service-head__title{position:relative;z-index:2;grid-column:1/9;align-self:end;padding-top:clamp(40px,4.5vw,72px);}
.dh-service-head__title>p{display:flex;align-items:center;gap:13px;font-family:var(--en);font-size:.6rem;font-weight:500;letter-spacing:.19em;color:rgba(29,29,31,.55);}.dh-service-head__title>p::before{content:"";width:7px;height:7px;background:var(--dh-blue);}
.dh-service-head__title h2{margin-top:clamp(28px,3.5vw,48px);font-size:clamp(3.2rem,6.3vw,6.5rem);font-weight:700;line-height:1.08;letter-spacing:.015em;}
.dh-service-head__title h2 span{display:block;}.dh-service-head__title h2 span:first-child{font-size:.59em;font-weight:600;letter-spacing:.04em;color:rgba(29,29,31,.54);}.dh-service-head__title h2 span:last-child{margin-top:.17em;}
.dh-service-head__copy{position:relative;z-index:2;grid-column:9/13;align-self:end;padding:0 2vw 4px 0;}
.dh-service-head__copy>p{font-size:clamp(.78rem,1.02vw,.92rem);font-weight:500;line-height:2.05;letter-spacing:.055em;color:rgba(29,29,31,.68);}
.dh-service-head__copy>div{display:flex;align-items:center;gap:10px;margin-top:32px;font-family:var(--en);font-size:.48rem;letter-spacing:.13em;color:rgba(29,29,31,.44);}.dh-service-head__copy i{display:block;flex:1;height:1px;background:rgba(29,29,31,.2);}
.dh-service-head__ghost{position:absolute;z-index:0;right:-.05em;bottom:-.24em;font-family:var(--en);font-size:clamp(7rem,14vw,13rem);font-weight:600;line-height:1;letter-spacing:-.055em;color:rgba(29,29,31,.034);pointer-events:none;}
.dh-service-grid{position:relative;z-index:2;width:min(1420px,90vw);margin:clamp(72px,8vw,118px) auto 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--dh-line);border-left:1px solid var(--dh-line);}
.dh-service-cell{position:relative;min-height:clamp(370px,30vw,470px);display:flex;align-items:flex-end;justify-content:flex-start;overflow:hidden;border-right:1px solid var(--dh-line);border-bottom:1px solid var(--dh-line);background:rgba(247,247,246,.78);}
.dh-service-cell::before{content:"↗";position:absolute;z-index:3;right:clamp(22px,2.6vw,40px);top:clamp(22px,2.6vw,40px);width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(29,29,31,.25);border-radius:50%;font-family:var(--en);font-size:.9rem;transition:color .45s ease,border-color .45s ease,background .45s ease,transform .6s var(--dh-ease);}
.dh-service-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.46);opacity:0;transform:scale(1.07);transition:opacity .55s ease,transform 1.05s var(--dh-ease),filter .55s ease;}
.dh-service-cell::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,9,11,.65),transparent 65%);opacity:0;transition:opacity .55s ease;}
.dh-service-cell>span{position:relative;z-index:2;width:100%;text-align:left;padding:clamp(34px,4.4vw,66px);transition:transform .7s var(--dh-ease);}
.dh-service-cell small{display:flex;align-items:center;gap:14px;font-family:var(--en);font-size:.63rem;letter-spacing:.14em;color:rgba(29,29,31,.52);}.dh-service-cell small::after{content:"";width:48px;height:1px;background:currentColor;opacity:.55;}
.dh-service-cell strong{display:block;margin-top:20px;font-size:clamp(1.6rem,2.65vw,2.55rem);font-weight:600;letter-spacing:.015em;}
.dh-service-cell em{display:block;margin-top:18px;font-size:.74rem;font-style:normal;letter-spacing:.055em;color:rgba(29,29,31,.58);}
.dh-service-cell:hover,.dh-service-cell:focus-visible{color:#fff;}
.dh-service-cell:hover img,.dh-service-cell:focus-visible img{opacity:1;transform:scale(1);filter:grayscale(.35) brightness(.55);}
.dh-service-cell:hover::after,.dh-service-cell:focus-visible::after{opacity:1;}
.dh-service-cell:hover::before,.dh-service-cell:focus-visible::before{color:var(--dh-ink);border-color:#fff;background:#fff;transform:translate3d(4px,-4px,0);}
.dh-service-cell:hover>span,.dh-service-cell:focus-visible>span{transform:translate3d(0,-5px,0);}
.dh-service-cell:hover small,.dh-service-cell:hover em,.dh-service-cell:focus-visible small,.dh-service-cell:focus-visible em{color:rgba(255,255,255,.72);}
.dh-service .dh-center-link{margin-top:72px;}

/* 04 Customer voices */
.dh-voice{position:relative;padding-top:clamp(100px,15vw,210px);background:#15171b;color:#fff;scroll-margin-top:96px;}
.dh-voice-head{width:min(1120px,86vw);margin:0 auto;padding-bottom:clamp(80px,10vw,140px);display:grid;grid-template-columns:.72fr 1.28fr;column-gap:clamp(50px,9vw,150px);}
.dh-voice-head>p:first-child{padding-top:12px;font-family:var(--en);font-size:.66rem;font-weight:500;letter-spacing:.16em;color:#8fa7ff;}
.dh-voice-head h2{font-size:clamp(2.2rem,5.6vw,5.2rem);font-weight:500;line-height:1.36;letter-spacing:.03em;}
.dh-voice-head>p:last-child{grid-column:2;margin-top:36px;max-width:620px;color:rgba(255,255,255,.56);font-size:.8rem;line-height:2.05;}
.dh-voice-layout{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:start;}
.dh-voice-rail{position:relative;height:100%;border-right:1px solid rgba(255,255,255,.11);}
.dh-voice-rail>div{position:sticky;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;padding-block:28px;}
.dh-voice-rail p{margin-bottom:20px;writing-mode:vertical-rl;font-family:var(--en);font-size:.52rem;letter-spacing:.2em;color:rgba(255,255,255,.38);}
.dh-voice-rail a{display:flex;align-items:center;gap:8px;min-height:36px;color:rgba(255,255,255,.32);font-family:var(--en);font-size:.58rem;transition:color .35s ease;}
.dh-voice-rail i{display:block;width:13px;height:1px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .45s var(--dh-ease);}
.dh-voice-rail a.is-active{color:#fff;}
.dh-voice-rail a.is-active i{transform:scaleX(1);}
.dh-voice-stack{position:relative;isolation:isolate;padding-bottom:0;}
.dh-voice-stack::after{content:"";display:block;height:clamp(96px,14svh,160px);pointer-events:none;}
.dh-voice-stage{position:sticky;top:clamp(82px,8vh,106px);height:calc(100svh - clamp(106px,11vh,142px));margin-bottom:48svh;scroll-margin-top:90px;}
.dh-voice-stage:last-child{margin-bottom:0;}
.dh-voice-stage:nth-child(1){z-index:1;}.dh-voice-stage:nth-child(2){z-index:2;}.dh-voice-stage:nth-child(3){z-index:3;}
.dh-voice-panel{position:relative;height:100%;margin-inline:clamp(14px,2.2vw,34px);display:grid;grid-template-columns:1.02fr .98fr;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:#111318;color:#fff;box-shadow:0 42px 100px rgba(0,0,0,.34);transform-origin:50% 8%;will-change:transform,filter;}
.dh-voice-photo{position:relative;min-width:0;overflow:hidden;background:#202226;}
.dh-voice-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,6,8,.46),transparent 48%);}
.dh-voice-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.13) contrast(1.06);transform:translate3d(0,var(--dh-voice-image-y,0),0) scale(1.045);will-change:transform;}
.dh-voice-photo figcaption{position:absolute;z-index:2;left:22px;bottom:18px;font-family:var(--en);font-size:.55rem;letter-spacing:.18em;color:rgba(255,255,255,.72);}
.dh-voice-photo--subject-top img{object-position:50% 0;transform:none;will-change:auto;}
.dh-voice-photo--contain{background:#e9eae7;}
.dh-voice-photo--contain::after{display:none;}
.dh-voice-photo--contain img{object-fit:contain;padding:clamp(38px,5vw,86px);filter:none;transform:none;}
.dh-voice-photo--contain figcaption{color:rgba(17,20,24,.52);}
.dh-voice-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,5vw,82px);}
.dh-voice-meta{display:flex;align-items:flex-end;gap:10px;font-family:var(--en);line-height:1;}
.dh-voice-meta small{padding-bottom:5px;font-size:.55rem;letter-spacing:.2em;color:rgba(255,255,255,.42);}
.dh-voice-meta strong{font-size:clamp(2rem,4vw,3.3rem);font-weight:400;}
.dh-voice-meta em{margin-left:auto;padding-bottom:6px;font-size:.62rem;font-style:normal;letter-spacing:.12em;color:#91a7ff;}
.dh-voice-body blockquote{margin:clamp(22px,3vw,40px) 0 0;}
.dh-voice-body blockquote>small{display:block;margin-bottom:13px;font-size:.63rem;letter-spacing:.08em;color:#91a7ff;}
.dh-voice-body blockquote h3{font-size:clamp(1.45rem,2.8vw,2.55rem);font-weight:500;line-height:1.65;letter-spacing:.035em;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.22em;}
.dh-voice-body blockquote>p{margin-top:clamp(15px,2vw,24px);font-size:clamp(.79rem,1vw,.93rem);font-weight:400;line-height:2.15;letter-spacing:.02em;color:rgba(255,255,255,.72);}
.dh-voice-body footer{display:flex;flex-direction:column;gap:7px;margin-top:clamp(22px,3vw,38px);padding-top:18px;border-top:1px solid currentColor;}
.dh-voice-body footer strong{font-size:.84rem;font-weight:600;}.dh-voice-body footer span{font-size:.7rem;opacity:.58;}
.dh-voice-status{align-self:flex-start;margin-top:15px;padding:5px 9px;border:1px solid currentColor;font-size:.6rem;font-weight:500;letter-spacing:.05em;opacity:.55;}
.dh-voice-site-link{align-self:flex-start;display:inline-flex;align-items:center;gap:12px;margin-top:14px;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:.7rem;font-weight:600;letter-spacing:.04em;transition:color .3s ease,border-color .3s ease;}
.dh-voice-site-link i{font-style:normal;transition:transform .35s var(--dh-ease);}
.dh-voice-site-link:hover{color:var(--dh-blue);border-color:var(--dh-blue);}
.dh-voice-site-link:hover i{transform:translate(3px,-3px);}
.dh-voice-panel--reverse .dh-voice-photo{order:2;}.dh-voice-panel--reverse .dh-voice-body{order:1;}
.dh-voice-panel--paper{border-color:rgba(17,20,24,.16);background:#efefed;color:#15171b;}
.dh-voice-panel--paper .dh-voice-meta small,.dh-voice-panel--paper .dh-voice-body blockquote>p{color:rgba(17,20,24,.62);}
.dh-voice-panel--paper .dh-voice-meta em,.dh-voice-panel--paper .dh-voice-body blockquote>small{color:var(--dh-blue);}
.dh-voice-panel--blue{background:#2449cf;}.dh-voice-panel--blue .dh-voice-photo::after{background:linear-gradient(0deg,rgba(17,41,139,.5),transparent 54%);}
.dh-voice-note{width:min(1280px,88vw);margin:0 auto;padding:12px 0 30px;font-size:.68rem;line-height:1.8;color:rgba(255,255,255,.44);}

/* 06 Estimate simulator */
.dh-estimate{position:relative;padding:clamp(110px,14vw,210px) 0;background:#e9eae8;}
.dh-estimate::before{content:"";position:absolute;left:-18vw;top:12%;width:52vw;aspect-ratio:1;border:1px solid rgba(49,89,238,.11);border-radius:50%;box-shadow:0 0 0 7vw rgba(49,89,238,.025),0 0 0 14vw rgba(49,89,238,.018);pointer-events:none;}
.dh-estimate-layout{position:relative;z-index:1;width:min(1280px,88vw);margin:clamp(72px,9vw,120px) auto 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,410px);gap:clamp(28px,4vw,64px);align-items:start;}
.dh-estimate-form{min-width:0;}
.dh-est-step{margin:0 0 66px;padding:0;border:0;min-width:0;}
.dh-est-step legend{width:100%;margin-bottom:24px;padding:0;font-size:clamp(1.25rem,2vw,1.8rem);font-weight:600;line-height:1.5;}
.dh-est-step legend span{display:block;margin-bottom:8px;font-family:var(--en);font-size:.65rem;font-weight:500;letter-spacing:.13em;color:var(--dh-blue);}
.dh-est-step__lead{margin:-6px 0 28px;padding:18px 20px;border-left:2px solid var(--dh-blue);background:rgba(255,255,255,.52);font-size:.78rem;line-height:1.9;color:rgba(29,29,31,.68);}
.dh-est-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.dh-est-categories label,.dh-est-plan,.dh-est-options label{position:relative;display:block;cursor:pointer;}
.dh-est-categories input,.dh-est-plan>input,.dh-est-options input{position:absolute;opacity:0;pointer-events:none;}
.dh-est-categories label>span{min-height:150px;display:flex;flex-direction:column;padding:22px;border:1px solid var(--dh-line);background:rgba(255,255,255,.62);transition:border-color .25s ease,background .25s ease,transform .25s var(--dh-ease);}
.dh-est-categories b{font-family:var(--en);font-size:.78rem;font-weight:500;color:var(--dh-blue);}
.dh-est-categories strong{margin-top:auto;font-size:.94rem;font-weight:600;}.dh-est-categories small{margin-top:8px;font-size:.65rem;line-height:1.5;color:rgba(29,29,31,.58);}
.dh-est-categories input:checked+span{border-color:var(--dh-blue);background:#fff;box-shadow:inset 0 -3px 0 var(--dh-blue);transform:translateY(-3px);}
.dh-est-categories input:focus-visible+span,.dh-est-plan>input:focus-visible+.dh-est-plan__body,.dh-est-options input:focus-visible+span{outline:3px solid rgba(49,89,238,.3);outline-offset:3px;}
.dh-est-panel[hidden]{display:none;}
.dh-est-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.dh-est-plan__body{position:relative;height:100%;min-height:360px;display:flex;flex-direction:column;padding:25px;border:1px solid var(--dh-line);background:rgba(255,255,255,.62);transition:border-color .25s ease,background .25s ease,transform .25s var(--dh-ease),box-shadow .25s ease;}
.dh-est-plan__body>small{font-family:var(--en);font-size:.63rem;letter-spacing:.1em;color:rgba(29,29,31,.48);}
.dh-est-plan__catch{display:block;margin-top:13px;font-size:.78rem;font-weight:700;line-height:1.65;color:#1d1d1f;}
.dh-est-plan__popular{position:absolute;right:14px;top:12px;padding:5px 8px;background:var(--dh-blue);color:#fff;font-size:.58rem;font-weight:700;letter-spacing:.05em;}
.dh-est-plan__body>strong{margin-top:14px;font-size:1.1rem;font-weight:600;line-height:1.45;}
.dh-est-plan__body>em{margin-top:12px;font-family:var(--en);font-size:1.15rem;font-style:normal;font-weight:500;color:var(--dh-blue);}
.dh-est-plan__body>b{align-self:flex-start;margin-top:16px;padding:6px 9px;background:#dfe5ff;color:#2445bd;font-size:.65rem;font-weight:600;line-height:1.5;}
.dh-est-plan__body>p{margin-top:auto;padding-top:22px;font-size:.72rem;line-height:1.8;color:rgba(29,29,31,.62);}
.dh-est-plan__body>p>strong,.dh-est-plan__body>p>span{display:block;}
.dh-est-plan__body>p>strong{margin-bottom:8px;color:#29292d;font-weight:600;}
.dh-est-plan>input:checked+.dh-est-plan__body{border-color:var(--dh-blue);background:#fff;box-shadow:0 18px 50px -38px rgba(21,45,139,.68);transform:translateY(-3px);}
.dh-est-plan>input:checked+.dh-est-plan__body::after{content:"SELECTED";position:absolute;right:14px;top:13px;font-family:var(--en);font-size:.54rem;letter-spacing:.1em;color:var(--dh-blue);}
.dh-est-plan--featured>input:checked+.dh-est-plan__body::after{top:46px;}
.dh-est-plan--featured .dh-est-plan__body{border-color:rgba(49,89,238,.5);}
.dh-est-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
.dh-est-options__title{grid-column:1/-1;margin:12px 0 2px;font-size:.7rem;font-weight:600;letter-spacing:.08em;color:rgba(29,29,31,.5);}
.dh-est-options label>span{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px 15px 46px;border:1px solid var(--dh-line);background:rgba(255,255,255,.56);}
.dh-est-options label>span::before{content:"";position:absolute;left:17px;top:50%;width:15px;height:15px;border:1px solid rgba(29,29,31,.35);transform:translateY(-50%);}
.dh-est-options input[type="radio"]+span::before{border-radius:50%;}
.dh-est-options label>span::after{content:"";position:absolute;left:21px;top:50%;width:7px;height:7px;background:var(--dh-blue);transform:translateY(-50%) scale(0);transition:transform .2s var(--dh-ease);}
.dh-est-options input[type="radio"]+span::after{border-radius:50%;}
.dh-est-options input:checked+span{border-color:rgba(49,89,238,.72);background:#fff;}.dh-est-options input:checked+span::after{transform:translateY(-50%) scale(1);}
.dh-est-options strong{font-size:.75rem;font-weight:600;line-height:1.5;}.dh-est-options small{font-family:var(--en);font-size:.72rem;color:var(--dh-blue);text-align:right;}
.dh-est-value{margin:-14px 0 66px;padding:clamp(28px,4vw,48px);background:#142037;color:#fff;}
.dh-est-value>div{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;}
.dh-est-value>div small{font-family:var(--en);font-size:.62rem;letter-spacing:.13em;color:#91a7ff;}
.dh-est-value h3{font-size:clamp(1.35rem,2.3vw,2rem);font-weight:500;line-height:1.6;}
.dh-est-value ol{margin-top:38px;border-top:1px solid rgba(255,255,255,.16);}
.dh-est-value li{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.16);}
.dh-est-value li>b{font-family:var(--en);font-size:.76rem;font-weight:500;color:#91a7ff;}
.dh-est-value li span{font-size:.72rem;line-height:1.85;color:rgba(255,255,255,.68);}.dh-est-value li strong{display:block;margin-bottom:5px;font-size:.82rem;color:#fff;}
.dh-est-value>p{margin-top:20px;font-size:.68rem;line-height:1.8;color:rgba(255,255,255,.55);}
.dh-est-result{position:sticky;top:100px;max-height:calc(100vh - 204px);max-height:calc(100dvh - 204px);overflow-x:hidden;overflow-y:auto;padding:32px 30px 40px;background:#15171b;color:#fff;box-shadow:0 30px 80px -42px rgba(0,0,0,.7);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.32) transparent;scrollbar-gutter:stable;scroll-padding-block:24px 40px;-webkit-overflow-scrolling:touch;touch-action:pan-y;}
.dh-est-result:focus-visible{outline:3px solid rgba(49,89,238,.42);outline-offset:4px;}
.dh-est-result::-webkit-scrollbar{width:7px;}
.dh-est-result::-webkit-scrollbar-track{background:transparent;}
.dh-est-result::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(255,255,255,.28);}
.dh-est-result>p:first-child{font-family:var(--en);font-size:.63rem;letter-spacing:.13em;color:#91a7ff;}.dh-est-result>h3{margin-top:8px;font-size:1.45rem;font-weight:500;}
.dh-est-result dl{margin-top:26px;border-top:1px solid rgba(255,255,255,.16);}
.dh-est-result dl>div{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.16);}
.dh-est-result dt{font-size:.7rem;color:rgba(255,255,255,.58);}.dh-est-result dt small{margin-left:5px;font-size:.56rem;}
.dh-est-result dd{display:flex;align-items:baseline;flex-wrap:wrap;margin-top:7px;}.dh-est-result dd>span{font-family:var(--en);font-size:1.25rem;}.dh-est-result dd>strong{font-family:var(--en);font-size:2.3rem;font-weight:500;letter-spacing:-.03em;}.dh-est-result dd>em{font-size:.68rem;font-style:normal;margin-left:4px;}.dh-est-result dd>small{width:100%;margin-top:3px;font-size:.6rem;color:rgba(255,255,255,.5);}
.dh-est-result__section{margin-top:24px;}.dh-est-result__section h4{font-size:.68rem;font-weight:600;letter-spacing:.06em;color:#91a7ff;}
.dh-est-result__section ul{margin-top:10px;display:grid;gap:6px;}.dh-est-result__section li{position:relative;padding-left:14px;font-size:.66rem;line-height:1.55;color:rgba(255,255,255,.68);}.dh-est-result__section li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;background:#91a7ff;border-radius:50%;}.dh-est-result__section li.er-empty{padding-left:0;opacity:.7;}.dh-est-result__section li.er-empty::before{display:none;}
.dh-est-result__note{margin-top:24px!important;font-family:inherit!important;font-size:.62rem!important;line-height:1.75;letter-spacing:0!important;color:rgba(255,255,255,.48)!important;}
.dh-est-result__cta{margin-top:22px;display:flex;justify-content:space-between;align-items:center;padding:17px 18px;background:var(--dh-blue);font-size:.78rem;font-weight:600;transition:background .25s ease,opacity .25s ease;}.dh-est-result__cta i{font-style:normal;}.dh-est-result__cta:hover{background:#4569f1;}.dh-est-result__cta.is-disabled{pointer-events:none;opacity:.42;}
.dh-est-mobile-summary{display:none;}
.dh-est-noscript{width:min(1280px,88vw);margin:30px auto 0;padding:16px;background:#fff3cd;font-size:.75rem;line-height:1.8;}
html:not(.js) .dh-est-panel[hidden]{display:block!important;}

/* Horizontal sliced-image reveal */
[data-dh-slice] .dh-slice-base{width:100%;height:100%;object-fit:cover;filter:grayscale(.62) contrast(1.08) brightness(.66);transition:opacity .1s linear;}
.dh-slice{position:absolute;left:0;width:100%;height:16.6667%;overflow:hidden;opacity:0;transform:translate3d(calc(var(--dh-direction) * 7vw),35%,0);transition:opacity .45s ease,transform 1.15s var(--dh-ease);transition-delay:calc(var(--dh-i) * 70ms);}
.dh-slice img{position:absolute;left:0;width:100%;height:600%;max-width:none;object-fit:cover;filter:grayscale(.62) contrast(1.08) brightness(.66);transform:scale(1.025);transition:transform 1.45s var(--dh-ease);}
.has-dh-slices.is-visible .dh-slice{opacity:1;transform:none;}.has-dh-slices.is-visible .dh-slice img{transform:scale(1);}.has-dh-slices.is-visible .dh-slice-base{opacity:0;}

/* 07 Company */
.dh-company{padding:clamp(110px,14vw,200px) 0 0;background:#111318;color:#fff;}
.dh-company .dh-section-head>p{color:#91a7ff;}
.dh-company .dh-section-head h2{color:#fff;}
.dh-company-grid{margin-top:clamp(70px,9vw,120px);display:grid;grid-template-columns:repeat(3,1fr);}
.dh-company-grid a{position:relative;height:48vw;max-height:720px;min-height:480px;overflow:hidden;border-right:1px solid rgba(255,255,255,.25);color:#fff;}
.dh-company-photo{position:absolute;z-index:0;inset:0;margin:0;overflow:hidden;background:#0b0c10;}
.dh-company-photo .dh-slice-base,.dh-company-photo .dh-slice-image{filter:grayscale(.2) contrast(1.05) brightness(.63);transition:transform 1.45s var(--dh-ease),filter .6s ease,opacity .1s linear;}
.dh-company-grid a::after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,rgba(5,6,8,.68),rgba(5,6,8,.08) 60%);}
.dh-company-grid a>span{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.dh-company-grid small{font-family:var(--en);font-size:.7rem;letter-spacing:.13em;}
.dh-company-grid strong{margin-top:14px;font-size:clamp(1.7rem,3.3vw,3.1rem);font-weight:400;}
.dh-company-grid i{margin-top:24px;font-style:normal;}
.dh-company-grid a:hover .dh-company-photo img{transform:scale(1.035);filter:grayscale(0) brightness(.72);}

/* 08 Flow */
.dh-flow{position:relative;padding:clamp(110px,14vw,210px) 0;background:var(--dh-paper);}
.dh-flow{background:#efefed;overflow:hidden;}
.dh-flow-list{position:relative;z-index:2;width:min(1280px,88vw);margin:80px auto 0;border-top:1px solid var(--dh-line);}
.dh-flow-list li{display:grid;grid-template-columns:100px .65fr 1fr;gap:36px;align-items:center;padding:30px 8px;border-bottom:1px solid var(--dh-line);}
.dh-flow-list b{font-family:var(--en);font-size:1.35rem;font-weight:400;color:var(--dh-blue);}
.dh-flow-list strong{font-size:1rem;font-weight:500;}
.dh-flow-list span{font-size:.82rem;color:rgba(29,29,31,.62);}
/* 09 Local full image + marquee */
.dh-local{position:relative;height:115svh;min-height:800px;overflow:hidden;background:#222;color:#fff;}
.dh-local>figure{position:absolute;inset:0;}
.dh-local>figure::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,8,.77),rgba(5,6,8,.13) 72%),linear-gradient(0deg,rgba(5,6,8,.62),transparent 52%);}
.dh-local>figure img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(.76);}
.dh-local-copy{position:absolute;z-index:3;left:clamp(24px,8vw,125px);top:18%;}
.dh-local-copy h2{margin-top:25px;font-size:clamp(2rem,4.2vw,4.2rem);font-weight:700;line-height:1.3;letter-spacing:.025em;}
.dh-local-copy .dh-local-subcopy{max-width:46rem;margin-top:22px;font-family:var(--sans);font-size:clamp(.9rem,1.15vw,1.05rem);font-weight:500;line-height:1.9;letter-spacing:.015em;color:rgba(255,255,255,.78);}
.dh-local-copy a{margin-top:34px;}
.dh-marquee{position:absolute;z-index:4;left:0;right:0;bottom:0;height:210px;display:flex;align-items:center;overflow:hidden;background:rgba(247,247,246,.96);color:var(--dh-ink);}
.dh-marquee>div{display:flex;align-items:center;gap:clamp(48px,5vw,96px);min-width:max-content;}
.dh-marquee.is-dh-active>div,html:not(.js) .dh-marquee>div{animation:dhMarquee 34s linear infinite;}
.dh-marquee span{font-family:var(--en);font-size:clamp(4rem,8vw,8rem);font-weight:400;line-height:1;white-space:nowrap;}
@keyframes dhMarquee{to{transform:translateX(-50%);}}

/* 10 Contact / Footer */
.dh-contact{position:relative;overflow:hidden;background:linear-gradient(120deg,#3659e7,#5273f7 52%,#7892ff);color:#fff;}
.dh-contact::before{content:"";position:absolute;right:-12%;top:-44%;width:65vw;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.3),transparent 62%);}
.dh-contact-inner{position:relative;z-index:10;width:min(1280px,88vw);min-height:620px;margin:auto;display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:center;}
.dh-contact-inner h2{margin-top:28px;font-size:clamp(2.2rem,3.8vw,4rem);font-weight:700;line-height:1.28;letter-spacing:.02em;}
.dh-contact-inner>div>span{display:block;margin-top:26px;font-size:.86rem;color:rgba(255,255,255,.78);}
.dh-contact-actions>a{display:flex;justify-content:space-between;align-items:center;padding:24px 2px;border-block:1px solid rgba(255,255,255,.38);font-size:1rem;}
.dh-contact-actions>a i{font-style:normal;}
.dh-contact-actions>p{margin-top:34px;font-size:.78rem;color:rgba(255,255,255,.72);}
.dh-contact-actions>p a{font-family:var(--en);font-size:2rem;color:#fff;}
.dh-fixed-ctas{position:fixed;z-index:145;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;width:465px;}
.dh-fixed-ctas a{position:relative;min-height:84px;padding:18px 48px 15px 24px;background:rgba(255,255,255,.95);border:1px solid rgba(29,29,31,.08);color:var(--dh-ink);backdrop-filter:blur(10px);}
.dh-fixed-ctas a:last-child{border-left:0;}
.dh-fixed-ctas strong{display:block;font-size:.88rem;}.dh-fixed-ctas small{display:block;margin-top:5px;font-size:.7rem;color:rgba(29,29,31,.64);}
.dh-fixed-ctas i{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-style:normal;}
.home-madoguchi .fixed-cta{display:none;}

@media (max-width:1100px){
  .home-madoguchi .site-header{width:calc(100% - 32px);}
  .dh-manifesto-story{left:25vw;width:68vw;}
  .dh-estimate-layout{grid-template-columns:minmax(0,1fr) 340px;gap:28px;}
  .dh-est-result{padding:26px;}
}

@media (max-width:1024px){
  .home-madoguchi .site-header{top:14px;height:68px;}
  .home-madoguchi .site-header:has(.gnav.is-open){top:0;left:0;transform:none;width:100%;height:100svh;border-radius:0;background:#fff;align-items:flex-start;padding-top:14px;}
  .home-madoguchi .site-header:has(.gnav.is-open) .logo{position:relative;z-index:171;margin-top:10px;}
  .home-madoguchi .site-header:has(.gnav.is-open) .logo-img{filter:brightness(0);}
  .home-madoguchi .site-header:has(.gnav.is-open) .nav-toggle{margin-left:auto;}
  .home-madoguchi .gnav.is-open{position:absolute;inset:0;height:100%;padding-top:calc(var(--header-h) + 50px);}
  .home-madoguchi .gnav.is-open a em{display:inline;}
  .dh-manifesto-title{width:72vw;}
  .dh-service-head__title{grid-column:1/8;}
  .dh-service-head__copy{grid-column:8/13;padding-right:0;}
  .dh-service-cell{min-height:320px;}
  .dh-est-plans{grid-template-columns:1fr;}
}

@media (max-width:800px){
  .home-madoguchi{padding-bottom:58px;}
  .home-madoguchi .site-header{width:calc(100% - 20px);height:84px;top:14px;padding-inline:18px;}
  .home-madoguchi .site-header .logo-img{width:136px;}
  .js [data-dh-reveal]{opacity:0;filter:blur(6px);transform:translate3d(0,52px,0) scale(.985);transition:opacity .82s var(--dh-ease),transform 1.05s var(--dh-ease),filter .82s ease;}
  .js [data-dh-reveal].is-visible{opacity:1;filter:none;transform:none;}
  .js .dh-service-cell:nth-child(odd):not(.is-visible),
  .js .dh-company-grid a:nth-child(odd):not(.is-visible){transform:translate3d(-34px,42px,0) scale(.98);}
  .js .dh-service-cell:nth-child(even):not(.is-visible),
  .js .dh-company-grid a:nth-child(even):not(.is-visible){transform:translate3d(34px,42px,0) scale(.98);}
  .dh-intro{display:block;height:285svh;}
  .dh-intro-codegrid{inset:-16%;background-size:48px 48px;opacity:.34;transform:perspective(680px) rotateX(62deg) translate3d(0,22%,0) scale(1.4);}
  .dh-code-rail{left:-75vw;font-size:.5rem;opacity:.6;}.dh-code-rail--01{top:20%;}.dh-code-rail--02{top:48%;font-size:.44rem;}.dh-code-rail--03{top:76%;font-size:.46rem;}
  .dh-code-rail p{padding-right:18vw;animation-duration:16s;}
  .dh-editor{right:-30vw;top:18%;width:92vw;height:38vh;min-height:300px;opacity:.72;}
  .dh-editor__bar{height:36px;padding-inline:12px;}.dh-editor__bar em{display:none;}
  .dh-editor::before{inset:36px 0 0 38px;}
  .dh-editor__code{padding:36px 14px 20px 56px;font-size:.6rem;line-height:2.05;}
  .dh-editor__cursor{display:none;}
  .dh-system-map{left:-38vw;top:17%;width:104vw;height:48vh;max-height:430px;opacity:.74;}
  .dh-system-map__node{width:100px;}.dh-system-map__node--01{left:8%;}.dh-system-map__node--02{right:6%;}.dh-system-map__node--03{right:4%;}
  .dh-system-map__label{font-size:.41rem;}
  .dh-terminal{right:-39vw;top:21%;width:106vw;padding:0 18px 20px;opacity:.76;}
  .dh-terminal__head{height:42px;}.dh-terminal>p{min-height:56px;grid-template-columns:30px 1fr auto;font-size:.54rem;}.dh-terminal>p b{font-size:.42rem;}
  .dh-intro-veil{background:linear-gradient(90deg,rgba(5,7,10,.88),rgba(5,7,10,.46) 58%,rgba(5,7,10,.7)),linear-gradient(0deg,rgba(5,7,10,.86),transparent 40%,rgba(5,7,10,.48));}
  .dh-intro-meta{left:24px;right:24px;top:122px;font-size:.5rem;}
  .dh-intro-meta p:last-child{display:none;}
  .dh-intro-credit{right:24px;top:122px;font-size:.42rem;}
  .dh-intro-panel{padding:122px 24px 118px;}
  .dh-intro-panel--01{align-items:flex-end;justify-content:flex-start;}.dh-intro-panel--02{align-items:center;justify-content:flex-end;}.dh-intro-panel--03{align-items:flex-start;justify-content:flex-start;}
  .dh-intro-copy{width:84vw;}
  .dh-intro-copy--01{margin:0 0 12vh 0;}.dh-intro-copy--02{width:77vw;margin:17vh 0 0;}.dh-intro-copy--03{width:82vw;margin:27vh 0 0 2vw;}
  .dh-intro-copy::before{margin-bottom:18px;}
  .dh-intro-copy h2{margin-top:18px;letter-spacing:.03em;}
  .dh-intro-copy small{max-width:82vw;margin:17px 0 0;font-size:.68rem;line-height:1.75;letter-spacing:.07em;}
  .dh-intro-progress{bottom:84px;width:42vw;}
  .dh-intro-scroll{left:24px;bottom:70px;font-size:.49rem;}
  .dh-intro-scroll i{width:34px;}
  .dh-intro-index{right:24px;bottom:67px;}
  .dh-intro-index b{font-size:1.55rem;}
  .dh-manifesto{height:155svh;min-height:1120px;}
  .dh-manifesto-sticky{top:0;height:100svh;min-height:760px;}
  .dh-manifesto-photo::after{background:linear-gradient(0deg,rgba(1,5,10,.92) 0%,rgba(1,5,10,.72) 42%,rgba(1,5,10,.18) 77%,rgba(1,5,10,.38) 100%);}
  .dh-manifesto-photo img{object-position:54% center;filter:saturate(.76) brightness(.75) contrast(1.08);}
  .dh-manifesto-photo figcaption{right:24px;bottom:78px;max-width:72vw;text-align:right;font-size:.37rem;line-height:1.7;}
  .dh-spotlight{width:110vw;opacity:.38;}
  .dh-manifesto.is-dh-active .dh-spotlight{animation:dhMobileGlow 8s ease-in-out infinite;}
  .dh-code--manifest{right:-70px;top:17%;font-size:.48rem;opacity:.72;}
  .dh-manifesto-mark{right:20px;top:130px;width:62px;}
  .dh-manifesto.is-dh-active .dh-manifesto-mark{animation:dhMobileMark 24s linear infinite;}
  .dh-manifesto-title,.dh-manifesto-story{left:24px;right:24px;top:auto;bottom:110px;width:auto;transform:none;}
  .dh-manifesto-title>span{font-size:.72rem;line-height:1.8;}
  .dh-manifesto.is-dh-active .dh-manifesto-title>p,.dh-manifesto.is-dh-active .dh-manifesto-title h1,.dh-manifesto.is-dh-active .dh-manifesto-title>span{animation:dhMobileCopyIn .95s var(--dh-ease) both;}
  .dh-manifesto.is-dh-active .dh-manifesto-title h1{animation-delay:.1s;}
  .dh-manifesto.is-dh-active .dh-manifesto-title>span{animation-delay:.24s;}
  .dh-manifesto-story{bottom:66px;transform:translateY(44px);}
  .dh-manifesto-story p{margin-bottom:14px;font-size:.78rem;line-height:1.9;}
  .dh-manifesto-story__lead>strong{font-size:1rem;}
  .dh-section-head--split{grid-template-columns:1fr;gap:28px;}
  .dh-section-head h2{font-size:clamp(2.25rem,10.5vw,3.7rem);line-height:1.18;}
  .dh-section-head--split>p{padding-bottom:0;}
  .dh-service{padding-top:50px;}
  .dh-service-head{width:88vw;min-height:0;display:block;padding:20px 0 58px;}
  .dh-service-head__meta{font-size:.47rem;line-height:1.7;}.dh-service-head__meta span{max-width:56%;text-align:right;}
  .dh-service-head__title{padding-top:32px;}
  .dh-service-head__title h2{margin-top:30px;font-size:clamp(2.25rem,10.8vw,4.5rem);line-height:1.12;}
  .dh-service-head__title h2 span:first-child{font-size:.6em;}
  .dh-service-head__copy{width:min(560px,100%);margin-top:52px;padding:0;}
  .dh-service-head__copy>p{font-size:.78rem;line-height:2;}
  .dh-service-head__copy>div{margin-top:27px;}
  .dh-service-head__ghost{right:-.02em;bottom:-.12em;font-size:22vw;}
  .dh-service-grid{width:calc(100% - 20px);grid-template-columns:1fr;}
  .dh-service-cell{min-height:300px;border-right:0;}
  .dh-service-cell::before{width:42px;height:42px;color:#fff;border-color:rgba(255,255,255,.56);}
  .dh-service-cell>span{padding:34px 28px;}
  .dh-service-cell img{opacity:.48;filter:grayscale(.7) brightness(.62);}
  .dh-service-cell::after{opacity:1;}
  .dh-service-cell{color:#fff;}
  .dh-service-cell small,.dh-service-cell em{color:rgba(255,255,255,.74);}
  .js .dh-service-cell img{opacity:.3;transform:scale(1.13);transition:opacity 1s ease,transform 1.35s var(--dh-ease),filter 1s ease;}
  .js .dh-service-cell>span{opacity:0;transform:translate3d(0,24px,0);transition:opacity .72s ease .18s,transform .9s var(--dh-ease) .18s;}
  .js .dh-service-cell.is-visible img{opacity:.52;transform:scale(1.035);}
  .js .dh-service-cell.is-visible>span{opacity:1;transform:none;}
  [data-dh-mobile-depth]{will-change:transform;}
  .dh-voice{padding-top:100px;padding-bottom:40px;}
  .dh-voice-head{width:86vw;grid-template-columns:1fr;padding-bottom:68px;}
  .dh-voice-head h2{margin-top:28px;}
  .dh-voice-head>p:last-child{grid-column:auto;margin-top:28px;}
  .dh-voice-layout{display:block;}
  .dh-voice-rail{display:none;}
  .dh-voice-stack{padding:0 14px;}
  .dh-voice-stack::after{height:clamp(110px,16svh,180px);}
  .dh-voice-stage{position:sticky;top:106px;height:calc(100svh - 124px);min-height:0;margin-bottom:42svh;scroll-margin-top:106px;}
  .dh-voice-stage+.dh-voice-stage{margin-top:0;}
  .dh-voice-panel{height:100%;min-height:0;margin:0;grid-template-columns:1fr;grid-template-rows:32% minmax(0,68%);border-radius:14px;backface-visibility:hidden;}
  .dh-voice-photo,.dh-voice-panel--reverse .dh-voice-photo{order:0;min-height:0;height:100%;}
  .dh-voice-body,.dh-voice-panel--reverse .dh-voice-body{order:1;min-height:0;padding:20px 22px 22px;}
  .dh-voice-meta strong{font-size:1.7rem;}
  .dh-voice-body blockquote{margin-top:13px;}
  .dh-voice-body blockquote>small{margin-bottom:7px;font-size:.56rem;}
  .dh-voice-body blockquote h3{font-size:clamp(1.22rem,5vw,1.5rem);line-height:1.5;}
  .dh-voice-body blockquote>p{margin-top:11px;font-size:.76rem;line-height:1.78;}
  .dh-voice-body footer{gap:4px;margin-top:13px;padding-top:10px;}
  .dh-voice-body footer strong{font-size:.72rem;}
  .dh-voice-body footer span{font-size:.61rem;}
  .dh-voice-status{margin-top:8px;padding:3px 7px;font-size:.52rem;}
  .dh-voice-site-link{margin-top:8px;font-size:.58rem;}
  .dh-voice-note{padding-inline:4px;}
  .dh-estimate-layout{grid-template-columns:1fr;}
  .dh-est-mobile-summary{position:sticky;z-index:32;top:110px;width:88vw;min-height:66px;margin:34px auto -40px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 18px;background:rgba(21,23,27,.96);box-shadow:0 16px 46px -28px rgba(0,0,0,.65);color:#fff;backdrop-filter:blur(12px);}
  .dh-est-mobile-summary>span{font-size:.65rem;color:rgba(255,255,255,.58);}.dh-est-mobile-summary>b{font-family:var(--en);font-size:.9rem;font-weight:500;text-align:right;}.dh-est-mobile-summary b>strong{font-size:1.15rem;}.dh-est-mobile-summary i{font-style:normal;color:#aab9ff;}
  .dh-est-result{position:relative;top:auto;max-height:none;overflow:visible;}
  .dh-company-grid{grid-template-columns:1fr;}
  .dh-company-grid a{height:68svh;min-height:480px;border-right:0;border-bottom:1px solid rgba(255,255,255,.25);}
  .dh-flow-list li{grid-template-columns:52px 1fr;gap:16px;}
  .dh-flow-list li span{grid-column:2;}
  .js .dh-flow-list li:not(.is-visible){transform:translate3d(-30px,28px,0) scale(.988);}
  .js .dh-flow-list li:nth-child(even):not(.is-visible){transform:translate3d(30px,28px,0) scale(.988);}
  .dh-local{height:900px;min-height:0;}
  .dh-local-copy{top:18%;right:24px;}
  .dh-local-copy h2{font-size:2rem;}
  .dh-marquee{height:145px;}
  .dh-contact-inner{min-height:720px;grid-template-columns:1fr;gap:46px;padding-block:90px;}
  .dh-contact-actions>p a{display:block;margin-top:7px;}
  .dh-fixed-ctas{display:none;}
  .home-madoguchi .fixed-cta{display:block;}
}

@media (max-width:480px){
  .dh-service-head__meta span{display:none;}
  .dh-service-head__title{padding-top:28px;}
  .dh-service-head__copy{margin-top:44px;}
  .dh-service-cell strong{font-size:clamp(1.45rem,7.1vw,2rem);}
  .dh-manifesto-story br{display:none;}
  .dh-section-head{width:88vw;}
  .dh-service-cell{min-height:275px;}
  .dh-voice-head h2{font-size:2.45rem;}
  .dh-voice-stack{padding-inline:10px;}
  .dh-voice-panel{grid-template-rows:30% minmax(0,70%);}
  .dh-voice-photo,.dh-voice-panel--reverse .dh-voice-photo{min-height:0;}
  .dh-voice-body,.dh-voice-panel--reverse .dh-voice-body{padding:17px 19px 19px;}
  .dh-voice-meta strong{font-size:1.55rem;}
  .dh-voice-meta em{font-size:.56rem;}
  .dh-estimate-layout{width:92vw;}
  .dh-est-mobile-summary{width:92vw;padding-inline:14px;}
  .dh-est-mobile-summary>span{display:none;}
  .dh-est-mobile-summary>b{width:100%;display:flex;justify-content:space-between;text-align:left;}
  .dh-est-categories{grid-template-columns:1fr;}
  .dh-est-categories label>span{min-height:94px;}
  .dh-est-categories strong{margin-top:12px;}
  .dh-est-plans,.dh-est-options{grid-template-columns:1fr;}
  .dh-est-plan__body{min-height:260px;}
  .dh-est-options__title{margin-top:18px;}
  .dh-est-value{padding:28px 22px;}
  .dh-est-value>div{display:block;}.dh-est-value h3{margin-top:12px;}
  .dh-company-grid a{height:60svh;min-height:420px;}
  .dh-local-copy h2{font-size:1.75rem;}
  .dh-contact-inner h2{font-size:clamp(1.55rem,7.5vw,2.1rem);}
}

@media (max-width:800px) and (max-height:660px){
  .dh-voice-stage{top:100px;height:calc(100svh - 112px);margin-bottom:38svh;scroll-margin-top:100px;}
  .dh-voice-panel{grid-template-rows:25% minmax(0,75%);}
  .dh-voice-photo figcaption{left:14px;bottom:10px;font-size:.46rem;}
  .dh-voice-body,.dh-voice-panel--reverse .dh-voice-body{padding:11px 16px 13px;}
  .dh-voice-meta strong{font-size:1.35rem;}
  .dh-voice-meta small,.dh-voice-meta em{font-size:.5rem;}
  .dh-voice-body blockquote{margin-top:7px;}
  .dh-voice-body blockquote>small{margin-bottom:3px;font-size:.5rem;}
  .dh-voice-body blockquote h3{font-size:1.08rem;line-height:1.42;}
  .dh-voice-body blockquote>p{margin-top:7px;font-size:.75rem;line-height:1.65;}
  .dh-voice-body footer{gap:2px;margin-top:7px;padding-top:7px;}
  .dh-voice-body footer strong{font-size:.66rem;}
  .dh-voice-body footer span{font-size:.56rem;}
  .dh-voice-status{margin-top:5px;padding:2px 5px;font-size:.47rem;}
  .dh-voice-site-link{margin-top:5px;padding-bottom:2px;font-size:.52rem;}
}

@media (prefers-reduced-motion:reduce){
  .home-madoguchi *,.home-madoguchi *::before,.home-madoguchi *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .dh-intro{display:block;height:100svh;}
  .dh-intro-sticky{position:relative;}
  .dh-intro-track{width:100vw!important;transform:none!important;}
  .dh-intro-panel{display:none;}
  .dh-intro-panel:first-child{display:flex;}
  .dh-intro-progress,.dh-intro-index{display:none;}
  .dh-manifesto{height:auto;min-height:100svh;}
  .dh-manifesto-sticky{position:relative;height:auto;min-height:100svh;padding:160px 0 90px;}
  .dh-manifesto-title,.dh-manifesto-story{position:relative;left:auto;top:auto;width:min(800px,86vw);margin:auto;opacity:1!important;transform:none!important;filter:none!important;}
  .dh-manifesto-story{margin-top:70px;}
  .dh-voice-stage{position:relative;top:auto;height:auto;margin-bottom:22px;}
  .dh-voice-panel{height:auto;min-height:680px;transform:none!important;filter:none!important;}
  .dh-slice{display:none!important;}.has-dh-slices .dh-slice-base{opacity:1!important;}
  .dh-intro-video{transform:none!important;}
  .js [data-dh-reveal]{opacity:1;filter:none;transform:none;}
  .dh-marquee>div{animation:none;}
}

html:not(.js) .dh-intro{height:100svh;}
html:not(.js) .dh-intro-sticky{position:relative;}
html:not(.js) .dh-intro-track{width:100vw;transform:none;}
html:not(.js) .dh-intro-panel:not(:first-child){display:none;}
html:not(.js) .dh-manifesto{height:auto;}
html:not(.js) .dh-manifesto-sticky{position:relative;height:auto;min-height:100svh;padding-block:160px;}
html:not(.js) .dh-manifesto-title,html:not(.js) .dh-manifesto-story{position:relative;left:auto;top:auto;width:min(800px,86vw);margin:auto;opacity:1;transform:none;}
html:not(.js) .dh-manifesto-story{margin-top:70px;}

/* Home typography mapping — see TYPOGRAPHY.md */
.dh-intro-copy h2{font-size:clamp(3rem,4.15vw,5.5rem);line-height:1.2;}
.dh-manifesto-title h1{font-size:clamp(2.75rem,3.6vw,4.5rem);line-height:1.32;}
.dh-section-head h2,.dh-service-head__title h2,.dh-voice-head h2,
.dh-local-copy h2,.dh-contact-inner h2{font-size:var(--fs-section-title);}
.dh-service-cell strong,.dh-voice-body blockquote h3,.dh-est-value h3,
.dh-est-step legend,.dh-est-result>h3,.dh-company-grid strong,
.dh-flow-list strong{font-size:var(--fs-subheading);}

.dh-manifesto-title>span,.dh-service-head__copy>p,
.dh-intro-copy small{font-size:var(--fs-lead);}
.dh-manifesto-story p,.dh-voice-head>p:last-child,
.dh-voice-body blockquote>p,.dh-voice-body footer strong,
.dh-est-step__lead,.dh-est-plan__body>p,.dh-est-options strong,
.dh-est-value li span,.dh-est-value>p,.dh-est-result__section li,
.dh-est-result__note,.dh-flow-list span,.dh-contact-inner>div>span,
.dh-contact-actions>a,.dh-contact-actions>p{font-size:var(--fs-body);}

.dh-section-head>p,.dh-section-head>div>p,.dh-contact-inner>div>p,
.dh-local-copy>p,.dh-intro-copy>p,.dh-manifesto-title>p,
.dw-loader__meta,.dw-loader__identity>p,.dw-loader__hud>p,
.dw-loader__skip span,.dh-manifesto-photo figcaption,.dh-voice-photo figcaption,
.dh-intro-meta,.dh-intro-credit,.dh-voice-rail p,.dh-voice-rail a,
.dh-service-head__meta,.dh-service-head__title>p,.dh-service-head__copy>div,
.dh-service-cell small,.dh-service-cell em,.dh-voice-head>p:first-child,
.dh-voice-meta small,.dh-voice-meta em,.dh-voice-body blockquote>small,
.dh-voice-body footer span,.dh-voice-status,.dh-company-grid small,
.dh-est-step legend span,.dh-est-plan__body>small,.dh-est-plan__body>b,
.dh-est-categories small,.dh-est-value>div small,.dh-est-result dd>em,
.dh-est-result dd>small,.dh-est-result dt small,.dh-est-mobile-summary>span,
.dh-est-options small,.dh-fixed-ctas small,
.dh-est-options__title,.dh-est-result>p:first-child,.dh-est-result dt,
.dh-est-result__section h4,.dh-voice-note{
  font-size:var(--fs-label);
}
.dh-est-result__note{font-size:var(--fs-label)!important;}
.dh-fixed-ctas strong,.dh-est-mobile-summary>b{font-size:var(--fs-body);}

/* Desktop manifesto copy: keep the Gunma visual dominant while making the
   message comfortably readable on notebook and large desktop displays. */
@media (min-width:1101px){
  .dh-manifesto-story{width:min(58vw,960px);}
  .dh-manifesto-story p{margin-bottom:30px;font-size:clamp(1.05rem,1.18vw,1.25rem);line-height:2;letter-spacing:.055em;}
  .dh-manifesto-story__lead>strong{margin-bottom:16px;font-size:clamp(1.65rem,2.1vw,2.25rem);line-height:1.62;}
}

/* Long Japanese first-view copy needs a lower mobile cap to preserve phrases. */
@media (max-width:800px){
  .dh-intro-copy{width:84vw;}
  .dh-intro-copy--02,.dh-intro-copy--03{width:82vw;}
  .dh-intro-copy h2{font-size:clamp(2.25rem,8.2vw,3rem);line-height:1.3;letter-spacing:.02em;}
  .dh-intro-copy h2 span{white-space:normal;text-wrap:balance;}
  .dh-manifesto-title h1{font-size:clamp(2.25rem,7.4vw,3rem);line-height:1.36;white-space:normal;text-wrap:balance;}
}

@media (max-width:480px){
  .dh-intro-copy h2{font-size:clamp(2.1rem,9vw,2.5rem);}
  .dh-manifesto-title h1{font-size:clamp(2rem,8.4vw,2.35rem);}
  .dh-manifesto-title h1 br{display:block;}
}
