:root{--red: #C62828;--ink: #171717;--stone: #868686;--ivory: #F5EFE6;--paper: #FBF8F3;--text-2: #55524E;--line: #E2D9CC;--line-2: #D2C7B8;--ink-2: #222222;--ink-line: #34322F;--il-wall: #EFE6D8;--il-shoji: #F7F1E7;--il-shoji-line: #DCCFBD;--il-frame: #2B2420;--il-sky: #F3E7D5;--il-mount: #A9A39A;--il-snow: #F8F4EC;--il-hill: #CDC3B4;--il-floor: #E7DDCD;--il-wood: #3A2D25;--il-wood-2: #2A211C;--il-kimono: #1C1C1F;--il-kimono-2: #2E2E33;--il-collar: #D9D0C2;--il-skin: #E2B08A;--il-skin-2: #CC9773;--il-hair: #141414;--il-beard: #5A4A40;--il-lip: #9A6450;--il-leaf: #3E5441;--il-leaf-2: #58725A;--il-trunk: #5B4434;--il-trunk-2: #7A5E49;--il-pot: #262626;--il-soil: #3B3A2F;--il-steel: #8C9097;--il-laptop: #2A2A2D;--il-laptop-2: #3A3A3E;--il-screen: #141416;--il-code: #E9E1D4;--font: "Montserrat", system-ui, -apple-system, "Segoe UI", "Noto Sans JP", sans-serif;--font-display: "Marcellus", "Optima", "Candara", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease: cubic-bezier(.22, .61, .36, 1);--max: 1200px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}img,svg{display:block;max-width:100%}a{color:inherit}input,textarea,button{font:inherit;color:inherit}::selection{background:var(--red);color:#fff}:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:4px}.container{max-width:var(--max);margin:0 auto;padding-inline:24px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}.eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}.h1{margin:0;font-size:clamp(36px,5vw,60px);line-height:1.08;font-weight:500;letter-spacing:-.02em}.h2{margin:0;font-size:clamp(30px,3.6vw,44px);line-height:1.12;font-weight:500;letter-spacing:-.015em}.lead{margin:0;font-size:clamp(16px,1.4vw,19px);line-height:1.65;color:var(--text-2);max-width:560px}.motto{margin:0;font-size:12px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--ink)}.motto span{color:var(--red);padding-inline:.35em}@media(max-width:480px){.motto{letter-spacing:.18em;font-size:11px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:2px;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);text-decoration:none;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}.btn:hover{background:var(--red);border-color:var(--red);color:#fff}.btn .arrow{transition:transform .25s var(--ease)}.btn:hover .arrow{transform:translate(4px)}.btn[disabled]{opacity:.6;cursor:wait}.btn--ghost{background:transparent;color:var(--ink)}.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--ivory)}.btn--sm{min-height:42px;padding:0 18px;font-size:12px}.nav-wrap{position:sticky;top:0;z-index:50;background:#f5efe6db;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}.nav a{text-decoration:none}.nav-links{display:flex;align-items:center;gap:32px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.nav-links a:not(.btn){color:var(--text-2);transition:color .2s}.nav-links a:not(.btn):hover{color:var(--ink)}@media(max-width:760px){.nav-links a:not(.btn){display:none}}.hero{padding-block:clamp(48px,7vw,96px) clamp(56px,7vw,104px)}.hero-grid{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(32px,5vw,64px)}.hero-copy{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:28px}.hero-art{flex:1.25 1 460px;min-width:0}.scene-frame{position:relative;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -40px #17171773;background:var(--il-wall)}.scene-frame svg{width:100%;height:auto}.actions{display:flex;flex-wrap:wrap;gap:12px}.fade-up{animation:fade-up .9s var(--ease) both}.fade-up.d1{animation-delay:.1s}.fade-up.d2{animation-delay:.2s}.fade-up.d3{animation-delay:.3s}.fade-up.d4{animation-delay:.4s}.section{padding-block:clamp(72px,9vw,120px)}.section--paper{background:var(--paper);border-block:1px solid var(--line)}.section--dark{background:var(--ink);color:var(--ivory)}.section--dark .eyebrow,.section--dark .lead,.section--dark .muted{color:#c9c2b8}.section-head{display:flex;flex-direction:column;gap:18px;margin-bottom:56px;max-width:760px}.services{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.card{position:relative;background:var(--paper);padding:32px 28px;display:flex;flex-direction:column;gap:12px;min-height:220px;transition:background .3s var(--ease)}.card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}.card:hover{background:#fff}.card:hover:before{transform:scaleX(1)}.card .num{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--text-2)}.card .num b{font-weight:500;color:var(--red);padding-inline:.3em}.card h3{margin:0;font-size:19px;font-weight:600;letter-spacing:-.01em}.card p{margin:0;font-size:15.5px;line-height:1.65;color:var(--text-2)}@media(min-width:600px){.services{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1020px){.services{grid-template-columns:repeat(4,minmax(0,1fr))}}.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:36px}.pillar{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--ink-line);padding-top:22px}.pillar h3{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.pillar h3:before{content:">";font-family:var(--mono);font-weight:500;color:#e2675f}.pillar p{margin:0;font-size:15.5px;line-height:1.65;color:#c9c2b8}.method{display:flex;flex-wrap:wrap;gap:56px}.method-head{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:18px}.steps{flex:999 1 560px;min-width:0;list-style:none;margin:0;padding:0}.step{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 28px;padding:24px 0;border-top:1px solid var(--line-2);transition:padding-left .35s var(--ease)}.step:last-child{border-bottom:1px solid var(--line-2)}.step:hover{padding-left:12px}.step .n{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--red);width:32px}.step strong{font-size:20px;font-weight:600;flex:1 1 200px}.step span:last-child{font-size:15.5px;color:var(--text-2);flex:2 1 280px;line-height:1.6}.contact-grid{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start}.contact-copy{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:22px}.contact-links{display:flex;flex-direction:column;gap:8px;font-size:15px}.contact-links a{color:var(--ink);text-underline-offset:4px}.contact-links span{color:var(--text-2)}.form{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:16px;background:var(--paper);border:1px solid var(--line);padding:32px}.form label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}.field{min-height:48px;border-radius:2px;border:1px solid var(--line-2);background:#fff;color:var(--ink);padding:0 14px;font-size:16px;font-weight:400;letter-spacing:0;text-transform:none;transition:border-color .2s,box-shadow .2s}textarea.field{padding:12px 14px;resize:vertical;min-height:130px}.field:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #c6282826}.form-status{margin:0;min-height:22px;font-size:14px;color:var(--text-2)}.form-status[data-state=ok]{color:#2e6b3f}.form-status[data-state=error]{color:var(--red)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.footer{background:var(--ink);color:var(--ivory)}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-block:40px}.footer .motto{color:#c9c2b8}.footer small{font-size:12px;color:#a9a39a;letter-spacing:.06em;line-height:1.8;text-align:right}@media(max-width:760px){.footer small{text-align:left}}.scroll-progress{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);z-index:60;height:2px;background:var(--red);transform-origin:left;transform:scaleX(var(--scroll, 0));pointer-events:none}.nav-wrap{transition:box-shadow .3s var(--ease)}.nav-wrap .nav{transition:padding .3s var(--ease)}.nav-wrap.is-scrolled{box-shadow:0 10px 30px -22px #17171773}.nav-wrap.is-scrolled .nav{padding-block:10px}.hero .scene-frame{transform:translateY(calc(var(--p, 0) * 70px)) scale(calc(1 - var(--p, 0) * .05))}.hero .hero-copy{transform:translateY(calc(var(--p, 0) * -24px));opacity:calc(1 - var(--p, 0) * .5)}.card:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s var(--ease);background:radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%),rgba(198,40,40,.08),transparent 65%)}.card:hover:after{opacity:1}.step{position:relative}.step:before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease);transition-delay:calc(var(--i, 0) * .16s + .25s)}.steps.is-in .step:before{transform:scaleX(1)}@media(prefers-reduced-motion:no-preference){.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.js .reveal.is-in{opacity:1;transform:none}.js [data-stagger]>*{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease),background .3s var(--ease),padding-left .35s var(--ease);transition-delay:calc(var(--i, 0) * 90ms)}.js [data-stagger].is-in>*{opacity:1;transform:none}.js [data-stagger].is-in>*:hover{transition-delay:0s}.js .services[data-stagger]>*{opacity:1;transform:none}.js .services[data-stagger]>*>*{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i, 0) * 90ms)}.js .services[data-stagger].is-in>*>*{opacity:1;transform:none}.js .h2 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.1em;margin-bottom:-.1em}.js .h2 .w>span{display:inline-block;transform:translateY(110%);transition:transform .9s var(--ease);transition-delay:calc(var(--i, 0) * 45ms + .12s)}.js .is-in .h2 .w>span,.js .h2.is-in .w>span{transform:none}}@media(prefers-reduced-motion:reduce){.scroll-progress{display:none}.hero .scene-frame,.hero .hero-copy{transform:none;opacity:1}}.workshop *{transform-box:view-box}.h-body{transform-origin:220px 470px;animation:breathe 5.5s ease-in-out infinite}.h-head{transform-origin:240px 250px;animation:observe 9s ease-in-out infinite}.h-arm{transform-origin:250px 300px;animation:reach 6s ease-in-out infinite}.h-blade{transform-origin:480px 300px;animation:snip 6s ease-in-out infinite}.h-leaf{transform-box:fill-box;transform-origin:center;animation:leaf-fall 6s ease-in infinite}.h-pixel,.f-pixel{opacity:0}.h-pixel{animation:pixel-fall 6s ease-in infinite}.h-code,.f-code{animation:type 6s cubic-bezier(.3,.7,.4,1) infinite both}.h-cursor,.f-cursor{animation:blink 1s steps(1) infinite}.h-pad{animation:sway 6.5s ease-in-out infinite}.h-sun{transform-origin:660px 128px;animation:float 10s ease-in-out infinite}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(1.6px)}}@keyframes observe{0%,to{transform:rotate(0)}45%,60%{transform:rotate(2.5deg)}}@keyframes reach{0%,25%{transform:rotate(-2deg)}40%,70%{transform:rotate(0)}85%,to{transform:rotate(-2deg)}}@keyframes snip{0%,46%{transform:rotate(0)}49%{transform:rotate(15deg)}52%{transform:rotate(0)}55%{transform:rotate(15deg)}58%,to{transform:rotate(0)}}@keyframes leaf-fall{0%,57%{opacity:0;transform:translate(0) rotate(0)}59%{opacity:1}71%{opacity:1;transform:translate(6px,62px) rotate(120deg)}74%,to{opacity:0;transform:translate(7px,72px) rotate(140deg)}}@keyframes pixel-fall{0%,71%{opacity:0;transform:translate(6px,62px)}74%,92%{opacity:1}to{opacity:0;transform:translate(calc(6px + var(--dx, 0px)),168px)}}@keyframes type{0%{transform:scaleX(0)}7%{transform:scaleX(1)}86%{transform:scaleX(1)}92%,to{transform:scaleX(0)}}@keyframes blink{50%{opacity:0}}@keyframes sway{0%,to{transform:rotate(-.8deg)}50%{transform:rotate(.8deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.wave-mark[data-astro-cid-4nrtcqra]{display:block;flex:none;object-fit:contain}.wave-mark--badge[data-astro-cid-4nrtcqra]{background:var(--ivory);border-radius:6px;padding:3px 4px;box-sizing:content-box}
