/* GAN TATTOO — shared styles */
:root{
  --ink:#111;
  --paper:#f4f0e8;
  --white:#fff;
  --red:#8b1e23;
  --muted:#777;
  --line:rgba(17,17,17,.18);
  --line-strong:rgba(17,17,17,.35);
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(46px,7vw,112px);line-height:.92;letter-spacing:-.055em;max-width:980px}
h2{font-size:clamp(34px,5vw,72px);line-height:.98;letter-spacing:-.045em}
h3{font-size:20px;letter-spacing:-.02em}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border:1px solid var(--ink);text-transform:uppercase;font-size:12px;letter-spacing:.14em;font-weight:700;transition:.2s ease;background:transparent;cursor:pointer;font-family:inherit;color:var(--ink)}
.btn.primary{background:var(--ink);color:var(--white)}
.btn.primary:hover{background:var(--red);border-color:var(--red)}
.btn.ghost:hover{background:var(--ink);color:var(--white)}
/* header */
header{position:fixed;z-index:20;left:0;right:0;top:0;background:rgba(17,17,17,.96);backdrop-filter:blur(12px);border-bottom:1px solid #333;color:#fff}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand img{height:54px;filter:invert(1)}
.menu{display:flex;gap:26px;align-items:center;margin-left:auto;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.menu a:not(.btn):hover{color:#d85b60}

section{padding:100px 0;border-top:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:46px}
.section-head p{max-width:520px;color:#444;margin-bottom:4px}

/* home hero */
.hero{min-height:100vh;padding-top:132px;padding-bottom:56px;display:grid;align-items:end;border-top:0}
.hero-visual{min-height:650px;background:#171717;color:#fff;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:26px}
.hero-visual:before,.work:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(139,30,35,.55),transparent 28%),linear-gradient(145deg,#2b2b2b 0%,#111 56%,#050505 100%)}
/* senjafuda hero */
.hero-fuda{position:relative;height:100svh;display:grid;place-items:center;
           background:var(--paper);padding:90px 0 30px;border-top:0;overflow:hidden}
.hero-fuda .art{display:block;width:auto;height:auto;
                max-height:calc(100svh - 180px);max-width:min(52vw,420px)}
.hero-fuda .veil{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
                 background:rgba(17,17,17,.9);color:#fff}
.hero-fuda .veil .mark{width:auto;height:auto;max-width:min(74vw,560px);max-height:48svh;
                       margin:0 auto;display:block;filter:invert(1) brightness(2)}
.hero-fuda .veil p{font-size:clamp(17px,1.8vw,23px);letter-spacing:.06em;color:#ededed;margin:-7svh 0 0}
@media(max-width:560px){
  .hero-fuda{padding:88px 0 32px}
  .hero-fuda .art{max-width:74vw;max-height:calc(100svh - 175px)}
}

/* inner page hero */
.page-hero{padding:180px 0 80px;border-top:0}
.page-hero h1{font-size:clamp(42px,6vw,92px)}
.page-hero .sub{font-size:17px;max-width:660px;color:#333;margin:24px 0 34px}

/* works */
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.work{display:block;height:430px;background:#1a1a1a;position:relative;overflow:hidden}
a.work{cursor:zoom-in}
.work:nth-child(3n+2):before{background:linear-gradient(160deg,#555,#111 68%)}
.work:nth-child(3n):before{background:radial-gradient(circle at 70% 25%,rgba(139,30,35,.6),transparent 22%),linear-gradient(140deg,#333,#090909 70%)}
.work img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.work.art{background:#fff;border:1px solid var(--line)}
.work.art:before{content:none}
.work.art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:18px}
.tag-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px}
.tag{border:1px solid var(--ink);padding:9px 16px;font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700}
/* split / quote */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.copy{font-size:17px;color:#333}
/* access */
.access{display:grid;grid-template-columns:1fr 1fr;min-height:460px}
.map{background:#ded7cb;border:1px solid var(--line);position:relative;min-height:460px}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.access-copy{background:#fff;padding:58px}

/* numbered steps */
.steps{counter-reset:step;list-style:none;margin:0;padding:0;border:1px solid var(--ink)}
.steps li{counter-increment:step;display:grid;grid-template-columns:90px 1fr;border-bottom:1px solid var(--ink)}
.steps li:last-child{border-bottom:0}
.steps li:before{content:counter(step,decimal-leading-zero);display:grid;place-items:center;font-size:20px;font-weight:800;border-right:1px solid var(--ink);letter-spacing:-.03em}
.steps .body{padding:26px 30px}
.steps strong{display:block;margin-bottom:6px}
.steps p{margin:0;color:#444;font-size:15px}
.card{background:#fff;border:1px solid var(--line);padding:30px}
.card h3{margin-bottom:10px}
.card p,.card li{color:#444;font-size:15px}
.card ul{margin:0;padding-left:18px}
.card li{margin-bottom:6px}
.faq-item{border:1px solid var(--line);background:#fff;margin-bottom:10px}
.faq-item summary{padding:20px 24px;cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"+";font-weight:400;font-size:20px;line-height:1}
.faq-item[open] summary:after{content:"\2212"}
.faq-item p{padding:0 24px 22px;margin:0;color:#444}
/* notice */
.notice{border:1px solid var(--ink);background:#fff;padding:22px 26px;font-size:14px;color:#333}
.notice strong{text-transform:uppercase;letter-spacing:.1em;font-size:12px;display:block;margin-bottom:8px;color:var(--red)}

/* prose (privacy etc.) */
.prose{max-width:760px}
.prose h3{margin-top:42px}
.prose p,.prose li{color:#333;font-size:15px}

/* footer */
.footer{background:#111;color:#fff;padding:70px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.4fr .6fr .6fr .6fr;gap:40px}
.footer small{color:#aaa}
.footer p{color:#bbb;font-size:14px;line-height:2.1}
.footer a:hover{color:#fff}
.footer-logo{height:40px;filter:invert(1)}
.footer-bottom{border-top:1px solid #333;margin-top:50px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-bottom a{color:#aaa}
.footer-bottom a:hover{color:#fff}

@media(max-width:900px){
  .hero{padding-top:112px}
  .page-hero{padding:150px 0 60px}
  .split,.access{grid-template-columns:1fr}  .hero-visual{min-height:520px}
  .works-grid{grid-template-columns:repeat(2,1fr)}
.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .wrap{width:min(calc(100% - 28px),var(--max))}
  .nav{height:68px}
  .brand img{height:42px}
  section{padding:78px 0}  h1{font-size:52px}
  .page-hero h1{font-size:44px}
  .hero-visual{min-height:430px}
  .works-grid{grid-template-columns:1fr}
  .work{height:460px}
.section-head{display:block}
  .section-head .btn{margin-top:18px}
  .steps li{grid-template-columns:60px 1fr}
  .footer-grid{grid-template-columns:1fr}
}

/* feature */
.feature{height:100svh;padding:0;border-top:0;display:grid;place-items:center}
.feature-row{display:grid;grid-template-columns:auto minmax(0,470px);gap:64px;align-items:center;justify-content:center}
.feature-row .shot{position:relative;height:min(72svh,760px);aspect-ratio:3/4;overflow:hidden;display:flex;align-items:flex-end;padding:18px}
a.shot{cursor:zoom-in}
.feature-row .shot img,.feature-row .shot video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature-row .txt p{font-size:15px;line-height:1.9;color:#333;margin:0 0 18px;max-width:46ch}
.feature-row .txt p:last-child{margin-bottom:0}
@media(max-width:860px){
  .feature{height:auto;padding:78px 0}
  .feature-row{grid-template-columns:1fr;gap:26px}
  .feature-row .shot{height:auto;width:100%}
}

/* price list */
.price-list{list-style:none;margin:0 0 32px;padding:0;max-width:420px}
.price-list li{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.price-list li:last-child{border-bottom:0}
.price-list .amount{font-weight:700;white-space:nowrap}

/* grid foot */
.grid-foot{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-top:14px}
.grid-foot .row-price{margin:0}
.ig-link{font-size:13px;letter-spacing:.06em;border-bottom:1px solid var(--line-strong);padding-bottom:2px;white-space:nowrap}
.ig-link:hover{color:var(--red);border-color:var(--red)}
.grid-foot.right{justify-content:flex-end}

/* cta strip */
.cta-strip{background:var(--ink);color:#fff;padding:42px 30px;display:flex;flex-direction:column;align-items:center;gap:34px;text-align:center;max-width:min(100%,940px);margin-inline:auto}
.cta-strip p{margin:0;font-size:clamp(24px,3vw,40px);font-weight:800;letter-spacing:-.035em;line-height:1.15}
.cta-strip small{display:block;font-weight:400;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#bbb;margin-top:12px}
.cta-strip .btn{border-color:#fff;color:#fff}
.cta-strip .btn.primary{background:#fff;color:var(--ink)}
@media(max-width:560px){
  .cta-strip{max-width:84%;padding:38px 20px;gap:26px}
}

/* works row */
.works-row-label{display:inline-block;font-size:18px;font-weight:800;letter-spacing:-.02em;margin:36px 0 14px}
.works-row-label:hover{color:var(--red)}
.works-grid.cols4{grid-template-columns:repeat(4,1fr)}
.works-grid.cols4 .work{height:280px}
@media(max-width:900px){.works-grid.cols4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.works-grid.cols4{grid-template-columns:repeat(2,1fr)}
.works-grid.cols4 .work{height:190px}}

/* header button */
header .btn.primary{background:#fff;color:#111;border-color:#fff}
header .btn.primary:hover{background:var(--red);color:#fff;border-color:var(--red)}

/* row price */
.row-price{margin:12px 0 0;font-size:15px;font-weight:700;letter-spacing:-.01em;text-align:right}
/* chapter lead */
.lead{font-size:clamp(22px,2.6vw,34px);line-height:1.12;letter-spacing:-.035em;font-weight:800;margin:0 0 16px;max-width:720px}
.chapter-copy{font-size:16px;color:#444;max-width:680px;margin:0 0 32px}

/* chapter price */
.price-tag{margin:0 0 26px;font-size:clamp(20px,2.2vw,28px);font-weight:800;letter-spacing:-.03em;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
/* chapter head */
.chapter-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:16px}
.chapter-head h2{margin:0}
.chapter-head .price-tag{margin:0;font-size:clamp(15px,1.5vw,20px);gap:10px}

/* hover */
.btn.ghost:hover{background:var(--red);color:#fff;border-color:var(--red)}
.tag:hover{border-color:var(--red);color:var(--red)}
.footer a:hover,.footer-bottom a:hover{color:#d85b60}
.sub a:hover,.chapter-copy a:hover,.steps a:hover,.prose a:hover{color:var(--red)}

/* chapter body */
.chapter-body{max-width:680px;margin-bottom:32px}
.chapter-body .copy{margin-bottom:16px}
.chapter-body .copy:last-child{margin-bottom:0}
.chapter-body ul{margin:0 0 16px;padding-left:20px}
.chapter-body li{font-size:17px;color:#333;margin-bottom:6px}
/* nav toggle */
.nav-actions{display:flex;align-items:center;gap:14px}
.nav-toggle{display:none;background:none;border:0;padding:10px 6px;cursor:pointer}
.nav-toggle span{display:block;width:26px;height:2px;background:#fff;margin:5px 0;transition:transform .25s,opacity .2s}
header.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
header.nav-open .nav-toggle span:nth-child(2){opacity:0}
header.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:900px){
  .nav-toggle{display:block}
  .menu{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;padding:6px 0;margin:0;
    background:rgba(17,17,17,.99);border-top:1px solid #333;
  }
  header.nav-open .menu{display:flex}
  .menu a{padding:17px 20px;border-bottom:1px solid #262626}
  .menu a:last-child{border-bottom:0}
  .wrap.nav{position:relative}
}
@media(max-width:560px){
  .nav-actions .btn.primary{min-height:44px;padding:0 16px;font-size:11px}
  .nav-toggle span{width:24px}
}

/* subtitles */
.chapter-head h2 .sub-title{font-size:clamp(15px,1.5vw,20px);font-weight:700;letter-spacing:-.01em;color:#777;white-space:nowrap}
@media(max-width:560px){.chapter-head h2 .sub-title{display:block;white-space:normal;margin-top:6px}}
.works-row-label .row-sub{font-size:13px;font-weight:700;color:#777;letter-spacing:-.01em}
.works-row-label:hover .row-sub{color:var(--red)}

/* about portrait */
.hero-visual.has-photo{position:relative;display:block;min-height:0;aspect-ratio:1/1;overflow:hidden;background:#1a1a1a;cursor:zoom-in}
.hero-visual.has-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* photo rows */
.works-grid.photo-row{margin-bottom:34px}
.works-grid.photo-row .work{height:auto;aspect-ratio:4/3}

/* privacy signature */
.pp-sign{margin:0;color:#777;font-size:14px}
.pp-sign:first-of-type{margin-top:46px}

/* paired photos */
.pair-photo{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 34px;max-width:900px}
.pair-photo .work{height:auto;aspect-ratio:4/3}
@media(max-width:640px){ .pair-photo{grid-template-columns:1fr} }

/* arrive row */
.arrive-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:64px}
.arrive-row .work{height:auto;aspect-ratio:4/3}
@media(max-width:640px){ .arrive-row{grid-template-columns:1fr} }

/* travelers rows */
.travelers-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:64px}
.travelers-row .work{height:auto;aspect-ratio:3/4}
.travelers-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:44px}
.travelers-pair .work{height:auto;aspect-ratio:4/3}
@media(max-width:640px){ .travelers-row,.travelers-pair{grid-template-columns:1fr} }

/* voices */
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.voice{background:#fff;border:1px solid var(--line);padding:30px;min-height:220px}
.voice h3{font-size:19px;letter-spacing:-.02em;margin-bottom:10px}
.voice p{margin:0;font-size:15px;color:#444}
@media(max-width:760px){ .voice-grid{grid-template-columns:1fr} }
/* hero logo as h1 */
.brand-h1{margin:0;line-height:0;font-size:0}
