@font-face{font-family:YokaiDisplay;src:url('/assets/fonts/DarumadropOne-Regular.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:YokaiSans;src:url('/assets/fonts/ZenKakuGothicNew-Regular.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:YokaiSans;src:url('/assets/fonts/ZenKakuGothicNew-Bold.ttf') format('truetype');font-display:swap;font-weight:700}

:root{
  --ink:#15121a;
  --bone:#f1e8d8;
  --paper:#e5d6bd;
  --red:#cc3434;
  --gold:#e1a02b;
  --teal:#086a6d;
  --line:rgba(21,18,26,.22);
  --sans:YokaiSans,sans-serif;
  --display:YokaiDisplay,cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;color:var(--ink);font-family:var(--sans);background:var(--bone);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");mix-blend-mode:multiply}
button,a{font:inherit}
button{color:inherit}
a{color:inherit}
img{display:block;max-width:100%}
::selection{background:var(--red);color:var(--bone)}
.skip{position:fixed;top:16px;left:16px;z-index:99;background:var(--bone);border:3px solid var(--ink);padding:10px 14px;transform:translateY(-180%);transition:transform .2s}.skip:focus{transform:none}

.site-head{position:fixed;z-index:30;top:0;left:0;right:0;height:78px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;color:var(--bone);border-bottom:1px solid rgba(241,232,216,.22);background:rgba(21,18,26,.92);backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:2px solid currentColor;color:var(--gold);font-weight:700}.brand-name{font-weight:700;letter-spacing:.13em;font-size:13px}
.desktop-nav{display:flex;gap:34px}.desktop-nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:rgba(241,232,216,.82);padding:9px 0;border-bottom:2px solid transparent}.desktop-nav a:hover,.desktop-nav a:focus-visible{color:var(--gold);border-color:var(--gold)}
.menu-button{display:none;border:0;background:none;color:var(--bone);align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.12em}.menu-button i{width:22px;height:2px;background:currentColor;box-shadow:0 7px currentColor}
.mobile-nav{position:fixed;z-index:29;inset:78px 0 auto;background:var(--bone);border-bottom:5px solid var(--ink);padding:28px}.mobile-nav a{display:block;text-decoration:none;font-family:var(--display);font-size:38px;border-bottom:1px solid var(--line);padding:12px 0}

.hero{min-height:100svh;position:relative;display:grid;grid-template-columns:minmax(390px,.86fr) minmax(620px,1.14fr);background:var(--ink);color:var(--bone);overflow:hidden;padding-top:78px}
.hero::before{content:"妖怪";position:absolute;left:2.5vw;bottom:-9vw;font-family:serif;font-weight:900;font-size:27vw;line-height:.8;color:rgba(241,232,216,.035);letter-spacing:-.16em;pointer-events:none}
.hero-copy{z-index:4;align-self:center;padding:7vw 0 7vw max(34px,6vw);position:relative}
.eyebrow,.kicker{font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:12px}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--gold)}.eyebrow span{font-size:18px}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(92px,9.2vw,160px);line-height:.67;letter-spacing:.01em;margin:44px 0 38px;text-transform:uppercase}.hero h1 span{display:block}.hero h1 span:last-child{color:var(--red);margin-left:.18em}
.hero-note{max-width:390px;font-size:18px;line-height:1.65;color:rgba(241,232,216,.76);margin:0 0 38px}
.ink-button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;min-width:270px;padding:16px 18px;text-decoration:none;text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:700;background:var(--gold);color:var(--ink);border:2px solid var(--bone);box-shadow:7px 7px 0 var(--red);transition:transform .15s,box-shadow .15s}.ink-button:hover{transform:translate(3px,3px);box-shadow:4px 4px 0 var(--red)}
.folding-screen{position:relative;align-self:stretch;display:flex;align-items:center;justify-content:center;margin-right:2.5vw;padding:7vh 0;border-left:8px solid var(--gold);border-right:8px solid var(--gold);box-shadow:inset 3px 0 var(--ink),inset -3px 0 var(--ink)}
.folding-screen::before,.folding-screen::after{content:"";position:absolute;left:-8px;right:-8px;height:8px;background:var(--gold);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);z-index:5;pointer-events:none}.folding-screen::before{top:10.5vh}.folding-screen::after{bottom:10.5vh}.screen-panel{position:relative;width:31%;height:min(66vh,640px);padding:0;border:0;border-left:7px solid var(--ink);border-right:3px solid var(--gold);background:var(--paper);overflow:hidden;cursor:pointer;transform-origin:center;transition:width .3s ease,transform .3s ease,filter .3s}.screen-panel img{width:100%;height:100%;object-fit:cover}.screen-panel::before{content:"";position:absolute;z-index:2;top:50%;right:-6px;width:10px;height:34px;background:var(--gold);border:3px solid var(--ink);transform:translateY(-50%);pointer-events:none}.screen-panel::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px rgba(241,232,216,.22),inset -30px 0 45px rgba(21,18,26,.24);pointer-events:none}.screen-panel:nth-child(even){transform:perspective(900px) rotateY(-6deg)}.screen-panel:nth-child(odd){transform:perspective(900px) rotateY(5deg)}.screen-panel:hover,.screen-panel:focus-visible{width:36%;z-index:3;filter:saturate(1.12)}
.p1,.p2,.p3,.p4,.p5{margin-top:0}
.hero-seal{position:absolute;right:auto;left:calc(43% - 37px);bottom:28px;z-index:6;width:74px;height:74px;border:3px solid var(--red);color:var(--red);background:var(--ink);display:grid;place-items:center;transform:rotate(5deg);text-align:center}.hero-seal b{font-size:29px;line-height:.8}.hero-seal span{font-size:8px;font-weight:700;letter-spacing:.18em}
.scroll-cue{position:absolute;left:33px;bottom:36px;z-index:4;font-size:9px;letter-spacing:.2em;writing-mode:vertical-rl;color:rgba(241,232,216,.5)}

.procession{padding:120px 0 100px;background:var(--paper);border-top:12px solid var(--gold);overflow:hidden}.section-heading{display:grid;grid-template-columns:.7fr 1.5fr 1fr;gap:40px;align-items:end;padding:0 max(34px,6vw) 64px}.kicker{color:var(--red);margin:0}.section-heading h2,.marks h2,.register h2,.closing h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(62px,7.4vw,118px);line-height:.82;margin:0}.section-heading>p:last-child{margin:0;line-height:1.7;max-width:370px}
.rail-controls{display:flex;justify-content:space-between;align-items:center;padding:0 max(34px,6vw) 18px;border-bottom:2px solid var(--ink)}.rail-controls p{font-family:var(--display);font-size:28px;margin:0}.rail-controls div{display:flex}.rail-controls button{width:56px;height:46px;background:transparent;border:2px solid var(--ink);margin-left:-2px;cursor:pointer}.rail-controls button:hover{background:var(--ink);color:var(--bone)}
.art-rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:38px max(34px,6vw) 46px;scrollbar-color:var(--red) transparent;cursor:grab}.art-rail:active{cursor:grabbing}
.rail-card,.register-card{appearance:none;border:0;background:none;text-align:left;padding:0;cursor:pointer}.rail-card{flex:0 0 clamp(260px,25vw,390px);scroll-snap-align:center}.portrait-frame{display:block;aspect-ratio:1;overflow:hidden;background:var(--ink);border:4px solid var(--ink)}.portrait-frame img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.rail-card:hover img,.register-card:hover img{transform:scale(1.035)}
.portrait-meta{display:grid;grid-template-columns:70px 1fr auto;gap:13px;align-items:baseline;padding:16px 2px 0}.portrait-meta>span,.portrait-meta small{font-size:10px;text-transform:uppercase;letter-spacing:.1em}.portrait-meta strong{font-family:var(--display);font-size:24px;text-transform:uppercase;font-weight:400}.portrait-meta small{text-align:right;color:var(--red);font-weight:700}

.marks{background:var(--red);color:var(--bone);padding:120px max(34px,6vw)}.marks .kicker{color:var(--gold)}.marks-intro{display:grid;grid-template-columns:.45fr 1.55fr;gap:40px;align-items:start;margin-bottom:90px}.mark-list{border-top:2px solid var(--bone)}.mark-list article{display:grid;grid-template-columns:100px 145px 1.1fr 1fr;gap:30px;align-items:center;padding:36px 0;border-bottom:1px solid rgba(241,232,216,.5);opacity:0;transform:translateY(16px);transition:opacity .45s,transform .45s}.mark-list article.is-visible{opacity:1;transform:none}.mark-glyph{font-family:serif;font-size:52px;color:var(--gold)}.mark-no{font-size:10px;letter-spacing:.14em}.mark-list h3{font-family:var(--display);font-size:36px;font-weight:400;text-transform:uppercase;margin:0}.mark-list article>p:last-child{line-height:1.7;margin:0;color:rgba(241,232,216,.82)}

.register{padding:120px max(28px,4vw);background:var(--bone)}.register-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin:0 2vw 60px}.filters{display:flex;flex-wrap:wrap;justify-content:flex-end}.filters button{padding:11px 16px;border:1px solid var(--ink);background:transparent;text-transform:uppercase;letter-spacing:.1em;font-size:10px;cursor:pointer;margin:-1px 0 0 -1px}.filters button.active,.filters button:hover{background:var(--ink);color:var(--bone)}
.register-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:2px solid var(--ink);border-left:2px solid var(--ink)}.register-card{padding:14px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transition:background .2s}.register-card.is-visible{opacity:1;transform:none}.register-card:nth-child(even){background:var(--paper)}.register-card .portrait-meta{grid-template-columns:50px 1fr}.register-card .portrait-meta small{grid-column:2;text-align:left}.register-card .portrait-meta strong{font-size:21px}.empty-state{padding:80px;text-align:center;border:2px solid var(--ink)}

.closing{min-height:730px;display:grid;grid-template-columns:1fr 1fr;background:var(--gold);padding:70px max(34px,6vw);gap:7vw;align-items:center;overflow:hidden}.closing img{width:min(100%,580px);aspect-ratio:1;object-fit:cover;border:8px solid var(--ink);transform:rotate(-3deg);box-shadow:18px 18px 0 var(--red)}.closing h2{font-size:clamp(70px,8.5vw,130px);margin:25px 0}.closing p:not(.kicker){font-size:18px;margin:0 0 34px}.ink-button.light{background:var(--bone);border-color:var(--ink)}
footer{background:var(--ink);color:var(--bone);min-height:170px;padding:52px max(34px,6vw);display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:30px;border-top:8px solid var(--red)}footer p{color:rgba(241,232,216,.65);font-size:13px}footer>a:last-child{text-transform:uppercase;font-size:11px;letter-spacing:.13em}

.portrait-dialog{width:min(1040px,calc(100vw - 38px));padding:0;border:4px solid var(--ink);background:var(--bone);color:var(--ink);box-shadow:18px 18px 0 var(--red)}.portrait-dialog::backdrop{background:rgba(21,18,26,.88)}.portrait-dialog[open]{display:grid;grid-template-columns:1.08fr .92fr}.dialog-close{position:absolute;right:14px;top:14px;width:42px;height:42px;border:2px solid var(--ink);background:var(--bone);font-size:26px;z-index:2;cursor:pointer}.dialog-art{background:var(--ink);padding:18px}.dialog-art img{width:100%;height:100%;min-height:500px;object-fit:cover}.dialog-copy{padding:58px 48px 38px;display:flex;flex-direction:column}.dialog-copy h2{font-family:var(--display);font-weight:400;font-size:68px;text-transform:uppercase;line-height:.9;margin:22px 0}.dialog-copy>p:not(.kicker){line-height:1.7}.dialog-copy dl{margin:25px 0 35px;border-top:1px solid var(--line)}.dialog-copy dl div{display:grid;grid-template-columns:110px 1fr;padding:13px 0;border-bottom:1px solid var(--line)}.dialog-copy dt{text-transform:uppercase;letter-spacing:.13em;font-size:10px;color:var(--red);font-weight:700}.dialog-copy dd{margin:0}.dialog-nav{margin-top:auto;display:flex}.dialog-nav button{flex:1;padding:14px;background:transparent;border:2px solid var(--ink);cursor:pointer}.dialog-nav button+button{margin-left:-2px}.dialog-nav button:hover{background:var(--ink);color:var(--bone)}

@media (max-width:1050px){
  .hero{grid-template-columns:.78fr 1.22fr}.hero-copy{padding-left:34px}.hero h1{font-size:clamp(84px,11vw,120px)}
  .folding-screen{margin-right:-13vw}.screen-panel{width:22%}.screen-panel:first-child{display:none}
  .section-heading{grid-template-columns:1fr 2fr}.section-heading>p:last-child{grid-column:2}
  .register-grid{grid-template-columns:repeat(3,1fr)}.register-card:nth-child(n){background:transparent}.register-card:nth-child(even){background:var(--paper)}
  .mark-list article{grid-template-columns:80px 125px 1fr}.mark-list article>p:last-child{grid-column:3}
}
@media (max-width:760px){
  .site-head{height:70px;padding:0 18px}.desktop-nav{display:none}.menu-button{display:flex}.mobile-nav{inset:70px 0 auto}.brand-name{font-size:11px}
  .hero{min-height:auto;display:block;padding-top:70px}.hero-copy{padding:70px 22px 36px}.hero h1{font-size:clamp(82px,27vw,120px);margin:37px 0 28px}.hero-note{font-size:16px;max-width:320px}.ink-button{min-width:250px}
  .folding-screen{height:64svh;min-height:480px;margin:0 18px;padding:20px 0}.folding-screen::before{top:7%}.folding-screen::after{bottom:7%}.screen-panel{width:31%;height:84%}.screen-panel:first-child{display:block}.screen-panel:hover,.screen-panel:focus-visible{width:35%}.hero-seal{left:auto;right:18px;bottom:18px}.scroll-cue{display:none}
  .procession,.marks,.register{padding-top:84px;padding-bottom:80px}.section-heading{display:block;padding:0 22px 50px}.section-heading .kicker{margin-bottom:22px}.section-heading h2,.marks h2,.register h2{font-size:clamp(55px,17vw,82px)}.section-heading>p:last-child{margin-top:26px}
  .rail-controls{padding:0 22px 14px}.art-rail{padding-left:22px;padding-right:22px}.rail-card{flex-basis:78vw}
  .marks{padding-left:22px;padding-right:22px}.marks-intro{display:block;margin-bottom:55px}.marks-intro .kicker{margin-bottom:20px}.mark-list article{grid-template-columns:60px 1fr;gap:18px;padding:28px 0}.mark-glyph{grid-row:1/3}.mark-no{grid-column:2}.mark-list h3{grid-column:2;font-size:32px}.mark-list article>p:last-child{grid-column:2}
  .register{padding-left:14px;padding-right:14px}.register-head{display:block;margin:0 8px 38px}.filters{justify-content:flex-start;margin-top:30px}.filters button{min-height:44px;font-size:11px}.register-grid{grid-template-columns:repeat(2,1fr)}.register-card{padding:9px}.register-card .portrait-meta{display:block}.register-card .portrait-meta>*{display:block;margin-bottom:5px}.register-card .portrait-meta strong{font-size:18px}
  .closing{display:block;min-height:auto;padding:70px 22px 80px}.closing img{width:85%;margin:0 auto 72px;box-shadow:12px 12px 0 var(--red)}.closing h2{font-size:clamp(63px,18vw,92px)}
  footer{grid-template-columns:1fr;padding:44px 22px}
  .portrait-dialog[open]{display:block;max-height:90svh;overflow:auto}.dialog-art{padding:10px}.dialog-art img{min-height:0;aspect-ratio:1}.dialog-copy{padding:34px 22px 24px}.dialog-copy h2{font-size:52px}.dialog-close{position:fixed;right:26px;top:6svh}
}
@media (max-width:370px){.hero h1{font-size:78px}.brand-mark{width:34px;height:34px}.register-grid{grid-template-columns:1fr}.register-card .portrait-meta{display:grid}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.mark-list article,.register-card{opacity:1;transform:none}}
