:root{--sumi:#0e1311;--washi:#f5f2ea;--matsu:#1f4d3f;--wakaba:#c8f169;--shu:#f0532d;--ishi:#646a61;--ishi-dark:#9aa096;--line:#0e13111a;--line-dark:#f5f2ea1a;--surface:#fff;--surface-dark:#161c19;--font-display:"Sora", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-jp:"Noto Sans JP", sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--wrap:1200px;--gutter:clamp(16px, 4vw, 40px)}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--washi);color:var(--sumi);font:400 16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--matsu);outline-offset:3px;border-radius:6px}::selection{background:var(--wakaba);color:var(--sumi)}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.jp{font-family:var(--font-jp);font-weight:700}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;font-weight:600;line-height:1.05}h2{font-size:clamp(34px,5vw,60px)}.eyebrow{font:600 12px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ishi);align-items:center;gap:10px;display:inline-flex}.eyebrow .jp{color:var(--shu);letter-spacing:0;font-size:13px}.lead{color:var(--ishi);max-width:56ch;font-size:clamp(16px,1.6vw,18px)}.btn{height:48px;font:600 15px/1 var(--font-body);white-space:nowrap;transition:transform .16s var(--ease-out), background-color .2s ease, box-shadow .2s ease;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--sumi);color:var(--washi)}.btn-cta{background:var(--shu);color:var(--sumi)}.btn-ghost{box-shadow:inset 0 0 0 1px var(--line);background:0 0}.btn-ghost-dark{color:var(--washi);background:0 0;box-shadow:inset 0 0 0 1px #f5f2ea38}.btn .arrow{transition:transform .2s var(--ease-out)}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--matsu)}.btn-ghost:hover{box-shadow:inset 0 0 0 1px #0e131159}.btn-ghost-dark:hover{box-shadow:inset 0 0 0 1px #f5f2ea80}.btn:hover .arrow{transform:translate(3px)}}.nav{z-index:50;transition:background-color .25s,box-shadow .25s;position:fixed;inset:0 0 auto}.nav[data-scrolled=true]{-webkit-backdrop-filter:blur(18px)saturate(160%);box-shadow:0 1px 0 var(--line);background:#f5f2eab8}.nav[data-scrolled=true][data-tone=on-dark]{box-shadow:0 1px 0 var(--line-dark);background:#0e1311b8}.nav[data-tone=on-dark] .nav-links a{color:var(--ishi-dark)}.nav[data-tone=on-dark] .btn-primary{background:var(--washi);color:var(--sumi)}@media (hover:hover) and (pointer:fine){.nav[data-tone=on-dark] .nav-links a:hover{color:var(--washi)}.nav[data-tone=on-dark] .btn-primary:hover{background:var(--wakaba)}}.nav-inner{justify-content:space-between;align-items:center;gap:24px;height:72px;display:flex}.nav-logo{color:var(--sumi);display:inline-flex}.nav-logo svg{width:auto;height:32px}.nav-links{gap:28px;padding:0;list-style:none;display:flex}.nav-links a{color:var(--ishi);font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}@media (hover:hover) and (pointer:fine){.nav-links a:hover{color:var(--sumi)}}.nav .btn{height:40px;padding:0 18px;font-size:14px}@media (width<=860px){.nav-links{display:none}}.hero{padding:140px 0 72px;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1.05fr 1fr;align-items:center;gap:48px;display:grid}.hero h1{margin:22px 0;font-size:clamp(44px,7.2vw,92px)}.hero h1 .word{white-space:pre;display:inline-block}.hero h1 em{color:var(--matsu);font-style:normal}.hero h1 .mark-dot{color:var(--shu)}.hero .actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.hero-kanji{pointer-events:none;-webkit-user-select:none;user-select:none;font:700 26vw/1 var(--font-jp);color:#1f4d3f0b;position:absolute;bottom:-4vw;right:-2vw}.hero-meta{flex-wrap:wrap;gap:28px;margin-top:44px;display:flex}.hero-meta div{color:var(--ishi);font-size:13px}.hero-meta b{font:600 26px/1.1 var(--font-display);color:var(--sumi);letter-spacing:-.02em;display:block}.hero-visual{aspect-ratio:1/.92;position:relative}.hero-curve{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hero-card{background:#fff;border-radius:14px;width:74%;position:absolute;overflow:hidden;box-shadow:0 30px 60px -20px #0e131159,0 0 0 1px #0e13110f}.hero-card .bar{background:#ece8de;align-items:center;gap:5px;height:22px;padding:0 10px;display:flex}.hero-card .bar i{background:#0e13112e;border-radius:50%;width:7px;height:7px}.hero-card img{aspect-ratio:1536/639;object-fit:cover;width:100%}@media (width<=900px){.hero{padding-top:112px}.hero-grid{grid-template-columns:1fr}.hero-visual{width:100%;max-width:560px;margin:0 auto}}.marquee{border-block:1px solid var(--line);background:var(--washi);padding:18px 0;overflow:hidden}.marquee-track{width:max-content;animation:38s linear infinite marquee;display:flex}.marquee-track span{font:600 clamp(18px, 2.2vw, 26px)/1 var(--font-display);letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:28px;padding-right:28px;display:inline-flex}.marquee-track span:after{content:"";background:var(--wakaba);width:9px;height:9px;box-shadow:0 0 0 3px var(--matsu);border-radius:50%}@keyframes marquee{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.marquee-track{animation-duration:160s}}@media (width<=480px){.nav-logo svg{height:26px}.nav .btn{padding:0 14px;font-size:13px}.nav .btn .long{display:none}}.showcase{background:var(--sumi);color:var(--washi);padding:40px 0 32px;overflow:hidden}.showcase-band{height:clamp(460px,62vw,680px)}.showcase-copy{z-index:1;text-align:center;padding:56px var(--gutter) 0;position:relative}.showcase-copy h2{letter-spacing:-.04em;font-size:clamp(34px,5.4vw,68px);font-weight:500}.showcase-copy p{color:var(--ishi-dark);margin-top:14px}.show-kicker{text-align:center;color:var(--ishi-dark);margin-top:40px;font-size:clamp(15px,1.6vw,18px)}.stats{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:900px;margin:40px auto 0;display:grid}.stat b{font:500 clamp(40px, 6vw, 68px)/1 var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;display:block}.stat span{color:var(--ishi-dark);margin-top:12px;font-size:14px;display:block}@media (width<=760px){.showcase-band{height:400px}.stats{grid-template-columns:1fr;gap:32px}}.caps{background:#fff;padding:128px 0 120px;overflow:hidden}.caps-head{text-align:center;flex-direction:column;align-items:center;display:flex}.caps-head h2{letter-spacing:-.04em;font-weight:500}.caps-head .lead{text-align:center;margin:16px auto 0}.caps-tabs{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:36px;display:flex}.caps-tab{height:40px;color:var(--ishi);background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:14px;font-weight:500;transition:color .2s;position:relative}.caps-tab[aria-selected=true]{color:var(--sumi)}.caps-pill{background:#eeebe3;border-radius:999px;position:absolute;inset:0}.caps-tab span{position:relative}@media (hover:hover) and (pointer:fine){.caps-tab:hover{color:var(--sumi)}}.caps-viewport{touch-action:pan-y;margin-top:48px;overflow:hidden}.caps-track{cursor:grab;width:max-content;display:flex}.caps-track:active{cursor:grabbing}.caps-slide{aspect-ratio:16/9;width:62vw;color:var(--washi);-webkit-user-select:none;user-select:none;border-radius:16px;flex:none;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.caps-slide[aria-hidden=true]{cursor:pointer}.caps-slide[aria-hidden=true] .caps-copy,.caps-slide[aria-hidden=true] .caps-next{opacity:0}.caps-copy{max-width:360px;transition:opacity .3s var(--ease-out);z-index:1;position:absolute;top:26px;left:28px}.caps-copy h3{font:500 clamp(20px, 2.4vw, 30px)/1.15 var(--font-display);letter-spacing:-.02em}.caps-copy p{color:#f5f2eacc;margin-top:8px;font-size:14px}.caps-frame{border-radius:10px;width:62%;margin-top:12%;overflow:hidden;box-shadow:0 30px 70px -20px #0009}.caps-frame img{aspect-ratio:1536/639;object-fit:cover;pointer-events:none;width:100%}.caps-next{width:44px;height:44px;color:var(--washi);transition:opacity .3s var(--ease-out), transform .16s var(--ease-out), background-color .2s ease;background:#f5f2ea1f;border:0;border-radius:50%;font-size:18px;position:absolute;bottom:20px;right:22px}.caps-next:active{transform:scale(.94)}@media (hover:hover) and (pointer:fine){.caps-next:hover{background:#f5f2ea38}}.caps-controls{justify-content:center;align-items:center;margin-top:28px;display:flex;position:relative}.caps-dots{align-items:center;gap:8px;display:flex}.caps-dot{width:8px;height:8px;transition:width .3s var(--ease-out);background:#d5d1c7;border:0;border-radius:999px;padding:0;position:relative;overflow:hidden}.caps-dot[data-active=true]{width:44px}.caps-dot-fill{background:var(--sumi);transform-origin:0;position:absolute;inset:0}.caps-pause{right:var(--gutter);width:36px;height:36px;box-shadow:inset 0 0 0 1px var(--line);background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute}.caps-pause svg{width:14px;height:14px}@media (width<=700px){.caps-slide{aspect-ratio:4/5;align-items:flex-end;width:86vw;padding-bottom:72px}.caps-frame{width:88%;margin-top:0}.caps-copy{top:22px;left:20px;right:20px}}.work{background:var(--sumi);color:var(--washi);padding:120px 0 128px;position:relative}.work .eyebrow{color:var(--ishi-dark)}.work-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:32px;display:flex}.work-head p{color:var(--ishi-dark);max-width:46ch;margin-top:16px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:48px 0 40px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--ishi-dark);height:38px;box-shadow:inset 0 0 0 1px var(--line-dark);background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:14px;font-weight:500;transition:color .2s;position:relative}.chip[aria-pressed=true]{color:var(--sumi);box-shadow:none}.chip .pill{background:var(--wakaba);z-index:0;border-radius:999px;position:absolute;inset:0}.chip span{z-index:1;position:relative}.chip sup{opacity:.7;margin-left:4px;font-size:10px}@media (hover:hover) and (pointer:fine){.chip:not([aria-pressed=true]):hover{color:var(--washi)}}.pause{color:var(--ishi-dark);background:0 0;border:0;align-items:center;gap:8px;height:38px;padding:0 4px;font-size:13px;display:inline-flex}.pause svg{width:14px;height:14px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 40px;display:grid}.card{padding-top:48px;position:relative}.card-num{z-index:0;pointer-events:none;font:700 clamp(96px, 11vw, 150px)/1 var(--font-display);letter-spacing:-.06em;color:#0000;-webkit-text-stroke:1px #f5f2ea24;position:absolute;top:-18px;left:-6px}.card-btn{z-index:1;text-align:left;width:100%;color:inherit;background:0 0;border:0;padding:0;display:block;position:relative}.frame{box-shadow:0 0 0 1px var(--line-dark), 0 40px 80px -40px #000c;background:#0a0d0c;border-radius:14px;overflow:hidden}.frame-bar{background:#1b211e;align-items:center;gap:6px;height:28px;padding:0 12px;display:flex}.frame-bar i{background:#f5f2ea2e;border-radius:50%;width:8px;height:8px}.frame-bar span{background:#f5f2ea12;border-radius:999px;flex:1;max-width:220px;height:14px;margin-left:10px}.viewport{aspect-ratio:1536/639;position:relative;overflow:hidden}.stack{will-change:transform;flex-direction:column;display:flex}.stack img{aspect-ratio:1536/639;object-fit:cover;width:100%}.stack[data-play=true]{animation:browse 13s var(--ease-in-out) infinite}@keyframes browse{0%,20%{transform:translateY(0)}30%,52%{transform:translateY(-33.3333%)}62%,86%{transform:translateY(-66.6666%)}96%,to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.stack[data-play=true]{animation:none}}.card-meta{justify-content:space-between;align-items:start;gap:16px;margin-top:18px;display:flex}.card-meta h3{letter-spacing:-.02em;font-size:20px}.card-meta p{color:var(--ishi-dark);margin-top:4px;font-size:14px}.tags{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tag{box-shadow:inset 0 0 0 1px var(--line-dark);color:var(--ishi-dark);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px}.card-open{z-index:2;pointer-events:none;-webkit-backdrop-filter:blur(10px);height:32px;color:var(--washi);opacity:0;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);background:#0e1311b8;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:62px;right:14px;transform:translateY(-4px)}@media (hover:hover) and (pointer:fine){.card-btn:hover .card-open{opacity:1;transform:translateY(0)}.card-btn .frame{transition:transform .3s var(--ease-out)}.card-btn:hover .frame{transform:translateY(-4px)}}.card-btn:active .frame{transform:scale(.99)}@media (width<=820px){.grid{grid-template-columns:1fr;gap:56px}}@media (width<=560px){.card-meta{flex-direction:column;gap:12px}.tags{justify-content:flex-start}.hero-meta{gap:20px 28px}}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(6px);background:#080a09b8;position:fixed;inset:0}.modal-wrap{z-index:81;pointer-events:none;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{pointer-events:auto;background:var(--surface-dark);width:min(1100px,100%);max-height:calc(100dvh - 48px);color:var(--washi);box-shadow:0 0 0 1px var(--line-dark), 0 60px 120px -40px #000000e6;overscroll-behavior:contain;border-radius:24px;overflow:auto}.modal-head{z-index:2;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-dark);background:#161c19db;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex;position:sticky;top:0}.modal-head .eyebrow{color:var(--ishi-dark)}.close{width:40px;height:40px;transition:transform .16s var(--ease-out), background-color .2s ease;background:#f5f2ea14;border:0;border-radius:50%;place-items:center;display:grid}.close:active{transform:scale(.94)}@media (hover:hover) and (pointer:fine){.close:hover{background:#f5f2ea29}}.modal-body{grid-template-columns:1.6fr 1fr;gap:32px;padding:28px 24px 32px;display:grid}.modal-shots{gap:14px;display:grid}.modal-shots .frame img{aspect-ratio:1536/639;object-fit:cover;width:100%}.modal-info h3{margin-bottom:14px;font-size:clamp(26px,3vw,34px)}.modal-info p{color:var(--ishi-dark)}.modal-info h4{font:600 12px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ishi-dark);margin:28px 0 12px}.modal-info ul{gap:10px;padding:0;list-style:none;display:grid}.modal-info li{align-items:start;gap:10px;display:flex}.modal-info li:before{content:"";background:var(--wakaba);border-radius:50%;flex:none;width:8px;height:8px;margin-top:8px}.modal-info .tags{justify-content:flex-start}.modal-note{color:var(--ishi-dark);background:#f5f2ea0a;border-radius:12px;margin-top:28px;padding:12px 14px;font-size:13px}@media (width<=860px){.modal-body{grid-template-columns:1fr}.modal-wrap{padding:12px}}.services{padding:128px 0}.services-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:56px;display:grid}.service{background:var(--surface);border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--line);flex-direction:column;gap:14px;min-height:270px;padding:28px 24px 26px;display:flex}.service .ico{background:var(--matsu);width:44px;height:44px;color:var(--wakaba);border-radius:13px;place-items:center;display:grid}.service .ico svg{width:22px;height:22px}.service h3{letter-spacing:-.02em;font-size:20px}.service p{color:var(--ishi);font-size:15px}.service .count{color:var(--ishi);border-top:1px solid var(--line);justify-content:space-between;margin-top:auto;padding-top:14px;font-size:12px;display:flex}.service .count b{color:var(--sumi);font-weight:600}@media (width<=1000px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.services-grid{grid-template-columns:1fr}.service{min-height:0}}.micro{padding:0 0 128px}.micro-panel{border-radius:var(--radius-lg);background:var(--sumi);color:var(--washi);overflow:hidden}.micro-head{border-bottom:1px solid var(--line-dark);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;display:flex}.micro-head .lib{align-items:center;gap:14px;display:flex}.micro-head .lib svg{width:40px;height:40px}.micro-head small{color:var(--ishi-dark);font-size:12px;display:block}.micro-head b{font:600 17px var(--font-display);letter-spacing:-.01em}.micro-head p{color:var(--ishi-dark);font-size:14px}.demos{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:26px;display:grid}.demo{background:var(--washi);color:var(--sumi);border-radius:var(--radius-md);flex-direction:column;min-height:240px;display:flex}.demo-stage{flex:1;place-items:center;padding:28px 16px;display:grid}.demo-cap{border-top:1px solid var(--line);color:var(--ishi);justify-content:space-between;gap:12px;padding:14px 18px;font-size:13px;display:flex}.demo-cap b{color:var(--sumi);font-weight:600}@media (width<=900px){.demos{grid-template-columns:1fr}}.send{background:var(--sumi);height:48px;color:var(--washi);font:600 15px/1 var(--font-body);border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;display:inline-flex;position:relative;overflow:hidden}.send[data-state=done]{background:var(--matsu);color:var(--wakaba)}.send-label{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid #f5f2ea40;border-top-color:var(--washi);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.switch{background:#d9d4c7;border:0;border-radius:999px;width:64px;height:36px;padding:4px;transition:background-color .25s;display:flex}.switch[aria-checked=true]{background:var(--matsu);justify-content:flex-end}.knob{background:#fff;border-radius:50%;width:28px;height:28px;box-shadow:0 2px 6px #0e131140}.switch-row{align-items:center;gap:14px;font-weight:500;display:flex}.like{height:48px;box-shadow:0 0 0 1px var(--line);transition:transform .16s var(--ease-out);background:#fff;border:0;border-radius:999px;align-items:center;gap:10px;padding:0 20px 0 16px;font-weight:600;display:inline-flex}.like:active{transform:scale(.97)}.like svg{width:22px;height:22px;overflow:visible}.like .num{font-variant-numeric:tabular-nums;min-width:2.2ch;height:22px;display:inline-grid;overflow:hidden}.like .num span{grid-area:1/1;line-height:22px}.process{background:var(--surface);border-block:1px solid var(--line);padding:128px 0;overflow:hidden}.process-curve{width:100%;height:auto;margin-top:40px;overflow:visible}.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:8px;display:grid}.step .k{font:700 28px/1 var(--font-jp);color:var(--matsu)}.step h3{letter-spacing:-.02em;margin:14px 0 8px;font-size:20px}.step p{color:var(--ishi);font-size:15px}.step small{letter-spacing:.12em;text-transform:uppercase;color:var(--shu);margin-top:12px;font-size:12px;font-weight:600;display:block}@media (width<=900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.steps{grid-template-columns:1fr}}.contact{color:var(--washi);background:#050706;padding:40px 0;position:relative;overflow:hidden}.contact-stage{min-height:min(92vh,860px);padding:80px var(--gutter);place-items:center;display:grid;position:relative}.sphere{width:min(860px,120vw);height:min(860px,120vw);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contact-copy{z-index:1;text-align:center;flex-direction:column;align-items:center;max-width:820px;display:flex;position:relative}.contact-copy .eyebrow{color:var(--ishi-dark)}.contact h2{letter-spacing:-.04em;text-shadow:0 2px 30px #050706cc;margin-top:18px;font-size:clamp(44px,7.4vw,96px);font-weight:500}.contact h2 em{color:var(--wakaba);font-style:normal}.contact .lead{color:#c9ccc4;text-shadow:0 1px 16px #050706e6;margin-top:22px}.contact .actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.btn-light{background:var(--washi);color:var(--sumi);letter-spacing:.04em;text-transform:uppercase;border-radius:6px;height:56px;padding:0 30px;font-size:14px}@media (hover:hover) and (pointer:fine){.btn-light:hover{background:var(--wakaba)}}.footer{border-top:1px solid var(--line-dark);color:var(--ishi-dark);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding-top:28px;font-size:14px;display:flex}.footer svg{width:auto;height:26px;color:var(--washi)}.footer-links{flex-wrap:wrap;gap:18px;display:flex}.btn-tall{letter-spacing:.04em;text-transform:uppercase;border-radius:6px;height:56px;padding:0 26px;font-size:14px}.contact-direct{color:var(--ishi-dark);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;font-size:14px;display:flex}.contact-direct a{color:#c9ccc4;text-decoration:none}@media (hover:hover) and (pointer:fine){.contact-direct a:hover,.footer a:hover{color:var(--wakaba)}}.footer a{text-decoration:none}
