:root{--ink:#1b1918;--grey:#57514b;--mute:#8a8178;--red:#a3342b;--red-ink:#8c2a22;--rule:#d9d0c3;--paper:#f5f1ea;--card:#fbf8f3;--stone:#eae3d8;--ok:#2e6b4f;--err:#a3341f;--wrap:1200px;--gut:clamp(16px, 4vw, 40px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}
:root{--serif:var(--font-serif), "Times New Roman", serif;--sans:var(--font-sans), "Futura", system-ui, sans-serif;--jp:var(--font-jp), "Noto Serif CJK JP", serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;font-weight:300;line-height:1.6;overflow-x:hidden}img,svg,video{max-width:100%;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--wrap);padding:0 var(--gut);margin:0 auto}.skip{background:var(--ink);color:var(--paper);z-index:99;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip:focus{top:1rem;left:1rem}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-weight:600}h2{margin-bottom:1rem;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.05}.kicker{letter-spacing:.34em;text-transform:uppercase;color:var(--grey);align-items:center;gap:.9rem;margin:0 0 .9rem;font-size:.74rem;font-weight:400;display:flex}.kicker:before{content:"";background:var(--red);width:2rem;height:1px}.sub{color:var(--grey);max-width:56ch;margin:0 0 2.5rem;font-size:1.08rem}.muted{color:var(--grey);margin:0}section{padding:clamp(4rem,9vw,7rem) 0}.btn{font:inherit;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:var(--ink);color:var(--paper);border:0;border-radius:0;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.6rem;font-size:.82rem;font-weight:400;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.btn:hover{background:var(--red)}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:0 0}.btn.ghost:hover{background:var(--ink);color:var(--paper)}.btn.sm{padding:.7rem 1.1rem;font-size:.72rem}.btn:disabled{opacity:.5;cursor:default}.top{z-index:30;-webkit-backdrop-filter:blur(10px);background:#f5f1eae6;border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.top.scrolled{border-bottom-color:var(--rule)}.top-in{justify-content:space-between;align-items:center;height:72px;display:flex}.brand{align-items:center;gap:.7rem;text-decoration:none;display:flex}.brand img{width:40px;height:40px}.brand .word{letter-spacing:.42em;font-size:1.05rem;font-weight:400}.brand .jp{font-family:var(--jp);color:var(--red);border-left:1px solid var(--rule);padding-left:.7rem;font-size:.85rem}.nav{align-items:center;gap:1.8rem;display:flex}.nav a:not(.btn){letter-spacing:.2em;text-transform:uppercase;color:var(--grey);font-size:.78rem;text-decoration:none}.nav a:not(.btn):hover{color:var(--ink)}.menu{cursor:pointer;background:0 0;border:0;width:44px;height:44px;padding:10px;display:none}.menu span{background:var(--ink);height:1px;margin:7px 0;transition:transform .25s;display:block}.menu[aria-expanded=true] span:first-child{transform:translateY(4px)rotate(45deg)}.menu[aria-expanded=true] span:last-child{transform:translateY(-4px)rotate(-45deg)}@media (max-width:900px){.menu{display:block}.nav{background:var(--paper);border-bottom:1px solid var(--rule);padding:.5rem var(--gut) 1.5rem;visibility:hidden;flex-direction:column;align-items:stretch;gap:0;transition:transform .3s,visibility .3s;position:fixed;inset:72px 0 auto;transform:translateY(-120%)}.nav.open{visibility:visible;transform:none}.nav a:not(.btn){border-bottom:1px solid var(--rule);padding:1rem 0}.nav .btn{margin-top:1.2rem}}.hero{padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem);position:relative}.hero-in{grid-template-columns:1fr 1.15fr;align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid;position:relative}.eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--grey);margin:0 0 1.4rem;font-size:.7rem}.eyebrow i{color:var(--mute);margin:0 .4em;font-style:normal}.hero h1{font-size:clamp(2.6rem,5.6vw,4.6rem);line-height:1}.hero h1 em{color:var(--red);font-style:italic;font-weight:500}.bar{background:var(--red);width:3.5rem;height:2px;margin:1.6rem 0;display:block}.lede{font-family:var(--serif);color:var(--grey);max-width:34ch;margin:0 0 2rem;font-size:clamp(1.2rem,1.8vw,1.4rem);font-weight:500;line-height:1.4}.ctas{flex-wrap:wrap;gap:.8rem;display:flex}.facts{flex-wrap:wrap;gap:1.2rem 1.8rem;margin:2.6rem 0 0;padding:0;list-style:none;display:flex}.facts li{border-left:1px solid var(--red);padding-left:.9rem}.facts b{font-family:var(--serif);font-size:1.9rem;font-weight:600;line-height:1;display:block}.facts span{color:var(--grey);letter-spacing:.04em;font-size:.78rem}.hero-img{background:var(--card);margin:0;padding:10px 10px 14px;transform:rotate(.8deg);box-shadow:0 2px 4px #281e141f,0 18px 40px #281e1429}.hero-img .ph{aspect-ratio:16/10;position:relative;overflow:hidden}.hero-img img{object-fit:cover}.hero-img figcaption{border-left:1px solid var(--red);letter-spacing:.26em;text-transform:uppercase;color:var(--grey);margin-top:.7rem;padding-left:.7rem;font-size:.7rem}.side{right:calc(-1 * var(--gut) + 6px);border-left:1px solid var(--red);letter-spacing:.34em;color:var(--grey);text-transform:uppercase;padding-left:.6rem;font-size:.62rem;line-height:2;position:absolute;top:0}.side .jp{font-family:var(--jp);letter-spacing:.2em;color:var(--ink);text-transform:none;font-size:1rem;line-height:1.7;display:block}.side .rl{background:var(--red);width:1.4rem;height:1px;margin:.5rem 0;display:block}@media (max-width:1560px){.side{display:none}}@media (max-width:900px){.hero-in{grid-template-columns:1fr}.hero-img{transform:none}}.process{background:var(--stone)}.equation{grid-template-columns:1fr auto 1fr auto 1.4fr;align-items:center;gap:clamp(.6rem,2vw,1.4rem);margin-top:2.5rem;display:grid}.eq{background:var(--card);margin:0;padding:8px 8px 12px;box-shadow:0 1px 3px #281e141f,0 8px 22px #281e141a}.eq .ph{aspect-ratio:16/10;position:relative;overflow:hidden}.eq img{object-fit:cover;transition:transform .6s}.eq:hover img{transform:scale(1.04)}.eq figcaption{border-left:1px solid var(--red);margin-top:.7rem;padding-left:.6rem;font-size:.95rem;font-weight:400}.eq figcaption small{color:var(--grey);font-size:.8rem;display:block}.op{font-family:var(--serif);color:var(--red);text-align:center;padding-bottom:2.4rem;font-size:clamp(2.4rem,5vw,3.8rem);line-height:1}@media (max-width:820px){.equation{grid-template-columns:1fr auto 1fr}.equation .op:nth-of-type(2){grid-column:1/-1;padding:0}.equation .eq.out{grid-column:1/-1}}@media (max-width:420px){.equation{grid-template-columns:1fr}.op{padding:0}}.steps{counter-reset:s;grid-template-columns:repeat(4,1fr);gap:1.8rem;margin:clamp(2.5rem,5vw,4rem) 0 0;padding:0;list-style:none;display:grid}.steps li{counter-increment:s;border-top:1px solid var(--ink);padding-top:1rem}.steps li:before{content:"0" counter(s);font-family:var(--serif);color:var(--red);margin-bottom:.7rem;font-size:2.2rem;line-height:1;display:block}.steps h3{margin-bottom:.3rem;font-size:1.4rem}.steps p{color:var(--grey);margin:0;font-size:.96rem}@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}@media (max-width:420px){.steps{grid-template-columns:1fr}}.head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.2rem;margin-bottom:2.2rem;display:flex}.head-row h2{margin:0}.filters{gap:.4rem;display:flex}.filters button{font:inherit;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;color:var(--grey);background:0 0;border:0;border-bottom:1px solid #0000;padding:.5rem .6rem;font-size:.72rem}.filters button.on{color:var(--ink);border-bottom-color:var(--red)}.work-3d{justify-content:center;margin:2.5rem 0 0;display:flex}.gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;grid-auto-flow:dense;gap:12px;display:grid}.g{cursor:zoom-in;background:var(--stone);border:0;padding:0;position:relative;overflow:hidden}.g.w2{grid-column:span 2}.g.tall{grid-row:span 2}.g img{object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.g:hover img{transform:scale(1.05)}.g .cap{text-align:left;color:#f5f1ea;letter-spacing:.28em;text-transform:uppercase;opacity:0;background:linear-gradient(#0000,#14100ca6);padding:2.2rem 1rem .9rem;font-size:.7rem;transition:opacity .3s,transform .3s;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}.g:hover .cap,.g:focus-visible .cap{opacity:1;transform:none}.g.hide{display:none}@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}}@media (max-width:560px){.gallery{grid-template-columns:1fr;grid-auto-rows:220px}.g.w2{grid-column:auto}.g.tall{grid-row:span 1}.g .cap{opacity:1;transform:none}}.lightbox{background:0 0;border:0;max-width:min(92vw,1600px);max-height:92vh;padding:0;overflow:visible}.lightbox::backdrop{background:#14100ce0}.lightbox img{object-fit:contain;max-width:100%;max-height:84vh}.lb-cap{color:#f5f1ea;letter-spacing:.28em;text-transform:uppercase;margin:.8rem 0 0;font-size:.72rem}.lb-close{color:#f5f1ea;cursor:pointer;background:0 0;border:0;font-size:2rem;line-height:1;position:absolute;top:-2.6rem;right:0}.ba{background:var(--ink);color:var(--paper)}.ba .kicker,.ba .sub{color:#b8afa4}.ba-in{grid-template-columns:.75fr 1.25fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}@media (max-width:900px){.ba-in{grid-template-columns:1fr}}.compare{aspect-ratio:3/2;-webkit-user-select:none;user-select:none;background:#000;position:relative;overflow:hidden}.compare img{object-fit:cover}.compare .before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);position:absolute;inset:0}.compare .handle{top:0;bottom:0;left:var(--pos);pointer-events:none;background:#f5f1ea;width:1px;position:absolute}.compare .handle:after{content:"‹ ›";width:46px;height:46px;color:var(--ink);letter-spacing:.1em;background:#f5f1ea;border-radius:50%;place-items:center;font-size:1.1rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.compare input{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.compare .tag{letter-spacing:.3em;text-transform:uppercase;color:#f5f1ea;pointer-events:none;background:#14100c80;padding:.35rem .7rem;font-size:.66rem;position:absolute;top:1rem}.compare .tag.l{left:1rem}.compare .tag.r{right:1rem}.services{border-top:1px solid var(--rule);grid-template-columns:repeat(4,1fr);display:grid}.svc{border-bottom:1px solid var(--rule);padding:1.8rem 1.4rem 2rem 0}.svc+.svc{border-left:1px solid var(--rule);padding-left:1.4rem}.svc:nth-child(4n+1){border-left:0;padding-left:0}.ico{background:var(--stone);border-radius:50%;place-items:center;width:48px;height:48px;margin-bottom:1.1rem;display:grid}.ico svg{fill:none;width:24px;height:24px;stroke:var(--ink);stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round}.svc h3{margin-bottom:.35rem;font-size:1.35rem}.svc p{color:var(--grey);margin:0;font-size:.95rem}.aside{color:var(--grey);margin:2rem 0 0}@media (max-width:960px){.services{grid-template-columns:repeat(2,1fr)}.svc:nth-child(n){border-left:1px solid var(--rule);padding-left:1.4rem}.svc:nth-child(odd){border-left:0;padding-left:0}}@media (max-width:520px){.services{grid-template-columns:1fr}.svc:nth-child(n){border-left:0;padding-left:0}}.order{grid-template-columns:.8fr 1.2fr;align-items:start;gap:clamp(1.5rem,5vw,4rem);display:grid}.order aside{position:sticky;top:100px}@media (max-width:900px){.order{grid-template-columns:1fr}.order aside{position:static}}.promise{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.promise li{color:var(--grey);gap:.8rem;display:flex}.promise li:before{content:"";background:var(--red);flex:none;width:1.2rem;height:1px;margin-top:.8rem}form.card{background:var(--card);box-shadow:0 0 0 1px var(--rule), 0 12px 32px #281e140f;padding:clamp(1.25rem,3.5vw,2.4rem)}fieldset{border:0;min-width:0;margin:0 0 2rem;padding:0}legend{font-family:var(--serif);margin-bottom:1rem;padding:0;font-size:1.45rem;font-weight:600}.field{margin-bottom:1.2rem}.lbl{margin-bottom:.4rem;font-size:.92rem;font-weight:400;display:block}.hint{color:var(--grey);font-size:.82rem;font-weight:300;display:block}.lbl .hint{display:inline}input[type=text],input[type=email],input[type=tel],input[type=number],textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:0;padding:.8rem .9rem;font-weight:400}input:focus,textarea:focus{border-color:var(--ink);outline:none}textarea{resize:vertical;min-height:130px}.row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:560px){.row{grid-template-columns:1fr}}.height{gap:.5rem;display:flex}.height input{flex:1;min-width:0}.unit{border:1px solid var(--rule);flex:none;display:inline-flex}.unit label{position:relative}.unit input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.unit span{color:var(--grey);padding:.8rem 1rem;font-size:.9rem;display:block}.unit input:checked+span{background:var(--ink);color:var(--paper)}.unit input:focus-visible+span{outline:2px solid var(--red);outline-offset:-2px}.check{color:var(--grey);align-items:flex-start;gap:.6rem;font-size:.9rem;display:flex}.check input{accent-color:var(--ink);flex:none;width:1rem;height:1rem;margin-top:.3rem}.spaces{grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}@media (max-width:760px){.spaces{grid-template-columns:repeat(2,1fr)}}.pkg{cursor:pointer;display:block;position:relative}.pkg input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pkg .box{border:1px solid var(--rule);background:var(--paper);height:100%;padding:.9rem;transition:border-color .15s;display:block}.pkg .name{font-weight:400;display:block}.pkg .views{color:var(--grey);margin:.15rem 0 .6rem;font-size:.78rem;line-height:1.35;display:block}.pkg .price{font-family:var(--serif);font-size:1.3rem;font-weight:600;display:block}.pkg .price small{font-family:var(--sans);color:var(--grey);font-size:.76rem;font-weight:300}.pkg input:checked+.box{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--card)}.pkg input:focus-visible+.box{outline:2px solid var(--red);outline-offset:2px}.views-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.3rem;display:flex}.stepper{border:1px solid var(--rule);background:var(--paper);align-items:center;display:inline-flex}.stepper button{font:inherit;width:46px;height:46px;color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:1.3rem}.stepper button:disabled{opacity:.3;cursor:default}.stepper output{text-align:center;min-width:2.5rem;font-family:var(--serif);font-size:1.4rem;font-weight:600}.breakdown{background:var(--stone);color:var(--grey);gap:.25rem;margin:1rem 0 0;padding:.9rem 1rem;font-size:.9rem;display:grid}.breakdown div{justify-content:space-between;gap:1rem;display:flex}.breakdown .save{color:var(--ok)}.quote-link{border:1px dashed var(--red);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .8rem;margin-top:1rem;padding:.9rem 1rem;font-size:.9rem;display:flex}.quote-link a{color:var(--red-ink);font-weight:400}.submit-row{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.4rem;display:flex}.total{color:var(--grey);font-size:.9rem}.total b{font-family:var(--serif);color:var(--ink);font-size:2.1rem;font-weight:600;line-height:1.1;display:block}.err{color:var(--err);margin:.35rem 0 0;font-size:.84rem;display:none}.field.invalid .err{display:block}.field.invalid input{border-color:var(--err)}.form-err{color:var(--err);margin:0 0 1rem;font-size:.9rem;display:none}.wa-note{margin:.8rem 0 0}#faq{border-top:1px solid var(--rule)}.faq>*{max-width:800px}details{border-bottom:1px solid var(--rule);padding:1.2rem 0}summary{cursor:pointer;font-family:var(--serif);justify-content:space-between;gap:1rem;font-size:1.35rem;font-weight:600;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";font-family:var(--sans);color:var(--red);font-size:1.5rem;font-weight:300;line-height:1}details[open] summary:after{content:"–"}details p{color:var(--grey);max-width:65ch;margin:.7rem 0 0}.foot{background:var(--ink);color:#d9d0c3;padding:clamp(3rem, 7vw, 5rem) 0 calc(2.5rem + env(safe-area-inset-bottom,0px))}.foot-in{flex-wrap:wrap;align-items:center;gap:2.5rem 4rem;display:flex}.foot-logo{width:200px;height:auto}.foot-cols{flex:1;min-width:240px}.tagline{font-family:var(--serif);color:#f5f1ea;margin:0 0 1.2rem;font-size:1.8rem}.contact{flex-wrap:wrap;gap:.6rem 2rem;margin:0 0 1.6rem;padding:0;list-style:none;display:flex}.contact a{border-bottom:1px solid #d9d0c359;text-decoration:none}.contact a:hover{color:#f5f1ea;border-color:var(--red)}.copy{letter-spacing:.1em;color:var(--mute);margin:0;font-size:.8rem}.wa{right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:20;position:fixed}.wa a{color:#fff;background:#1f8a4c;border-radius:999px;align-items:center;gap:.5rem;padding:.75rem 1.1rem;font-size:.92rem;font-weight:400;text-decoration:none;display:flex;box-shadow:0 4px 18px #00000038}.wa svg{width:20px;height:20px}@media (max-width:520px){.wa a span{display:none}.wa a{padding:.85rem}}.reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(18px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.g img,.eq img{transition:none}}
