/* Shiomichi Imports (sample) */
:root{
  --bg:#fafaf6; --paper-2:#eeede6; --ink:#16181b; --ink-2:#45484d; --ink-3:#6f7277;
  --or:#e2622b; --or-d:#b8461a; --sea:#2f5d62; --line:rgba(22,24,27,.14);
  --f-d:Sora,system-ui,sans-serif; --f-b:Inter,system-ui,sans-serif;
  --g:clamp(1rem,4vw,3rem); --wrap:min(84rem,100% - 2*var(--g));
  --ease:cubic-bezier(.165,.84,.44,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--f-b);overflow-x:hidden;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;}
ul,ol{list-style:none;}
button,select{font:inherit;color:inherit;}
button{background:none;border:0;cursor:pointer;}
.wrap{width:var(--wrap);margin-inline:auto;}
.narrow{max-width:52rem;}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.75rem 1rem;z-index:100;}
.skip:focus{left:1rem;}
:focus-visible{outline:3px solid var(--or);outline-offset:3px;}

.kick{font:600 13px/1.4 var(--f-b);letter-spacing:.08em;text-transform:uppercase;color:var(--sea);margin-bottom:1rem;}
.kick-or{color:#f0a37c;}
.h2{font:700 clamp(2.25rem,4.8vw,4rem)/1.04 var(--f-d);letter-spacing:-.035em;margin-bottom:1.25rem;}
.lead{font-size:clamp(17px,1.4vw,19px);color:var(--ink-2);max-width:38rem;margin-bottom:1.5rem;}
.note{font-size:14px;color:var(--ink-3);}
.sec{padding:clamp(4.5rem,9vw,8rem) 0;}
.paper-2{background:var(--paper-2);}
.sec-head{margin-bottom:clamp(2.5rem,5vw,4rem);max-width:44rem;}

.btn{display:inline-flex;align-items:center;gap:.625rem;min-height:3.25rem;padding:0 1.5rem;border-radius:.375rem;font:600 16px/1 var(--f-b);text-decoration:none;transition:background .3s var(--ease),color .3s;}
.btn .arw{width:1.125rem;height:1.125rem;transition:transform .3s var(--ease);}
.btn:hover .arw{transform:translateX(4px);}
.btn-or{background:var(--or);color:#16181b;}
.btn-or:hover{background:#f07a46;}
.btn-ink{background:var(--ink);color:#fff;}
.btn-ink:hover{background:var(--sea);}

/* header (sits on the dark hero, solid after scroll) */
.hd{position:fixed;inset:0 0 auto;z-index:50;color:#fff;transition:background .3s,color .3s,transform .4s var(--ease),box-shadow .3s;}
.hd-in{display:flex;align-items:center;gap:2rem;height:4.75rem;}
.logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;margin-right:auto;}
.logo .mark{width:1.25rem;height:1.25rem;background:var(--or);border-radius:2px;}
.logo b{font:700 21px/1 var(--f-d);letter-spacing:-.02em;}
.logo>span:last-child{font-size:14px;opacity:.7;}
.gnav{display:flex;gap:1.75rem;}
.gnav a{text-decoration:none;font-weight:500;font-size:15px;opacity:.85;}
.gnav a:hover,.gnav a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;}
.hd-cta{min-height:2.75rem;padding:0 1.125rem;font-size:15px;}
.menu{display:none;align-items:center;gap:.5rem;font-weight:600;font-size:15px;min-height:2.75rem;padding:0 1rem;border-radius:.375rem;box-shadow:inset 0 0 0 1.5px currentColor;}
.menu span{width:1rem;height:2px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor;}
.hd.is-solid{background:rgba(22,24,27,.95);backdrop-filter:blur(8px);}
.hd.is-hidden{transform:translateY(-100%);}
.drawer{position:fixed;inset:0;z-index:60;background:var(--ink);color:#fff;padding:1.25rem var(--g);display:flex;flex-direction:column;}
.drawer[hidden]{display:none;}
.drawer-top{display:flex;justify-content:space-between;align-items:center;height:3.5rem;}
.drawer-x{font-weight:600;min-height:2.75rem;padding:0 1rem;border-radius:.375rem;box-shadow:inset 0 0 0 1.5px currentColor;}
.drawer nav{display:flex;flex-direction:column;margin-top:2rem;}
.drawer nav a{font:700 2.25rem/1.25 var(--f-d);text-decoration:none;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.14);}
.drawer-note{margin-top:auto;font-size:14px;color:#b9bcc0;}

/* hero: big type on ink, port photo drifting below */
.hero{background:var(--ink);color:#fff;padding-top:clamp(7rem,13vh,9rem);overflow:hidden;}
.hero-in{display:grid;grid-template-columns:1fr minmax(16rem,22rem);gap:2rem 4rem;align-items:end;padding-bottom:clamp(2rem,5vh,3.5rem);}
.hero-in .kick{grid-column:1 / -1;margin:0;}
.hero-h{font:800 clamp(3.25rem,8.4vw,8.75rem)/.95 var(--f-d);letter-spacing:-.05em;}
.hero-h .ln{display:block;overflow:hidden;padding-bottom:.08em;}
.hero-h .ln>span{display:block;}
.hero-h em{font-style:normal;color:var(--or);}
.hero-side p{color:#c9ccd0;margin-bottom:1.5rem;}
.hero-pan{height:clamp(14rem,34vh,24rem);overflow:hidden;position:relative;}
.hero-pan img{width:135%;max-width:none;height:100%;object-fit:cover;object-position:50% 60%;}
.js .hero-pan img{animation:pan 36s ease-in-out infinite alternate;}
@keyframes pan{from{transform:translateX(0);}to{transform:translateX(-25.9%);}}
.hero-pan::before{content:"";position:absolute;inset:0 0 auto;height:30%;background:linear-gradient(var(--ink),transparent);z-index:1;}

/* services row */
.svc-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:1.5px solid var(--ink);}
.svc{padding:1.75rem 1.5rem 2rem 0;border-right:1px solid var(--line);margin-right:1.5rem;transition:background .3s;}
.svc:last-child{border-right:0;margin-right:0;}
.svc-n{display:block;font:700 15px/1 var(--f-d);color:var(--or-d);margin-bottom:2.5rem;}
.svc h3{font:700 1.5rem/1.15 var(--f-d);letter-spacing:-.02em;margin-bottom:.75rem;}
.svc p{color:var(--ink-2);font-size:16px;}

/* readiness check */
.quiz-sec{background:var(--ink);color:#fff;}
.quiz-sec .lead{color:#c9ccd0;}
.quiz-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start;}
.quiz{border-top:1px solid rgba(255,255,255,.18);}
.quiz li{border-bottom:1px solid rgba(255,255,255,.18);}
.q{display:flex;gap:1rem;align-items:flex-start;padding:1.125rem 0;cursor:pointer;}
.q input{position:absolute;opacity:0;width:1px;height:1px;}
.q-box{flex:none;width:1.75rem;height:1.75rem;border-radius:.25rem;box-shadow:inset 0 0 0 2px #8a8e94;position:relative;transition:background .2s,box-shadow .2s;}
.q-box::after{content:"";position:absolute;left:.55rem;top:.25rem;width:.5rem;height:.95rem;border:solid var(--ink);border-width:0 3px 3px 0;transform:rotate(45deg) scale(0);transition:transform .25s var(--ease);}
.q input:checked+.q-box{background:var(--or);box-shadow:none;}
.q input:checked+.q-box::after{transform:rotate(45deg) scale(1);}
.q input:focus-visible+.q-box{outline:3px solid var(--or);outline-offset:3px;}
.q-t{font-size:17px;}
.quiz-out{position:sticky;top:7rem;padding:2rem;border-radius:.5rem;background:#22252a;}
.qo-n{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1rem;}
.qo-n b{font:800 clamp(5rem,10vw,8rem)/.85 var(--f-d);letter-spacing:-.05em;color:var(--or);}
.qo-n span{font:600 1.5rem var(--f-d);color:#8a8e94;}
.qo-bar{height:.5rem;border-radius:999px;background:#3a3e44;overflow:hidden;margin-bottom:1.5rem;}
.qo-bar i{display:block;height:100%;width:0;background:var(--or);transition:width .6s var(--ease);}
.qo-t{font:600 1.25rem/1.4 var(--f-d);margin-bottom:1.5rem;min-height:3.5em;}

/* channel mosaic */
.mosaic{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:clamp(16rem,30vw,28rem);gap:1rem;}
.mosaic figure{position:relative;overflow:hidden;border-radius:.5rem;}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.mosaic figure:hover img{transform:scale(1.04);}
.mosaic .m1{grid-column:span 3;}
.mosaic .m2{grid-column:span 2;}
.mosaic .m3{grid-column:span 2;}
.mosaic .m4{grid-column:span 3;}
.mosaic figcaption{position:absolute;left:1rem;bottom:1rem;background:var(--bg);padding:.5rem .875rem;border-radius:.25rem;font:600 15px/1.2 var(--f-d);}

/* timeline with a line that fills while scrolling */
.tl-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(2rem,6vw,6rem);align-items:start;}
.tl-head{position:sticky;top:7rem;}
.tl{position:relative;padding-left:2.5rem;}
.tl::before,.tl::after{content:"";position:absolute;left:.4375rem;top:.5rem;bottom:.5rem;width:2px;background:var(--line);}
.tl::after{background:var(--or);transform-origin:top;transform:scaleY(var(--p,0));}
.tl li{position:relative;padding-bottom:3rem;}
.tl li:last-child{padding-bottom:0;}
.tl li::before{content:"";position:absolute;left:-2.5rem;top:.35rem;width:1rem;height:1rem;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px #b9bbbf;transition:background .3s,box-shadow .3s;z-index:1;}
.tl li.on::before{background:var(--or);box-shadow:none;}
.tl h3{font:700 clamp(1.5rem,2.6vw,2.125rem)/1.15 var(--f-d);letter-spacing:-.02em;margin-bottom:.5rem;}
.tl p{color:var(--ink-2);max-width:34rem;}

.cta2{background:var(--paper-2);}
.cta2-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;}
.cta2 figure{aspect-ratio:3/2;overflow:hidden;border-radius:.5rem;}
.cta2 img{width:100%;height:100%;object-fit:cover;}

/* sub pages */
.ph{padding:clamp(8rem,14vw,11rem) 0 clamp(3rem,6vw,5rem);background:var(--ink);color:#fff;}
.ph .kick{color:#f0a37c;}
.ph .lead{color:#c9ccd0;}
.ph-h{font:800 clamp(2.75rem,6.6vw,6.25rem)/1 var(--f-d);letter-spacing:-.045em;margin-bottom:1.5rem;max-width:18ch;}
.ph-photo{margin-top:clamp(2.5rem,5vw,4rem);height:clamp(14rem,32vw,26rem);overflow:hidden;}
.ph-photo img{width:100%;height:100%;object-fit:cover;}
.sv{padding:clamp(4rem,8vw,6.5rem) 0;border-bottom:1px solid var(--line);}
.sv-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;}
.sv-rev figure{order:2;}
.sv figure{aspect-ratio:3/2;overflow:hidden;border-radius:.5rem;}
.sv img{width:100%;height:100%;object-fit:cover;}
.sv .svc-n{margin-bottom:1rem;}
.wide-photo{height:clamp(16rem,34vw,28rem);overflow:hidden;}
.wide-photo img{width:100%;height:100%;object-fit:cover;}
.faq{border-top:1px solid var(--line);}
.faq:last-of-type{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;list-style:none;padding:1.25rem 2.5rem 1.25rem 0;font:700 1.25rem/1.35 var(--f-d);position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font:600 1.75rem/1 var(--f-d);color:var(--or-d);transition:transform .3s var(--ease);}
.faq[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.faq p{padding-bottom:1.25rem;color:var(--ink-2);max-width:42rem;}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start;}
.two p+p{margin-top:1rem;}
.ph-side{aspect-ratio:4/5;overflow:hidden;border-radius:.5rem;}
.ph-side img{width:100%;height:100%;object-fit:cover;}
.tbl{width:100%;border-collapse:collapse;font-size:16px;}
.tbl th,.tbl td{text-align:left;padding:.875rem .75rem .875rem 0;border-bottom:1px solid var(--line);vertical-align:top;}
.tbl th{font-weight:600;width:30%;}
.form-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start;}
.form{display:grid;gap:1.5rem;}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.fld{display:grid;gap:.5rem;}
.fld>span{font-weight:600;font-size:15px;}
.fld input,.fld textarea,.fld select{font:inherit;padding:.875rem 1rem;border:1.5px solid var(--line);border-radius:.375rem;background:#fff;color:var(--ink);width:100%;}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--sea);outline:none;box-shadow:0 0 0 3px rgba(47,93,98,.2);}
.fld .is-bad{border-color:#a3342a;}
.form .btn{justify-self:start;}
.form-out{font-weight:600;color:var(--sea);min-height:1.5em;}
.side-info{padding:2rem;background:var(--paper-2);border-radius:.5rem;}
.side-info h2{font:700 1.375rem/1.2 var(--f-d);margin-bottom:1rem;}
.side-info p{margin-bottom:.75rem;color:var(--ink-2);}
.prose h2{font:700 1.375rem/1.2 var(--f-d);margin:2rem 0 .5rem;}
.prose p{color:var(--ink-2);}

/* footer */
.ft{background:var(--ink);color:#fff;padding:clamp(4.5rem,9vw,7rem) 0 2rem;}
.ft-big{font:800 clamp(2.75rem,7vw,6.5rem)/1 var(--f-d);letter-spacing:-.05em;margin-bottom:2rem;}
.ft-big span{color:var(--or);}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;padding:3rem 0 2.5rem;margin-top:3.5rem;border-top:1px solid rgba(255,255,255,.16);font-size:15px;color:#b9bcc0;}
.ft-grid b{color:#fff;}
.ft-grid nav{display:flex;flex-direction:column;gap:.5rem;}
.ft-grid nav a{text-decoration:none;}
.ft-grid nav a:hover{text-decoration:underline;}
.ft-note{font-size:13px;color:#8a8e94;}

/* reveal */
.js [data-r]{opacity:0;transform:translateY(1.5rem);transition:opacity .8s var(--ease) var(--d,0s),transform .8s var(--ease) var(--d,0s);}
.js [data-r].is-in{opacity:1;transform:none;}
.js [data-r="line"]{opacity:1;transform:none;}
.js [data-r="line"]>span{transform:translateY(105%);transition:transform 1s var(--ease) calc(var(--d,0s) + .15s);}
.js [data-r="line"].is-in>span{transform:none;}
.js [data-r="mask"]{opacity:1;transform:none;}
.js [data-r="mask"] img{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease);}
.js [data-r="mask"].is-in img{clip-path:inset(0);}
@media (prefers-reduced-motion:reduce){
  .js [data-r],.js [data-r]>span,.js [data-r] img{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important;}
  .js .hero-pan img{animation:none;transform:translateX(-13%);}
}

@media (max-width:1080px){
  .gnav{display:none;}
  .menu{display:inline-flex;}
  .svc-row{grid-template-columns:repeat(2,1fr);}
  .svc:nth-child(2){border-right:0;margin-right:0;}
}
@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;}
  .quiz-grid,.tl-grid,.cta2-grid,.sv-grid,.two,.form-grid{grid-template-columns:1fr;}
  .quiz-out,.tl-head{position:static;}
  .sv-rev figure{order:0;}
  .ft-grid{grid-template-columns:1fr;}
}
@media (max-width:720px){
  body{font-size:16px;}
  .hd-in{height:4rem;gap:.75rem;}
  .hd-cta{display:none;}
  .hero-h{font-size:clamp(2.75rem,13.5vw,4.25rem);}
  .hero-pan{height:clamp(11rem,28vh,16rem);}
  .svc-row{grid-template-columns:1fr;}
  .svc{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding:1.5rem 0;}
  .svc-n{margin-bottom:1rem;}
  .mosaic{grid-template-columns:1fr;grid-auto-rows:auto;}
  .mosaic figure{grid-column:auto!important;aspect-ratio:3/2;}
  .f2{grid-template-columns:1fr;}
  .hero-side .btn{width:100%;justify-content:center;}
}

/* ---- 11-12 round 2 (reviewer fixes) ---- */
.hero{padding-top:clamp(6.5rem,11vh,8rem);}
.hero-in{grid-template-columns:1fr minmax(16rem,20rem);padding-bottom:clamp(1.5rem,3vh,2.5rem);}
.hero-side{align-self:center;}
.hero-pan{height:clamp(18rem,42vh,30rem);}
.hd:focus-within{transform:none;}
.svc-n{font:800 clamp(2.75rem,4.4vw,4rem)/1 var(--f-d);letter-spacing:-.04em;color:var(--or-d);margin-bottom:1.5rem;}
.svc{transition:background .3s,padding .3s;}
.svc:hover{background:#f1efe6;}
.quiz-out.is-zero .qo-n b{color:#5c6066;}
.drawer .logo .mark{width:1.25rem;height:1.25rem;background:var(--or);border-radius:2px;}
.drawer .logo>span:last-child{font-size:14px;opacity:.7;}
.drawer{animation:dr .35s var(--ease);}
@keyframes dr{from{opacity:0;transform:translateY(-1rem);}to{opacity:1;transform:none;}}
.ph+.sec{padding-top:clamp(2.5rem,5vw,4rem);}
.sv .svc-n{margin-bottom:.75rem;}
.svc-big{font-size:clamp(5rem,10vw,9rem)!important;line-height:.85!important;}
.sv-text{background:var(--paper-2);}
.io{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem;}
.io-h{font:700 14px/1 var(--f-b);letter-spacing:.06em;text-transform:uppercase;color:var(--sea);padding-bottom:.75rem;border-bottom:1.5px solid var(--ink);margin-bottom:.25rem;}
.io li{padding:.625rem 0;border-bottom:1px solid var(--line);font-size:16px;}
.who{margin-top:2rem;font-size:15px;}
.who caption{text-align:left;font:700 1.125rem/1.2 var(--f-d);padding-bottom:.75rem;}
.who th,.who td{padding:.625rem .5rem .625rem 0;}
.who thead th{font-size:13px;color:var(--ink-3);font-weight:500;border-bottom:1.5px solid var(--ink);}
.ph-side{aspect-ratio:4/3;}
.h3{font:700 1.375rem/1.2 var(--f-d);margin:2rem 0 .75rem;}
.choose li{padding:.75rem 0 .75rem 1.5rem;border-bottom:1px solid var(--line);position:relative;}
.choose li::before{content:"";position:absolute;left:0;top:1.2rem;width:.625rem;height:.625rem;background:var(--or);border-radius:2px;}
@media (max-width:1080px){
  .hero-in{grid-template-columns:1fr;}
  .hero-side{max-width:34rem;}
}
@media (max-width:720px){.io{grid-template-columns:1fr;}.hero-pan{height:clamp(12rem,30vh,17rem);}}
/* ---- round 3 ---- */
.hero-side{align-self:end;}
.ft-grid nav a{padding-block:.5rem;}
.ft-grid nav{gap:0;}
.drawer-cta{margin-top:2rem;align-self:flex-start;}
.fld .err{font-size:14px;color:#a3342a;font-weight:500;}
.fld .is-bad{border-width:2px;background:#fdf3f1;}
@media (max-width:900px){
  .quiz-out{position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"n t" "bar bar" "btn btn";gap:.5rem 1rem;align-items:center;padding:1rem 1.25rem;margin-top:1.5rem;border-radius:.5rem .5rem 0 0;box-shadow:0 -.5rem 1.5rem rgba(0,0,0,.35);}
  .qo-n{grid-area:n;margin:0;}
  .qo-n b{font-size:3rem;}
  .qo-t{grid-area:t;margin:0;min-height:0;font-size:1rem;}
  .qo-bar{grid-area:bar;margin:0;}
  .quiz-out .btn{grid-area:btn;justify-content:center;min-height:2.75rem;}
}
/* ---- round 4 ---- */
.hero-in{grid-template-columns:1fr;}
.hero-side{max-width:36rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap;}
.hero-side p{margin:0;flex:1 1 20rem;}
.js .hero-pan img{animation-duration:22s;}
.ft-grid:first-child{margin-top:0;}
body.on-contact .ft{padding-top:2.5rem;}
@media (max-width:900px){
  .quiz-out.is-zero .btn{display:none;}
  .quiz-out.is-zero{grid-template-areas:"n t" "bar bar";}
  .quiz{margin-bottom:1rem;}
}
