:root{--bg:#f8fafc;--ink:#0f1830;--muted:#475569;--surface:#fff;--accent:#1e3a8a;--on-accent:#fff;--rule:#0f18301f;--f:"IBM Plex Sans JP",sans-serif;--fl:"IBM Plex Sans JP",sans-serif;--hw:500;--cw:1320px;--artW:560px;--hs:1;--tx:1.12;--sp:1.4;--r:8px;--br:8px;--shadow:none;--heroH:100;--catchTop:14;--leadW:26em;--leadWt:500;--haloW:3px;--hs-lead:1;--band:#272b37;--rowband:#eceff2;--eg:24px;--lh:25.6px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--f);-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0;margin:0;font-size:16px;line-height:1.9}a{color:inherit}.wrap{max-width:var(--cw,1320px);margin:0 auto;padding:0 40px}.label{font-family:var(--fl);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:500}header{z-index:5;border-bottom:1px solid #0000;height:72px;transition:background .25s,border-color .25s;position:fixed;inset:0 0 auto}header .in{max-width:var(--cw,1320px);justify-content:space-between;align-items:center;height:100%;margin:0 auto;padding:0 40px;display:flex}header.solid{background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}body.hline header.solid{border-bottom-color:var(--rule)}.logo{font-family:var(--fl);letter-spacing:-.01em;align-items:center;font-size:22px;font-weight:600;text-decoration:none;display:inline-flex}.logo svg{height:var(--lh,26px);width:auto;display:block}footer .logo svg{height:calc(var(--lh,26px) * .8)}header nav{font-size:calc(14px * var(--tx));align-items:center;gap:32px;display:flex}header nav a{text-decoration:none}header nav a:not(.btn):hover{color:var(--muted)}.btn{border-radius:var(--br);height:48px;font-size:calc(15px * var(--tx));border:1px solid var(--accent);justify-content:center;align-items:center;gap:10px;padding:0 26px;font-weight:500;text-decoration:none;transition:background .2s,color .2s,opacity .2s;display:inline-flex}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover{opacity:.86}.btn.ghost{color:var(--ink);border-color:var(--rule);background:0 0}.btn.ghost:hover{border-color:var(--ink)}header nav .btn{height:40px;font-size:calc(13.5px * var(--tx));padding:0 18px}.hero{min-height:max(calc(var(--heroH,100) * 1svh),560px);flex-direction:column;display:flex;position:relative;overflow:hidden}.hero>canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hero:after{content:"";background:linear-gradient(transparent,var(--bg));opacity:0;pointer-events:none;height:22%;position:absolute;inset:auto 0 0}.copy{z-index:2;padding-top:calc(var(--catchTop,24) * 1vh + 20px);text-align:center;position:relative}body.cta-1 .hero .ctas .ghost,body.no-pick .pick{display:none}.entries{z-index:3;margin-top:auto;position:relative}.entries .lbl{color:var(--muted);letter-spacing:.06em;margin-bottom:12px;font-size:12.5px;display:none}.entries .list{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.entries a{color:var(--ink);align-items:center;gap:14px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:flex}.entries .txt{flex-direction:column;gap:2px;min-width:0;display:flex}.entries .n{font-family:var(--fl);letter-spacing:.14em;color:var(--muted);font-size:11.5px}.entries .t{font-size:calc(15px * var(--tx));word-break:auto-phrase;text-wrap:pretty;font-weight:500;line-height:1.6}.entries .s{color:var(--muted);font-size:12.5px;line-height:1.6}.entries a:hover .t{color:var(--accent)}.entries .mini{flex:none;width:48px;height:48px;display:none}.entries .ask,.entries .a:empty{display:none}body.ent-mini .entries .mini{display:block}body.no-entnum .entries .n,body.no-ents .entries .s{display:none}body.ent-a .entries{background:var(--band);color:#fff}body.ent-a .entries .list{max-width:max(var(--cw,1320px),1200px);grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto;padding:0 40px}@media (width>=1180px){body.ent-a .entries .t{white-space:nowrap}body.ent-a .entries a{grid-template-columns:48px var(--tw,auto);justify-content:center;display:grid}}body.ent-a .entries .ask{border-bottom:1px solid #ffffff2e;flex-wrap:wrap;grid-column:1/-1;align-items:baseline;gap:4px 16px;padding:22px 0 14px;display:flex}body.ent-a .entries .s{display:none}body.ent-a .entries .q{font-size:calc(16.5px * var(--tx));letter-spacing:.04em;font-weight:500}body.ent-a .entries .a{color:#ffffffb8;word-break:auto-phrase;font-size:12.5px}body.ent-a .entries a{color:#fff;border-left:1px solid #ffffff2e;justify-content:center;gap:14px;padding:18px 18px 22px}body.ent-a .entries .ask+a{border-left:0}body.ent-a.ask-c .entries .ask{justify-content:center}body.ent-a.sep-1 .entries .ask,body.ent-a.sep-2 .entries .ask,body.ent-a.sep-3 .entries .ask{border-bottom:0;padding-bottom:4px}body.ent-a.sep-1 .entries a,body.ent-a.sep-2 .entries a,body.ent-a.sep-3 .entries a{border-left:0;position:relative}body.ent-a.sep-3 .entries .list{gap:var(--eg,24px) 10px;padding-bottom:var(--eg,24px)}body.ent-a.sep-3 .entries a{border-radius:var(--r);background:#ffffff0d;gap:12px;padding:16px 14px}body.ent-a.sep-3 .entries a:hover{background:#ffffff1a}body.ent-a.sep-3 .entries .ask{padding:var(--eg,24px) 0 0}body.ent-a.sep-3 .entries .q{line-height:1.2}body.ent-a .entries a:hover{background:#ffffff0f}body.ent-a .entries a:hover .t{color:#fff}body.ent-a .entries .s,body.ent-a .entries .n{color:#ffffffad}.hero h1{font-weight:var(--hw);font-size:calc(clamp(26px,2.5vw,36px) * var(--hs) * var(--tx));letter-spacing:.1em;margin:0 0 34px;line-height:1.5}.hero .lead{font-weight:var(--leadWt,400);font-size:calc(15.5px * var(--hs-lead,1) * var(--tx));letter-spacing:.04em;color:var(--ink);max-width:48em;margin:-14px auto 34px;padding:0 16px;line-height:2}.copy:before{content:"";z-index:-1;left:50%;top:calc(var(--catchTop,14) * 1vh - 40px);width:min(980px,120vw);height:calc(100% - var(--catchTop,14) * 1vh + 80px);background:radial-gradient(closest-side,color-mix(in srgb,var(--bg) 88%,transparent),color-mix(in srgb,var(--bg) 60%,transparent) 60%,transparent);opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;transform:translate(-50%)}body.vc .copy{flex-direction:column;flex:1;justify-content:center;padding:72px 0 0;display:flex}body.vc .copy>:last-child{margin-bottom:0}.hero .btn.ghost{background:color-mix(in srgb,var(--bg) 80%,transparent)}.ctas{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}section.block{padding:calc(96px * var(--sp)) 0 0}.pick{grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none;display:grid}.pick a{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);height:100%;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;padding:22px 24px;text-decoration:none;transition:border-color .2s;display:flex}.pick a:hover{border-color:var(--ink)}.pick .t{font-size:calc(15.5px * var(--tx));font-weight:500;line-height:1.7}.pick .go{color:var(--muted);flex:none;font-size:14px}.svc{padding:calc(64px * var(--sp)) 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:64px;scroll-margin-top:72px;display:grid;position:relative}#services{padding-top:calc(16px * var(--sp))}.svc:first-of-type{margin-top:0}.svc#launch:before{content:"";background:var(--surface);box-shadow:0 0 0 100vmax var(--surface);clip-path:inset(0 -100vmax);z-index:-1;position:absolute;inset:0}body.div-2 .svc:nth-of-type(2n):before{content:"";background:var(--rowband);box-shadow:0 0 0 100vmax var(--rowband);clip-path:inset(0 -100vmax);z-index:-1;position:absolute;inset:0}.svc .art{min-height:calc(var(--artW,560px) / var(--artR,1.45));max-width:var(--artW,560px);order:2;place-self:stretch center;width:100%;position:relative}.svc .art canvas{aspect-ratio:1;height:auto;transform:translateY(calc(-50% + var(--dy,0px)));pointer-events:none;inset:50% 0 auto}.art canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.who{color:var(--muted);letter-spacing:.04em;margin:0 0 8px;font-size:14px}.svc h3{font-weight:var(--hw);font-size:calc(clamp(22px,2.2vw,30px) * var(--hs) * var(--tx));letter-spacing:.04em;margin:0 0 20px;line-height:1.5}.desc{font-size:calc(15.5px * var(--tx));margin:0 0 32px;line-height:2}.case{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);color:inherit;margin-bottom:28px;padding:20px 22px;text-decoration:none;transition:border-color .2s;display:block}.case:hover{border-color:var(--ink)}.case .k{color:var(--muted);margin-bottom:6px;font-size:12.5px}.case .k b{font-family:var(--fl);letter-spacing:.14em;margin-right:10px;font-weight:500}.case .h{font-size:calc(16.5px * var(--tx));margin-bottom:4px;font-weight:500;line-height:1.7}.case .s{font-size:calc(14px * var(--tx));color:var(--muted);line-height:1.9}.more{font-size:calc(14.5px * var(--tx));border-bottom:1px solid;align-items:center;gap:8px;padding-bottom:2px;font-weight:500;text-decoration:none;display:inline-flex}.more:hover{color:var(--muted)}.contact{margin-top:calc(24px * var(--sp));padding:calc(72px * var(--sp)) 0;text-align:center}.contact h2{font-weight:var(--hw);font-size:calc(clamp(22px,2.2vw,30px) * var(--hs) * var(--tx));letter-spacing:.05em;margin:12px 0 14px}.contact p{color:var(--muted);font-size:calc(15px * var(--tx));margin:0 0 32px}footer{background:color-mix(in srgb,var(--ink) 4%,var(--bg));color:var(--muted);padding:48px 0 120px;font-size:13px}footer .in{flex-wrap:wrap;justify-content:space-between;gap:32px;display:flex}footer .logo{color:var(--ink);font-size:18px}footer ul{flex-wrap:wrap;gap:28px;margin:0;padding:0;list-style:none;display:flex}footer a{text-decoration:none}footer a:hover{color:var(--ink)}footer .co{margin-top:10px;line-height:1.8}body.fx .reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(14px)}body.fx .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){body.fx .reveal{opacity:1;transition:none;transform:none}}.panel{z-index:10;color:#1c1c1c;background:#fffffff7;border:1px solid #e2e2e2;border-radius:12px;width:328px;max-width:calc(100vw - 28px);padding:6px 12px 14px;font:12.5px/1.45 Noto Sans JP,system-ui,sans-serif;position:fixed;top:84px;bottom:14px;right:14px;overflow:auto;box-shadow:0 12px 32px -18px #0006}.panel .top{background:#fffffff7;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 0;font-size:13px;font-weight:700;display:flex;position:sticky;top:-6px}.panel details{border-bottom:1px solid #eee;padding:4px 0}.panel summary{cursor:pointer;padding:6px 0;font-weight:700;list-style:none}.panel summary:before{content:"▸ ";color:#999}.panel details[open] summary:before{content:"▾ "}.panel .row{grid-template-columns:104px minmax(0,1fr);align-items:center;gap:8px;padding:3px 0;display:grid}.panel .row>span{color:#444}.panel .ctl{align-items:center;gap:4px;min-width:0;display:flex}.panel select{font:inherit;flex:1;min-width:0}.panel input[type=range]{flex:1;min-width:0}.panel input[type=text]{font:inherit;border:1px solid #ddd;border-radius:6px;flex:1;min-width:0;padding:3px 6px}.panel output{text-align:right;color:#555;width:3.4em;font:11px JetBrains Mono,monospace}.panel button{font:inherit;color:#1c1c1c;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e2e2;border-radius:7px;padding:3px 9px}.panel button.on{color:#fff;background:#1c1c1c;border-color:#1c1c1c}.panel .acts{flex-wrap:wrap;gap:6px;padding:8px 0 2px;display:flex}.panel .x{color:#888;background:0 0;border:0;font-size:15px}.opener{z-index:10;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:999px;padding:8px 14px;font:12.5px Noto Sans JP,sans-serif;display:none;position:fixed;bottom:14px;right:14px;box-shadow:0 8px 20px -12px #0006}@media (width<=860px){header .in,.wrap{padding:0 16px}header nav a:not(.btn){display:none}.pick,.entries .list{grid-template-columns:1fr}body.ent-a .entries .list,body.ent-b .entries .list,body.ent-d .entries{padding:0 16px}body.ent-a .entries .list{grid-template-columns:1fr}body.ent-a .entries .ask{border-bottom:0;padding:18px 0 10px}body.ent-a .entries a{border-top:1px solid #ffffff2e;border-left:0;justify-content:flex-start;padding:12px 0}.svc{grid-template-columns:1fr;gap:28px}.svc .art{order:0;max-width:360px}}
