:root{
  --bg:#07080c;--bg-2:#0d0f15;--bg-3:#14171f;
  --ink:#f3f4f7;--ink-2:#a3a8b4;--ink-3:#6b717e;
  --line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);
  --red:#ff2a3d;--red-d:#d4142a;--gold:#f5c46b;
  --grad:linear-gradient(135deg,#ff2a3d 0%,#ff6a3d 100%);
  --radius:4px;--max:1200px;
  --en:"Bebas Neue","Oswald",Impact,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:80px 80px;mask-image:radial-gradient(ellipse at 50% 0%,#000 10%,transparent 70%);opacity:.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
::selection{background:var(--red);color:#fff}

/* ===== Header ===== */
.header{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .35s,border-color .35s,backdrop-filter .35s;border-bottom:1px solid transparent}
.header.scrolled{background:rgba(7,8,12,.78);backdrop-filter:blur(14px) saturate(140%);border-color:var(--line)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:50px;height:50px;filter:drop-shadow(0 0 8px rgba(255,255,255,.45))}
.brand span{font-family:"Rajdhani","Segoe UI",Arial,sans-serif;font-weight:700;font-size:1.7rem;letter-spacing:.03em;line-height:1;display:inline-block;height:1.1em;white-space:nowrap;transition:opacity .25s}
.js .brand span{opacity:0}
.js.fonts-ok .brand span{opacity:1}
.brand span b{color:var(--red);font-weight:400}
.nav{display:flex;align-items:center;gap:34px}
.nav a{position:relative;font-size:.9rem;font-weight:500;color:var(--ink-2);transition:color .25s;display:flex;flex-direction:column;align-items:center;line-height:1.3}
.nav a small{font-family:var(--en);font-size:.72rem;letter-spacing:.18em;color:var(--ink-3);transition:color .25s}
.nav a::after{content:"";position:absolute;left:50%;bottom:-10px;width:0;height:2px;background:var(--red);transition:.3s;transform:translateX(-50%)}
.nav a:hover,.nav a.active{color:var(--ink)}
.nav a:hover small,.nav a.active small{color:var(--red)}
.nav a.active::after,.nav a:hover::after{width:100%}
.nav .nav-cta{padding:10px 22px;border:1px solid var(--red);color:var(--ink);flex-direction:row;gap:8px;font-size:.85rem;transition:.25s}
.nav .nav-cta:hover{background:var(--red)}
.nav .nav-cta::after{display:none}
.menu-btn{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative;z-index:60}
.menu-btn span{display:block;width:26px;height:2px;background:var(--ink);margin:6px auto;transition:.3s}
.menu-btn.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:0;background:rgba(7,8,12,.97);flex-direction:column;justify-content:center;gap:28px;opacity:0;visibility:hidden;transition:.35s}
  .nav.open{opacity:1;visibility:visible}
  .nav a{font-size:1.15rem}
  .nav a small{font-size:.9rem}
}

/* ===== Buttons ===== */
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;padding:18px 40px;background:var(--red);color:#fff;font-weight:700;letter-spacing:.08em;font-size:.95rem;overflow:hidden;transition:.3s;border:0;cursor:pointer;clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%)}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-100%);transition:.6s}
.btn:hover{box-shadow:0 0 40px rgba(255,42,61,.55)}
.btn:hover::before{transform:translateX(100%)}
.btn .arrow{display:inline-block;width:26px;height:1px;background:currentColor;position:relative;transition:width .3s}
.btn .arrow::after{content:"";position:absolute;right:0;top:-4px;width:9px;height:9px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover .arrow{width:38px}
.btn-ghost{background:transparent;border:1px solid var(--line-2);clip-path:none}
.btn-ghost:hover{border-color:var(--red);background:rgba(255,42,61,.08)}

/* ===== Hero ===== */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;background:url(../images/hero.jpg) center/cover no-repeat;transform:scale(1.08);animation:heroZoom 20s ease-out forwards;z-index:-2}
@keyframes heroZoom{to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(7,8,12,.96) 0%,rgba(7,8,12,.82) 38%,rgba(7,8,12,.35) 70%,rgba(7,8,12,.55) 100%),
             linear-gradient(0deg,var(--bg) 0%,transparent 30%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);pointer-events:none}
.hero .container{width:100%;padding-top:76px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--en);letter-spacing:.35em;color:var(--red);font-size:1rem;margin-bottom:22px}
.hero-eyebrow::before{content:"";width:48px;height:1px;background:var(--red)}
.hero h1{font-size:clamp(3rem,8.5vw,6.6rem);font-weight:900;line-height:1.08;letter-spacing:.02em;margin-bottom:8px}
.hero h1 .stroke{display:block;font-family:var(--en);font-weight:400;font-size:.62em;letter-spacing:.06em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55);margin-top:6px}
.hero p{font-size:clamp(1rem,1.8vw,1.2rem);max-width:620px;margin:28px 0 44px;color:#d9dce3}
.hero p strong{color:#fff;background:linear-gradient(transparent 62%,rgba(255,42,61,.55) 62%)}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.hero-anim>*{opacity:0;transform:translateY(30px);animation:up .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero-anim>*:nth-child(2){animation-delay:.15s}.hero-anim>*:nth-child(3){animation-delay:.3s}.hero-anim>*:nth-child(4){animation-delay:.45s}
@keyframes up{to{opacity:1;transform:none}}
.scroll-ind{position:absolute;left:24px;bottom:36px;display:flex;align-items:center;gap:14px;font-family:var(--en);letter-spacing:.3em;font-size:.8rem;color:var(--ink-3);writing-mode:vertical-rl}
.scroll-ind::after{content:"";width:1px;height:70px;background:linear-gradient(var(--red),transparent);animation:scrollLine 2s infinite}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:900px){.scroll-ind{display:none}}

/* ===== Sections ===== */
section{padding:130px 0;position:relative;overflow:hidden}
.sec-head{margin-bottom:64px;position:relative}
.sec-head .num{font-family:var(--en);font-size:1rem;letter-spacing:.3em;color:var(--red);display:flex;align-items:center;gap:14px;margin-bottom:10px}
.sec-head .num::after{content:"";width:60px;height:1px;background:var(--red)}
.sec-head h2{font-family:var(--en);font-weight:400;font-size:clamp(3rem,7vw,5.2rem);line-height:.95;letter-spacing:.04em}
.sec-head p{color:var(--ink-2);font-weight:500;margin-top:10px;letter-spacing:.1em}
.sec-head.center{text-align:center}.sec-head.center .num{justify-content:center}.sec-head.center .num::before{content:"";width:60px;height:1px;background:var(--red)}
.bg-word{position:absolute;right:-2vw;top:60px;font-family:var(--en);font-size:clamp(7rem,20vw,17rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.05);pointer-events:none;user-select:none;white-space:nowrap}
.alt{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center}
.about-copy h3{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;line-height:1.55;margin-bottom:28px}
.about-copy h3 em{font-style:normal;color:var(--red)}
.about-copy p{color:var(--ink-2);font-size:1.02rem}
.about-copy p strong{color:var(--ink);font-weight:700}
.about-visual{position:relative;aspect-ratio:4/3;overflow:hidden}
.about-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(1.1) contrast(1.05);transition:transform 1.2s}
.about-visual:hover img{transform:scale(1.05)}
.about-visual::before{content:"";position:absolute;inset:0;border:1px solid var(--line-2);z-index:1;pointer-events:none}
.about-visual::after{content:"";position:absolute;right:-1px;bottom:-1px;width:120px;height:120px;border-right:3px solid var(--red);border-bottom:3px solid var(--red);z-index:2}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;gap:48px}}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-top:90px;background:rgba(13,15,21,.6);backdrop-filter:blur(6px)}
.stat{padding:46px 30px;text-align:center;position:relative}
.stat+.stat{border-left:1px solid var(--line)}
.stat .num{font-family:var(--en);font-size:clamp(3rem,6vw,4.6rem);line-height:1;letter-spacing:.03em;background:linear-gradient(180deg,#fff 30%,#ff8a95);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .num small{font-family:"Noto Sans JP",sans-serif;font-size:.36em;font-weight:800;-webkit-text-fill-color:var(--red);margin-left:4px}
.stat .label{color:var(--ink-2);font-size:.9rem;letter-spacing:.2em;margin-top:12px}
.stat::before{content:"";position:absolute;top:-1px;left:50%;width:40px;height:2px;background:var(--red);transform:translateX(-50%)}
@media (max-width:700px){.stats{grid-template-columns:1fr}.stat+.stat{border-left:0;border-top:1px solid var(--line)}}

/* Services */
.services{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--bg);padding:40px 26px;position:relative;overflow:hidden;transition:background .4s}
.svc::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:.45s}
.svc:hover{background:var(--bg-3)}
.svc:hover::before{transform:scaleX(1)}
.svc .n{font-family:var(--en);font-size:2.6rem;color:transparent;-webkit-text-stroke:1px var(--ink-3);line-height:1;transition:.3s}
.svc:hover .n{-webkit-text-stroke-color:var(--red)}
.svc h3{font-size:1.08rem;font-weight:700;margin:22px 0 4px}
.svc .en{font-family:var(--en);letter-spacing:.15em;color:var(--ink-3);font-size:.9rem}
@media (max-width:1000px){.services{grid-template-columns:repeat(2,1fr)}.svc:last-child{grid-column:span 2}}
@media (max-width:520px){.services{grid-template-columns:1fr}.svc:last-child{grid-column:auto}}

/* Works teaser + list */
.works{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:28px}
.work{position:relative;background:var(--bg-2);border:1px solid var(--line);transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .4s,box-shadow .45s}
.work:hover{transform:translateY(-8px);border-color:rgba(255,42,61,.5);box-shadow:0 24px 50px -20px rgba(255,42,61,.45)}
.work .thumb{position:relative;aspect-ratio:8/5;overflow:hidden}
.work .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s;filter:saturate(.9)}
.work:hover .thumb img{transform:scale(1.08);filter:saturate(1.2) brightness(1.08)}
.work .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,15,21,.85),transparent 45%)}
.work .badge{position:absolute;top:14px;left:14px;z-index:1;font-family:var(--en);letter-spacing:.12em;font-size:.95rem;padding:3px 12px 1px;background:rgba(7,8,12,.7);border:1px solid var(--line-2);backdrop-filter:blur(6px)}
.work.g6 .badge{border-color:var(--red);color:#fff;background:rgba(255,42,61,.8)}
.work .idx{position:absolute;right:16px;bottom:10px;z-index:1;font-family:var(--en);font-size:2.4rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.45)}
.work .body{padding:20px 22px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.work h3{font-size:1rem;font-weight:700}
.work .gen{font-family:var(--en);letter-spacing:.15em;font-size:.8rem;color:var(--ink-3)}
.work .plus{width:30px;height:30px;flex:none;border:1px solid var(--line-2);display:grid;place-items:center;transition:.3s;color:var(--ink-2)}
.work:hover .plus{background:var(--red);border-color:var(--red);color:#fff;transform:rotate(90deg)}
.filters{display:flex;gap:0;margin-bottom:46px;border:1px solid var(--line);width:max-content;max-width:100%}
.filters button{padding:12px 30px;background:transparent;border:0;color:var(--ink-2);font:inherit;font-family:var(--en);font-size:1.05rem;letter-spacing:.14em;cursor:pointer;transition:.25s}
.filters button+button{border-left:1px solid var(--line)}
.filters button.active{background:var(--red);color:#fff}
.filters button:not(.active):hover{color:var(--ink);background:var(--bg-3)}
.works-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:10px}
.period{font-family:var(--en);font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:.08em;color:var(--gold);margin-bottom:46px}
.period span{font-family:"Noto Sans JP",sans-serif;font-size:.95rem;color:var(--ink-2);letter-spacing:.1em;margin-left:14px}
.work.hide{display:none}
.more{margin-top:60px;text-align:center}

/* Page header */
.page-head{position:relative;padding:200px 0 110px;overflow:hidden;border-bottom:1px solid var(--line);isolation:isolate}
.page-head::before{content:"";position:absolute;inset:0;z-index:-2;background:url(../images/hero.jpg) center/cover;filter:blur(2px) saturate(1.1);opacity:.28;transform:scale(1.05)}
.page-head::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,var(--bg) 25%,rgba(7,8,12,.6) 70%,rgba(7,8,12,.85)),linear-gradient(0deg,var(--bg),transparent 50%)}
.page-head .en{font-family:var(--en);font-size:clamp(4rem,11vw,8.5rem);line-height:.9;letter-spacing:.03em}
.page-head .en b{color:var(--red);font-weight:400}
.page-head h1{display:flex;align-items:center;gap:16px;font-size:1.05rem;font-weight:700;letter-spacing:.2em;margin-top:18px;color:var(--ink-2)}
.page-head h1::before{content:"";width:46px;height:1px;background:var(--red)}
.crumb{position:absolute;right:24px;bottom:28px;font-family:var(--en);letter-spacing:.2em;font-size:.85rem;color:var(--ink-3)}
.crumb a:hover{color:var(--red)}

/* Company */
.info-table{border-top:1px solid var(--line-2)}
.info-table dl{display:grid;grid-template-columns:240px 1fr;border-bottom:1px solid var(--line);transition:background .3s}
.info-table dl:hover{background:rgba(255,255,255,.02)}
.info-table dt{padding:30px 0;font-weight:700;display:flex;align-items:center;gap:14px;letter-spacing:.08em}
.info-table dt::before{content:"";width:8px;height:8px;background:var(--red);transform:rotate(45deg);flex:none}
.info-table dd{padding:30px 0;color:var(--ink-2)}
.info-table dd a{color:var(--ink);border-bottom:1px solid var(--red)}
@media (max-width:700px){.info-table dl{grid-template-columns:1fr}.info-table dt{padding:22px 0 4px}.info-table dd{padding:0 0 22px 22px}}
.access{display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:center}
.address .pref{font-family:var(--en);letter-spacing:.2em;color:var(--red);font-size:1rem}
.address p{font-size:1.5rem;font-weight:800;line-height:1.6;margin:8px 0 28px}
.map{position:relative;border:1px solid var(--line-2)}
.map iframe{width:100%;height:440px;border:0;display:block;filter:invert(.92) hue-rotate(180deg) saturate(.6) contrast(.92)}
.map::after{content:"";position:absolute;left:-1px;top:-1px;width:90px;height:90px;border-left:3px solid var(--red);border-top:3px solid var(--red);pointer-events:none}
@media (max-width:900px){.access{grid-template-columns:1fr;gap:30px}}

/* Careers */
.jobs{display:grid;gap:34px}
.job{display:grid;grid-template-columns:260px 1fr;background:var(--bg-2);border:1px solid var(--line);transition:border-color .4s}
.job:hover{border-color:rgba(255,42,61,.45)}
.job-side{padding:44px 36px;border-right:1px solid var(--line);position:relative;overflow:hidden;background:linear-gradient(160deg,rgba(255,42,61,.12),transparent 60%)}
.job-side .n{font-family:var(--en);font-size:5.5rem;line-height:.9;color:transparent;-webkit-text-stroke:1px var(--red)}
.job-side .en{font-family:var(--en);letter-spacing:.2em;color:var(--ink-3);margin-top:18px}
.job-side h2{font-size:1.7rem;font-weight:900;letter-spacing:.06em}
.job-main{padding:44px 44px 40px}
.job-main>p{color:var(--ink-2);font-size:1.02rem;margin-bottom:32px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.job-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;margin-bottom:32px}
.job h3{font-family:var(--en);font-weight:400;letter-spacing:.2em;font-size:1rem;color:var(--red);margin-bottom:14px}
.job h3 span{font-family:"Noto Sans JP",sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.1em;color:var(--ink-2);margin-left:10px}
.job ul{list-style:none}
.job li{padding-left:26px;position:relative;margin-bottom:8px}
.job li::before{content:"";position:absolute;left:0;top:.8em;width:12px;height:1px;background:var(--red)}
.salary{font-size:1.5rem;font-weight:900;line-height:1.4}
.salary em{font-style:normal;font-family:var(--en);font-weight:400;font-size:1.25em;letter-spacing:.03em;color:var(--gold)}
.salary small{display:block;font-weight:400;color:var(--ink-3);font-size:.85rem;margin-top:4px}
@media (max-width:900px){.job{grid-template-columns:1fr}.job-side{border-right:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:30px}.job-side .en{margin:0}.job-main{padding:32px 28px}.job-grid{grid-template-columns:1fr}}

/* CTA */
.cta{padding:140px 0;text-align:center;overflow:hidden;isolation:isolate;border-top:1px solid var(--line)}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 120%,rgba(255,42,61,.35),transparent 60%)}
.cta .bg-word{left:50%;right:auto;top:50%;transform:translate(-50%,-50%)}
.cta h2{font-size:clamp(1.7rem,4vw,2.8rem);font-weight:900;margin-bottom:22px;letter-spacing:.04em}
.cta p{color:var(--ink-2);margin-bottom:44px}
.cta strong{color:var(--ink)}

/* Footer */
.footer{border-top:1px solid var(--line);padding:90px 0 30px;background:#050609}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.footer .tag{color:var(--ink-3);margin-top:16px;font-size:.9rem;letter-spacing:.1em}
.footer h4{font-family:var(--en);font-weight:400;letter-spacing:.22em;font-size:1.05rem;color:var(--red);margin-bottom:6px}
.footer h4 span{display:block;font-family:"Noto Sans JP",sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.1em;color:var(--ink-3);margin-bottom:16px}
.footer ul{list-style:none}
.footer li{margin-bottom:8px}
.footer li a,.footer .mail{color:var(--ink-2);transition:color .25s}
.footer li a:hover,.footer .mail:hover{color:var(--ink)}
.footer address{font-style:normal;color:var(--ink-2)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid var(--line);margin-top:70px;padding-top:26px;font-size:.8rem;color:var(--ink-3);letter-spacing:.08em}
.to-top{font-family:var(--en);letter-spacing:.25em;font-size:.9rem;color:var(--ink-2);display:flex;align-items:center;gap:10px}
.to-top:hover{color:var(--red)}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.footer-grid{grid-template-columns:1fr}section{padding:96px 0}}

/* Reveal */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.show{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal,.hero-anim>*{opacity:1;transform:none}}

/* ===== Privacy policy ===== */
.footer-bottom .foot-link{margin-left:22px;color:var(--ink-2);border-bottom:1px solid transparent;transition:.25s}
.footer-bottom .foot-link:hover{color:var(--ink);border-color:var(--red)}
.pp-wrap{display:grid;grid-template-columns:260px 1fr;gap:70px;align-items:start}
.pp-toc{position:sticky;top:110px;border-left:1px solid var(--line-2);padding-left:22px}
.pp-toc-ttl{font-family:var(--en);letter-spacing:.3em;color:var(--red);margin-bottom:14px}
.pp-toc ol{list-style:none}
.pp-toc li{margin-bottom:6px}
.pp-toc a{display:flex;gap:12px;font-size:.88rem;color:var(--ink-2);line-height:1.6;transition:color .25s}
.pp-toc a span{font-family:var(--en);letter-spacing:.08em;color:var(--ink-3);flex:none;width:22px}
.pp-toc a:hover,.pp-toc a:hover span{color:var(--ink)}
.pp-lead{font-size:1.05rem;color:#d9dce3;padding:30px 34px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(255,42,61,.08),transparent 55%);margin-bottom:60px}
section.pp{overflow:visible}
section.pp-sec{padding:0 0 46px;overflow:visible;scroll-margin-top:100px;margin-bottom:46px;border-bottom:1px solid var(--line)}
.pp-sec h2{display:flex;align-items:baseline;gap:16px;font-size:1.35rem;font-weight:800;letter-spacing:.04em;margin-bottom:20px}
.pp-n{font-family:var(--en);font-weight:400;font-size:2.2rem;line-height:1;color:transparent;-webkit-text-stroke:1px var(--red)}
.pp-sec p{color:var(--ink-2);margin-bottom:14px}
.pp-sec ol,.pp-sec ul{color:var(--ink-2);margin:0 0 14px;padding-left:0;list-style:none;counter-reset:pp}
.pp-sec li{position:relative;padding-left:34px;margin-bottom:12px}
.pp-sec ol>li::before{counter-increment:pp;content:"(" counter(pp) ")";position:absolute;left:0;color:var(--red);font-weight:700;font-size:.9rem}
.pp-sec ul>li::before{content:"";position:absolute;left:4px;top:.85em;width:12px;height:1px;background:var(--red)}
.pp-sec strong{color:var(--ink);font-weight:700}
.pp-sec a{color:var(--ink);border-bottom:1px solid var(--red);word-break:break-all}
.pp-table{display:grid;grid-template-columns:150px 1fr;border-top:1px solid var(--line-2)}
.pp-table dt,.pp-table dd{padding:16px 0;border-bottom:1px solid var(--line)}
.pp-table dt{font-weight:700;display:flex;align-items:center;gap:12px}
.pp-table dt::before{content:"";width:7px;height:7px;background:var(--red);transform:rotate(45deg);flex:none}
.pp-table dd{color:var(--ink-2)}
.pp-contact{border:1px solid var(--line-2);padding:24px 28px;background:var(--bg-2)}
.pp-contact p{margin-bottom:4px}
.pp-contact .pp-co{color:var(--ink);font-weight:700;margin-bottom:10px}
.pp-date{text-align:right;color:var(--ink-3);font-size:.9rem}
@media (max-width:960px){.pp-wrap{grid-template-columns:1fr;gap:40px}.pp-toc{position:static}}
@media (max-width:560px){.pp-lead{padding:22px}.pp-table{grid-template-columns:1fr}.pp-table dt{border-bottom:0;padding-bottom:0}.footer-bottom .foot-link{display:block;margin:8px 0 0}}
.pp-h3{font-size:1.05rem;font-weight:700;color:var(--ink);margin:30px 0 12px;padding-left:14px;border-left:3px solid var(--red);line-height:1.5}
.pp-sec .pp-table{margin-bottom:8px}
