
:root{
  --bg:#0a0a0b;--pn:#101012;--tx:#ececee;--soft:#96969e;--mute:#5c5c64;
  --line:rgba(255,255,255,.1);--line2:rgba(255,255,255,.28);
  --p1:#7ef0d4;--p2:#8ab6ff;--p3:#c9a6ff;--p4:#ffb59e;
  --aur:linear-gradient(100deg,#7ef0d4 0%,#8ab6ff 38%,#c9a6ff 68%,#ffb59e 100%);
  --serif:'Playfair Display',serif;--sans:'Noto Sans JP',sans-serif;--mono:'IBM Plex Mono',monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--tx);font-size:15px;line-height:2;letter-spacing:.03em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:120px 120px}
body::after{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.4'/></svg>");opacity:.05;pointer-events:none;z-index:60}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:#fff;color:#0a0a0b}
:focus-visible{outline:1.5px solid #fff;outline-offset:4px}
.veil{position:fixed;inset:0;z-index:400;pointer-events:none}
.veil i{position:absolute;top:0;bottom:0;width:17.4%;background:#0a0a0b;transition:transform .95s cubic-bezier(.83,0,.17,1);will-change:transform}
.veil i::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--aur);box-shadow:0 0 20px rgba(138,182,255,.55)}
.veil i:nth-child(1){left:0}
.veil i:nth-child(2){left:16.55%}
.veil i:nth-child(3){left:33.1%}
.veil i:nth-child(4){left:49.65%}
.veil i:nth-child(5){left:66.2%}
.veil i:nth-child(6){left:82.75%}
body.first .veil i:nth-child(1){transition-delay:.05s}
body.first .veil i:nth-child(2){transition-delay:.14s}
body.first .veil i:nth-child(3){transition-delay:.23s}
body.first .veil i:nth-child(4){transition-delay:.32s}
body.first .veil i:nth-child(5){transition-delay:.41s}
body.first .veil i:nth-child(6){transition-delay:.5s}
.veil.fast i{transition-duration:.5s}
body.loaded .veil i{transform:translateY(-103%)}
.lm{display:block;overflow:hidden;padding-bottom:.18em;margin-bottom:-.18em}
.lmi{display:block;transform:translateY(125%);transition:transform 1.05s var(--ease)}
body.loaded .ld0{transition-delay:.42s}
body.loaded .ld1{transition-delay:.5s}
body.loaded .ld2{transition-delay:.62s}
body.loaded .ld3{transition-delay:.74s}
body.first .ld0{transition-delay:.95s}
body.first .ld1{transition-delay:1.05s}
body.first .ld2{transition-delay:1.17s}
body.first .ld3{transition-delay:1.29s}
body.first .d2{animation-delay:1.45s}
body.first .d3{animation-delay:1.65s}
body.loaded .hero .lmi,body.loaded .phead .lmi{transform:none}
.rv .lmi{transition-delay:.06s}
.rv.in .lmi{transform:none}
.wrap{max-width:1200px;margin:0 auto;position:relative;z-index:2}
section{position:relative;padding:clamp(90px,12vw,160px) 28px}

/* ---------- micro type ---------- */
.mc{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.22em;color:var(--soft);text-transform:uppercase}
.mc b{color:var(--tx);font-weight:500}
.mcj{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.2em;color:var(--soft)}
.mcj b{color:var(--tx)}
.cap .mcj{display:block;margin-bottom:3px}
.ov{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(13px,1.5vw,16px);color:var(--soft);letter-spacing:.06em;margin-bottom:12px}
.hj{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(25px,4.2vw,44px);letter-spacing:.14em;line-height:1.45}
.stm-hj{font-size:clamp(27px,4.8vw,52px);margin-top:20px}
.cta .hj{font-size:clamp(28px,5.6vw,58px)}
.cta .ov{margin-bottom:14px}
.thx .ov{margin-bottom:10px}
.rule{display:inline-block;width:26px;height:1px;background:var(--aur);vertical-align:middle;margin-right:14px}
.au{background:var(--aur);-webkit-background-clip:text;background-clip:text;color:transparent}
.glbg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
body.gl .hero .aurora{display:none}
.aurora{position:absolute;right:1%;top:22%;width:min(48vw,660px);aspect-ratio:1;pointer-events:none;z-index:0;opacity:.5;filter:blur(70px);
  background:
   radial-gradient(38% 34% at 30% 36%,rgba(126,240,212,.75),transparent 70%),
   radial-gradient(40% 36% at 66% 30%,rgba(138,182,255,.7),transparent 72%),
   radial-gradient(42% 40% at 58% 68%,rgba(201,166,255,.65),transparent 72%),
   radial-gradient(34% 30% at 30% 72%,rgba(255,181,158,.6),transparent 70%);
  animation:aurm 16s ease-in-out infinite alternate}
@keyframes aurm{to{transform:translate(-4%,4%) rotate(8deg) scale(1.06)}}

/* ---------- header ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s,border-color .35s;border-bottom:1px solid transparent}
.hdr.scrolled{background:rgba(10,10,11,.72);backdrop-filter:blur(14px);border-color:var(--line)}
.hdr-in{max-width:1360px;margin:0 auto;padding:20px 28px;display:flex;align-items:center;gap:44px}
.lg{display:flex;align-items:baseline;gap:10px;text-decoration:none;margin-right:auto}
.lg .wmk{display:block;height:17px;width:auto;color:var(--tx)}
.lg .wj{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--soft)}
.nav{display:flex;align-items:center;gap:34px}
.nav a{text-decoration:none;font-size:12.5px;font-weight:500;letter-spacing:.1em;color:var(--soft);transition:color .25s}
.nav a:hover,.nav a.on{color:var(--tx)}
.pill{border:1px solid var(--line2);border-radius:999px;padding:10px 22px;font-size:12px!important;color:var(--tx)!important;transition:background .25s,color .25s!important;display:inline-flex;align-items:center;gap:8px}
.pill:hover{background:#fff;color:#0a0a0b!important}
.pill .ar{font-family:var(--mono)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;z-index:210}
.burger span{width:22px;height:1.5px;background:var(--tx);transition:.3s}
.nav-scrim{position:fixed;inset:0;background:rgba(0,0,0,.65);opacity:0;visibility:hidden;transition:.3s;z-index:150}

/* ---------- hero ---------- */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:120px 28px 90px;overflow:hidden}
.hero .guide{position:absolute;right:-4%;top:2%;width:min(62vw,900px);opacity:.9;will-change:transform;z-index:1}
@keyframes drift{to{transform:translateY(26px)}}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(28px,4.5vw,64px);align-items:center;max-width:1200px;margin:0 auto;width:100%;position:relative;z-index:2}
.hero-top{min-width:0}
.hero-eb{display:block;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.22em;color:var(--soft);margin-bottom:16px}
.hero-top h1{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(27px,3.6vw,48px);letter-spacing:.12em;line-height:1.55}
.hen{font-family:var(--serif);font-style:italic;font-size:clamp(13.5px,1.7vw,18px);color:var(--soft);letter-spacing:.05em;margin-top:22px}
.hero-top .en i{font-style:italic}
.stage{position:relative;z-index:2;width:100%}
.frame{position:relative;border:1px solid rgba(255,255,255,.22);will-change:transform}
.frame::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--aur);z-index:4}
.frame-in{position:absolute;inset:0;background:var(--pn);overflow:hidden}
.frame{aspect-ratio:16/10.4}
.slide{position:absolute;inset:0;clip-path:inset(100% 0 0 0);z-index:1;pointer-events:none;will-change:clip-path,transform}
.slide.on{clip-path:inset(0 0 0 0);z-index:2;pointer-events:auto;transition:clip-path 1.15s var(--ease);animation:kb 6.5s var(--ease) .1s forwards}
.slide.prev{clip-path:inset(0 0 0 0);z-index:1}
@keyframes kb{from{transform:scale(1.045)}to{transform:scale(1)}}
.slide.shot{background-size:cover;background-position:center top;background-color:var(--pn)}
.shotw{position:absolute;inset:0;background-size:cover;background-position:center top;background-color:var(--pn)}
.sl-maeda{background:linear-gradient(140deg,#061128 0%,#0a2a5e 62%,#155eae 135%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:7% 9%}
.sl-maeda .gl{width:38px;height:2px;background:#c9a961;margin:0 auto 20px}
.sl-maeda b{font-family:'Noto Serif JP',serif;font-weight:600;color:#fff;font-size:clamp(17px,2.6vw,30px);letter-spacing:.16em;line-height:1.95}
.sl-maeda .mchart{position:absolute;right:7%;bottom:24%;width:32%;opacity:.9}
.sl-fen{background:#0b0d12;display:flex;align-items:center;justify-content:center}
.sl-fen::before{content:'';position:absolute;left:-10%;top:54%;width:120%;height:1.6px;background:linear-gradient(90deg,transparent,var(--p1) 26%,#fff 50%,var(--p3) 76%,transparent);transform:rotate(-8deg)}
.sl-fen b{position:relative;font-weight:900;color:#fff;font-size:clamp(34px,5.4vw,62px);letter-spacing:.12em}
.sl-fen .mc{position:absolute;left:8%;top:12%}
.cap{position:absolute;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 32px;
  background:rgba(8,8,10,.6);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:15px 22px}
.cap .mc{display:block;margin-bottom:6px}
.cap .nm{font-weight:900;font-size:16px;letter-spacing:.08em;line-height:1.5}
.cap .sol{font-size:11.5px;color:var(--soft);letter-spacing:.05em;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cap .view{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;color:var(--tx);text-decoration:none;white-space:nowrap}
.cap .view i{font-style:normal;width:6px;height:6px;border-radius:50%;background:linear-gradient(120deg,var(--p1),var(--p2) 45%,var(--p3));margin-left:auto;animation:blink 2.2s infinite}
@keyframes blink{50%{opacity:.25}}
.idx{position:absolute;right:14px;top:14px;z-index:5;font-family:var(--mono);font-size:11px;letter-spacing:.26em;color:var(--soft)}
.idx b{color:var(--tx);font-weight:500}
.hero-foot{position:relative;z-index:2;max-width:1200px;margin:64px auto 0;width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.news{font-size:12.5px;color:var(--soft);letter-spacing:.06em}
.news .mc{margin-right:16px}
.scr{font-family:var(--mono);font-size:11px;letter-spacing:.3em;color:var(--mute);display:inline-flex;align-items:center;gap:12px}
.scr::after{content:'';width:44px;height:1px;background:var(--aur);animation:scrl 2.4s var(--ease) infinite}
@keyframes scrl{0%{transform:scaleX(0);transform-origin:left}55%{transform:scaleX(1);transform-origin:left}56%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

/* ---------- statement ---------- */
.stm{border-top:1px solid var(--line)}
.stm .guide{position:absolute;left:-6%;bottom:-10%;width:min(50vw,700px);transform:scaleX(-1);opacity:.6}
.stm-in{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(40px,6vw,90px);align-items:center}
.stm .en{font-family:var(--serif);font-weight:500;font-size:clamp(40px,6.6vw,84px);line-height:1.12;letter-spacing:.01em;margin:22px 0 30px}
.stm .en i{font-style:italic}
.stm .jp{font-weight:700;font-size:clamp(14px,1.7vw,17px);letter-spacing:.08em;line-height:2.1}
.stm .jp .thin{font-weight:400;color:var(--soft);display:block;font-size:.72em;margin-top:16px;letter-spacing:.08em}
.rows{display:flex;flex-direction:column;gap:14px}
.row{display:flex;align-items:center;gap:18px;text-decoration:none;border:1px solid var(--line);background:rgba(255,255,255,.02);padding:24px 26px;transition:background .3s,border-color .3s}
.row:hover{background:rgba(255,255,255,.05);border-color:var(--line2)}
.row .t{font-weight:700;font-size:15px;letter-spacing:.1em}
.row .mc{margin-left:auto}
.row .dot{width:6px;height:6px;border-radius:50%;background:linear-gradient(120deg,var(--p1),var(--p2) 45%,var(--p3));animation:blink 2.2s infinite}

/* ---------- works ---------- */
.works{border-top:1px solid var(--line)}
.whead{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(40px,6vw,70px)}
.whead .en{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5vw,60px);letter-spacing:.01em}
.wrow{display:grid;grid-template-columns:.94fr 1.06fr;gap:clamp(26px,4vw,60px);align-items:center;padding:clamp(36px,5vw,60px) 0;border-top:1px solid var(--line);text-decoration:none;transition:background .35s}
.wrow:last-of-type{border-bottom:1px solid var(--line)}
.wrow:hover{background:rgba(255,255,255,.02)}
.wpanel{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line);will-change:transform}
.wpanel>div{position:absolute;inset:0;transition:transform .8s var(--ease)}
.wrow:hover .wpanel>div{transform:scale(1.035)}
.winfo .mc{display:block;margin-bottom:16px}
.winfo h3{font-weight:900;font-size:clamp(21px,2.6vw,30px);letter-spacing:.08em;margin-bottom:14px}
.winfo p{font-size:13.5px;color:var(--soft);line-height:2.1;max-width:460px}
.wtags{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 26px}
.wtag{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.12em;color:var(--soft);border:1px solid var(--line);padding:6px 13px}
.wlink{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.16em;color:var(--tx)}
.wlink::after{content:'→';transition:transform .3s var(--ease)}
.wrow:hover .wlink::after{transform:translateX(8px)}



/* ---------- pricing ---------- */
.prep{border:1px solid var(--line);border-left:2px solid var(--p4);padding:26px 30px;margin-bottom:clamp(44px,6vw,68px);display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 30px}
.prep .big{font-family:var(--serif);font-size:clamp(26px,4vw,40px)}
.prep .big .yen{font-size:.55em;margin-right:2px}
.prep p{font-size:12.5px;color:var(--soft);width:100%;letter-spacing:.05em}
.pr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:clamp(38px,5vw,56px)}
.pr{position:relative;border:1px solid var(--line);background:var(--card);padding:34px 30px 28px;display:flex;flex-direction:column}
.pr.feat{border-color:rgba(255,255,255,.24)}
.pr.feat::before{content:'';position:absolute;top:-1px;left:-1px;right:-1px;height:2px;background:var(--aur)}
.pr .ptag{position:absolute;top:-12px;right:18px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;background:#0a0a0b;border:1px solid var(--line2);padding:4px 12px}
.pr .mc{display:block;margin-bottom:16px}
.pr h3{font-weight:900;font-size:19px;letter-spacing:.1em;margin-bottom:6px}
.pr .sub{font-size:12px;color:var(--soft);letter-spacing:.06em;margin-bottom:20px;min-height:2.6em}
.pr .price{font-family:var(--serif);font-size:clamp(30px,3.2vw,38px);letter-spacing:.02em}
.pr .price .yen{font-size:.55em;margin-right:3px}
.pr .price .fr{font-size:.45em;color:var(--soft);margin-left:6px;font-family:var(--sans)}
.pr .per{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.14em;color:var(--soft);margin:6px 0 22px}
.pr ul{list-style:none;border-top:1px solid var(--line);margin-top:auto}
.pr li{font-size:12.5px;color:var(--soft);padding:11px 2px;border-bottom:1px solid var(--line);letter-spacing:.04em;line-height:1.8}
.pr li b{color:var(--tx)}
.opt{display:grid;grid-template-columns:1fr auto;gap:4px 26px;padding:20px 4px;border-top:1px solid var(--line);align-items:baseline}
.opt:last-of-type{border-bottom:1px solid var(--line)}
.opt h4{font-weight:700;font-size:15px;letter-spacing:.08em}
.opt p{grid-column:1;font-size:12px;color:var(--soft);letter-spacing:.04em}
.opt .pv{font-family:var(--serif);font-size:20px;white-space:nowrap}
.opt .pv .yen{font-size:.6em;margin-right:2px}
.pay{margin-top:clamp(44px,6vw,64px);border:1px solid var(--line);padding:28px 32px}
.pay h4{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.2em;color:var(--soft);margin-bottom:14px}
.pay p{font-size:13px;color:var(--soft);line-height:2.1;letter-spacing:.04em}
.pay p b{color:var(--tx)}
@media(max-width:920px){.pr-grid{grid-template-columns:1fr}.pr .sub{min-height:0}}



/* ---------- journey / values ---------- */
.tl{border-top:1px solid var(--line);margin-top:clamp(36px,5vw,52px)}
.tl-row{display:grid;grid-template-columns:150px 1fr;gap:14px 30px;padding:22px 4px;border-bottom:1px solid var(--line)}
.tl-row .mc{padding-top:4px}
.tl-row h4{font-weight:800;font-size:15.5px;letter-spacing:.08em;margin-bottom:6px}
.tl-row p{font-size:12.5px;color:var(--soft);line-height:1.95;max-width:560px}
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,32px);margin-top:clamp(36px,5vw,52px)}
.val{border:1px solid var(--line);background:var(--card);padding:26px 24px}
.val .mc{display:block;margin-bottom:12px}
.val h4{font-weight:800;font-size:15.5px;letter-spacing:.08em;margin-bottom:8px}
.val p{font-size:12px;color:var(--soft);line-height:2}
@media(max-width:920px){.tl-row{grid-template-columns:1fr;gap:4px}.vals{grid-template-columns:1fr}}

/* ---------- service ---------- */
.srv{border-top:1px solid var(--line)}
.srow{display:grid;grid-template-columns:150px 1fr auto;gap:clamp(20px,4vw,60px);align-items:center;padding:clamp(30px,4vw,44px) 6px;border-top:1px solid var(--line);transition:background .3s}
.srow:last-of-type{border-bottom:1px solid var(--line)}
.srow:hover{background:rgba(255,255,255,.025)}
.srow h3{font-weight:700;font-size:clamp(17px,2.2vw,22px);letter-spacing:.1em}
.srow p{font-size:13px;color:var(--soft);line-height:2;max-width:560px}
.srow .dot{width:6px;height:6px;border-radius:50%;background:linear-gradient(120deg,var(--p1),var(--p2) 45%,var(--p3));justify-self:end;animation:blink 2.2s infinite}

/* ---------- simulator（文章がUI） ---------- */
.sim{border-top:1px solid var(--line)}
.sim-line{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(21px,3.4vw,38px);letter-spacing:.1em;line-height:2.1;margin-top:clamp(28px,4vw,42px)}
.slot{font:inherit;color:var(--tx);background:none;border:0;border-bottom:2px solid;border-image:var(--aur) 1;cursor:pointer;padding:0 2px 3px;transition:opacity .2s}
.slot::after{content:' ▾';font-size:.5em;vertical-align:.34em;color:var(--soft)}
.slot:hover{opacity:.72}
.sim-total{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:clamp(22px,3.2vw,34px)}
.sim-num{font-family:var(--serif);font-size:clamp(34px,5vw,52px);background:var(--aur);-webkit-background-clip:text;background-clip:text;color:transparent}
.sim-num .fr{font-size:.4em;font-family:var(--sans);-webkit-text-fill-color:var(--soft);margin-left:6px}
.sim-go{margin-left:auto}
.sim-note{margin-top:18px;font-size:12px;color:var(--soft);letter-spacing:.05em;line-height:2}
.sim-note b{color:var(--tx)}
.sim-note a{color:var(--tx)}
.wiz{max-width:640px;margin:clamp(28px,4vw,44px) auto 0;position:relative;border:1px solid var(--line2);background:var(--card);padding:32px 30px 26px}
.wiz::before{content:'';position:absolute;top:-1px;left:-1px;right:-1px;height:2px;background:var(--aur)}
.wiz-prog{display:flex;align-items:flex-end;gap:7px;height:28px;margin-bottom:26px}
.wiz-prog i{width:24px;height:8px;background:rgba(255,255,255,.07);border:1px solid var(--line);transition:background .3s,border-color .3s}
.wiz-prog i:nth-child(2){margin-bottom:4px}
.wiz-prog i:nth-child(3){margin-bottom:8px}
.wiz-prog i:nth-child(4){margin-bottom:12px}
.wiz-prog i:nth-child(5){margin-bottom:16px}
.wiz-prog i.done{background:linear-gradient(120deg,var(--p1),var(--p2) 50%,var(--p3));border-color:transparent}
.wiz-prog i.cur{border-color:rgba(255,255,255,.55)}
.wiz-body{transition:opacity .3s,transform .3s var(--ease)}
.wiz-body.sw{opacity:0;transform:translateY(12px)}
.wiz-q{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(18px,2.5vw,23px);letter-spacing:.1em;margin-bottom:18px}
.wopt{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:1px solid var(--line);color:var(--tx);font:inherit;font-size:14px;font-weight:700;letter-spacing:.06em;padding:15px 18px;margin-top:10px;cursor:pointer;transition:background .2s,border-color .2s}
.wopt:hover{background:rgba(255,255,255,.05);border-color:var(--line2)}
.wopt .pv{font-family:var(--serif);font-size:14.5px;color:var(--soft);white-space:nowrap}
.wiz-back{margin-top:20px;background:none;border:0;color:var(--soft);font:inherit;font-size:12px;letter-spacing:.08em;cursor:pointer}
.wiz-back:hover{color:var(--tx)}
.wres{border-top:1px solid var(--line);margin-top:4px}
.wrow2{display:flex;justify-content:space-between;gap:16px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px;color:var(--soft)}
.wrow2 b{color:var(--tx);font-family:var(--serif);font-size:14px}
.wiz-note2{margin-top:14px;font-size:11.5px;color:var(--mute);line-height:1.9}
.wiz-btns{display:flex;align-items:center;gap:20px;margin-top:22px;flex-wrap:wrap}
.wiz-again{background:none;border:0;color:var(--soft);font:inherit;font-size:12.5px;letter-spacing:.06em;cursor:pointer}
.wiz-again:hover{color:var(--tx)}

/* ---------- why ---------- */
.why{border-top:1px solid var(--line)}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,5vw,64px);margin-top:clamp(44px,6vw,72px)}
.wy .mc{display:block;margin-bottom:20px}
.wy h3{font-weight:900;font-size:18px;letter-spacing:.08em;margin-bottom:14px;line-height:1.8}
.wy p{font-size:13px;color:var(--soft);line-height:2.1}
.honesty{margin-top:clamp(44px,6vw,72px);border:1px solid var(--line);border-left:2px solid var(--tx);padding:28px 32px;max-width:860px;font-size:13.5px;color:var(--soft);line-height:2.15}
.honesty b{color:var(--tx)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-top:clamp(44px,6vw,72px)}
.st{padding:clamp(26px,3.4vw,42px) 12px;text-align:center;border-left:1px solid var(--line)}
.st:first-child{border-left:0}
.st b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(28px,4vw,48px);line-height:1.2;background:var(--aur);-webkit-background-clip:text;background-clip:text;color:transparent}
.st span{display:block;margin-top:10px;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.14em;color:var(--soft)}

/* ---------- CTA ---------- */
.cta{text-align:center;border-top:1px solid var(--line);overflow:hidden}
.cta .guide{position:absolute;left:50%;top:-16%;transform:translateX(-50%);width:min(70vw,900px);opacity:.55}
.cta .en{font-family:var(--serif);font-weight:500;font-size:clamp(48px,10vw,128px);line-height:1.05;letter-spacing:.01em}
.cta .en i{font-style:italic}
.cta p{color:var(--soft);margin:26px auto 40px;max-width:480px;font-size:14px}
.pill.big{padding:16px 38px;font-size:13px!important;background:#fff;color:#0a0a0b!important;border-color:#fff}
.pill.big:hover{background:transparent;color:#fff!important}

/* ---------- page head ---------- */
.phead{position:relative;padding:clamp(170px,22vw,240px) 28px clamp(56px,8vw,90px);border-bottom:1px solid var(--line);overflow:hidden}
.phead .guide{position:absolute;right:-6%;top:-30%;width:min(56vw,760px);opacity:.7}
.phead h1{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(30px,5.4vw,54px);letter-spacing:.14em;line-height:1.4;margin-top:8px}
.phead .jp{margin-top:18px;font-weight:700;font-size:15px;letter-spacing:.14em}
.phead p{color:var(--soft);margin-top:12px;font-size:13.5px}

/* ---------- about ---------- */
.ab-in{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,90px);align-items:center}
.idp{aspect-ratio:4/5;border:1px solid var(--line);position:relative;overflow:hidden;background:var(--pn);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
.idp .imk{width:46%;color:#ececee}
.idp .iwm{width:74%;color:#ececee;margin-top:4px}
.idp .cw{font-family:var(--serif);font-weight:500;font-size:26px;letter-spacing:.04em}
.idp .mc{position:absolute;bottom:22px}
.idp::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px}
.ab-txt h2{font-weight:900;font-size:clamp(26px,3.4vw,38px);letter-spacing:.1em;margin:14px 0 6px}
.ab-txt .role{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--soft);margin-bottom:26px}
.ab-txt p{color:var(--soft);font-size:14px;line-height:2.2;margin-bottom:18px}
.ab-txt p b{color:var(--tx);font-weight:700}
.caps{border-top:1px solid var(--line)}
.skg{margin-top:38px}
.skg h3{font-family:var(--mono);font-size:11px;letter-spacing:.24em;color:var(--soft);text-transform:uppercase;margin-bottom:18px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--line);padding:10px 20px;font-size:13px;letter-spacing:.06em;transition:border-color .25s,background .25s}
.chip:hover{border-color:var(--line2);background:rgba(255,255,255,.03)}

/* ---------- contact ---------- */
.form{max-width:620px;margin:0 auto;display:grid;gap:24px}
.field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:10px}
.field .req{color:var(--tx);margin-left:10px}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line2);padding:12px 2px 14px;font:inherit;font-size:16px;color:var(--tx);transition:border-color .25s;border-radius:0}
.field input:focus,.field textarea:focus{outline:none;border-color:#fff}
.field textarea{min-height:140px;resize:vertical}
.form .pill.big{justify-self:start;cursor:pointer}
.hp{position:absolute!important;left:-9999px}
.alt{text-align:center;margin-top:40px;color:var(--soft);font-size:13.5px}
.alt a{color:var(--tx);font-weight:700}
.thx{max-width:600px;margin:0 auto;text-align:center}
.thx .en{font-family:var(--serif);font-weight:500;font-size:clamp(40px,8vw,76px);margin-bottom:16px}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:64px 28px 40px;position:relative;z-index:2}
.f-in{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.f-wm .fwmk{display:block;height:clamp(28px,4.2vw,42px);width:auto;color:var(--tx)}
.f-wm .wj{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--soft);margin-top:10px}
.f-nav{display:flex;gap:28px}
.f-nav a{text-decoration:none;font-size:12.5px;letter-spacing:.1em;color:var(--soft)}
.f-nav a:hover{color:var(--tx)}
.f-copy{width:100%;margin-top:34px;padding-top:24px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--mute);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- reveal / responsive ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease) var(--d,0s),transform 1s var(--ease) var(--d,0s)}
.rv.in{opacity:1;transform:none}
.fu{opacity:0}
body.loaded .fu{animation:fu 1.1s var(--ease) forwards}
.d1{animation-delay:.55s}.d2{animation-delay:.85s}.d3{animation-delay:1.05s}
@keyframes fu{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@media(max-width:920px){
  .stm-in,.ab-in{grid-template-columns:1fr}
  .wrow{grid-template-columns:1fr;gap:22px}
  .srow{grid-template-columns:1fr;gap:8px}
  .srow .dot{display:none}
  .why-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .st:nth-child(3){border-left:0}.st{border-top:1px solid var(--line)}.st:nth-child(-n+2){border-top:0}
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .hero-top h1{font-size:clamp(27px,7.4vw,38px)}
  .frame{aspect-ratio:4/4.6}
  .cap{grid-template-columns:1fr auto;gap:2px 18px;padding:13px 16px}
  .cap .cp2{display:none}
  .idp{max-width:320px;margin:0 auto}
  .aurora{opacity:.35;filter:blur(48px);width:70vw;right:-14%}
  .burger{display:flex}
  .nav{position:fixed;top:0;right:0;height:100dvh;width:min(82vw,320px);background:#0c0c0e;border-left:1px solid var(--line);flex-direction:column;align-items:flex-start;justify-content:center;gap:30px;padding:48px;transform:translateX(100%);transition:transform .45s var(--ease);z-index:200}
  .nav.open{transform:none}
  .nav a{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv,.fu{opacity:1;transform:none}
  .slide{clip-path:inset(0 0 0 0)!important}
  .lmi{transform:none!important}
  .veil{display:none!important}
}
