:root {
  --bg:#070707; --panel:#111; --text:#f5f5f5; --muted:#a7a7a7;
  --line:#292929; --accent:#d71920; --white:#fff;
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Helvetica Neue","Noto Sans JP",sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 48px),var(--max));margin:auto}
header{position:fixed;z-index:20;top:0;left:0;right:0;background:rgba(7,7,7,.82);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between}
.brand{width:52px;height:52px;display:flex;align-items:center;justify-content:center}
.brand img{width:52px;height:auto;max-height:52px;object-fit:contain}
nav{display:flex;gap:30px;font-size:12px;font-weight:800;letter-spacing:.16em}
nav a{opacity:.8;transition:.2s} nav a:hover{opacity:1;color:#fff}
.menu{display:none}
.hero{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero:before{content:"";position:absolute;inset:0;background:
radial-gradient(circle at 75% 35%,rgba(215,25,32,.18),transparent 25%),
linear-gradient(110deg,#050505 0%,#090909 45%,#151515 100%)}
.hero:after{content:"";position:absolute;inset:0;opacity:.11;background-image:repeating-linear-gradient(0deg,transparent 0 3px,#fff 4px),repeating-linear-gradient(90deg,transparent 0 5px,#fff 6px);mix-blend-mode:overlay}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;padding:130px 0 80px}
.eyebrow{font-size:12px;font-weight:900;letter-spacing:.25em;color:#bbb;margin-bottom:22px}
h1{font-size:clamp(62px,9vw,138px);line-height:.83;letter-spacing:-.065em;margin:0 0 30px;font-weight:1000}
h1 span{display:block}
h1 .red{color:var(--accent)}
.lead{font-size:18px;font-weight:700;max-width:650px;margin:0 0 12px}
.sublead{color:#aaa;font-size:14px;max-width:620px}
.tags{font-size:13px;letter-spacing:.12em;font-weight:900;margin:28px 0 34px}
.tags b{color:var(--accent);margin:0 8px}
.btn{display:inline-flex;align-items:center;gap:16px;border:1px solid #fff;padding:14px 22px;font-size:12px;font-weight:900;letter-spacing:.12em;transition:.2s}
.btn:hover{background:#fff;color:#000}
.hero-mark{display:flex;justify-content:center;align-items:center}
.hero-mark img{width:min(390px,70vw);height:auto;object-fit:contain;filter:drop-shadow(0 0 45px rgba(255,255,255,.08))}
section{padding:110px 0;border-bottom:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}
.kicker{font-size:12px;color:#999;letter-spacing:.2em;font-weight:900}
h2{font-size:clamp(38px,5vw,70px);line-height:.95;margin:8px 0 0;letter-spacing:-.04em}
.section-copy{max-width:650px;color:#aaa;font-size:15px}
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.about-card{border-top:1px solid #fff;padding-top:25px}
.about-card strong{display:block;font-size:22px;margin-bottom:12px}
.about-card p{color:#aaa;margin:0}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.service{min-height:330px;background:#101010;border:1px solid #242424;padding:24px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.service:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;top:-70px;border:1px solid #333}
.service .num{font-size:11px;color:#777;letter-spacing:.2em}
.service h3{font-size:25px;line-height:1;margin:0 0 12px}
.service p{color:#999;font-size:13px;margin:0}
.service .arrow{font-size:25px}
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.work{aspect-ratio:1/1.05;background:#161616;border:1px solid #262626;position:relative;overflow:hidden;display:flex;align-items:end;padding:22px}
.work:before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.68) 0%,rgba(0,0,0,.10) 55%,rgba(0,0,0,0) 100%);z-index:1;pointer-events:none}
.work img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0}
.work span{position:relative;z-index:2;font-size:13px;font-weight:900;letter-spacing:.12em}
.process{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid #333;border-bottom:1px solid #333}
.step{padding:28px 18px;border-right:1px solid #333;min-height:170px}
.step:last-child{border-right:0}
.step .n{font-size:11px;color:#777;letter-spacing:.15em}
.step h3{font-size:18px;margin:14px 0 6px}
.step p{margin:0;color:#888;font-size:12px}
.price{background:#f2f2f2;color:#080808}
.price .kicker{color:#666}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #bbb;border-bottom:1px solid #bbb}
.price-item{padding:34px 28px;border-right:1px solid #bbb}
.price-item:last-child{border-right:0}
.price-item h3{font-size:15px;letter-spacing:.12em}
.price-num{font-size:52px;line-height:1;font-weight:1000;margin:20px 0 4px}
.price-note{font-size:12px;color:#666}
.price-foot{margin-top:24px;font-size:12px;color:#666}
.contact{background:#050505}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.contact-list{border-top:1px solid #fff}
.contact-row{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid #333;font-size:14px}
.contact-row span:first-child{color:#888;letter-spacing:.1em}
.contact-row a:hover{text-decoration:underline}
footer{padding:35px 0;color:#777;font-size:11px;letter-spacing:.08em}
.footer-inner{display:flex;justify-content:space-between;gap:20px}
@media(max-width:900px){
 nav{display:none} .menu{display:block;font-size:11px;letter-spacing:.15em}
 .hero-grid,.about,.contact-grid{grid-template-columns:1fr;gap:45px}
 .hero{min-height:auto} .hero-grid{padding:145px 0 75px}
 .hero-mark{order:-1;justify-content:flex-start} .hero-mark img{width:150px;height:auto;object-fit:contain}
 .services{grid-template-columns:1fr 1fr}
 .process{grid-template-columns:repeat(3,1fr)}
 .step:nth-child(3){border-right:0} .step:nth-child(n+4){border-top:1px solid #333}
}
@media(max-width:600px){
 .container{width:min(calc(100% - 30px),var(--max))}
 section{padding:75px 0}
 h1{font-size:64px}
 .services,.works,.price-grid{grid-template-columns:1fr}
 .process{grid-template-columns:1fr 1fr}
 .step{border-right:1px solid #333!important}
 .step:nth-child(even){border-right:0!important}
 .step:nth-child(n+3){border-top:1px solid #333}
 .price-item{border-right:0;border-bottom:1px solid #bbb}
 .price-item:last-child{border-bottom:0}
 .footer-inner{flex-direction:column}
}