
:root{
  --head-en:'Libre Franklin','Franklin Gothic Medium','Helvetica Neue',Arial,sans-serif;
  --head-jp:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic',sans-serif;
  --sans-en:'Libre Franklin','Franklin Gothic Medium','Helvetica Neue',Arial,sans-serif;
  --sans-jp:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic',sans-serif;
  --paper:#FDFBF3; --ink:#17130F; --soft:#726B5E; --rule:#E7E0CC; --tint:#FBF0DC; --accent:#D8442A; --accent2:#1E4FA0; --accent3:#EAAE0A; --ok:#2F7D6B;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--paper:#171310; --ink:#FBF6EA; --soft:#B4AB98; --rule:#3A342A; --tint:#241F19; --accent:#FF7A5C; --accent2:#7CA3EE; --accent3:#F5C542; --ok:#5FB59F;}
}
:root[data-theme="dark"]{--paper:#171310; --ink:#FBF6EA; --soft:#B4AB98; --rule:#3A342A; --tint:#241F19; --accent:#FF7A5C; --accent2:#7CA3EE; --accent3:#F5C542; --ok:#5FB59F;}

*{box-sizing:border-box;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans-jp); font-size:14px; line-height:1.85; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
a{color:inherit; text-decoration:none;}
button,input,select{font:inherit; color:inherit;}
:focus-visible{outline:1.5px solid var(--accent); outline-offset:4px;}
.wrap{max-width:1240px; margin:0 auto; padding-inline:max(16px,3.4vw);}
.caps{font-family:var(--sans-en); font-weight:500; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;}

.strip{display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:14px; flex-wrap:wrap;}
.strip .caps{color:var(--soft);}
.strip nav{display:flex; gap:24px;}
.strip nav a:hover{color:var(--ink);}
.mast{text-align:center; padding-block:18px 8px;}
.mast h1{margin:0; font-family:var(--head-en); font-weight:700; font-size:clamp(54px,15.6vw,204px); line-height:.86; letter-spacing:-.025em;}
.gloss{display:flex; justify-content:center; align-items:center; gap:clamp(12px,2.4vw,26px); margin-top:16px; flex-wrap:wrap; color:var(--soft);}
.gloss i{display:block; width:clamp(18px,4vw,54px); height:1px; background:var(--rule);}
.gloss .en{font-family:var(--head-en); font-style:normal; font-weight:500; font-size:16px; color:var(--ink); letter-spacing:.04em;}
.gloss .jp{font-weight:400; font-size:12.5px; letter-spacing:.1em; margin-right:-.1em; color:var(--ink);}
.gloss .sn{font-family:var(--sans-en); font-size:10px; letter-spacing:.24em; text-transform:uppercase;}
.gloss em{font-style:inherit; color:var(--accent);} .gloss .jp em{font-weight:700;}
.menu{display:flex; justify-content:center; gap:clamp(18px,4vw,52px); padding-block:16px; border-top:1px solid var(--ink); border-bottom:1px solid var(--rule); margin-top:22px; overflow-x:auto; white-space:nowrap;}
.menu a{color:var(--ink);} .menu a:hover{color:var(--accent);}

.cover{display:grid; grid-template-columns:repeat(12,1fr); gap:28px; padding-block:clamp(28px,5vw,64px) 30px;}
.cover .copy{grid-column:1 / span 5;}
.cover .plate-wrap{grid-column:6 / span 7;}
@media (max-width:900px){.cover .copy,.cover .plate-wrap{grid-column:1 / -1;}}
.kicker{color:var(--accent);}
.cover h2{margin:16px 0 0; font-family:var(--head-jp); font-weight:700; font-size:clamp(38px,5.2vw,72px); line-height:1.18; letter-spacing:-.01em; text-wrap:balance;}
.cover .lead{margin:22px 0 0; max-width:34ch; color:var(--soft); font-size:14.5px;}

figure{margin:0;}
.plate{position:relative; display:block; width:100%; overflow:hidden; background:var(--tint);}
.plate svg{display:block; width:100%; height:100%;}
.plate.r45{aspect-ratio:4/5;} .plate.r32{aspect-ratio:3/2;} .plate.r54{aspect-ratio:5/4;}
figcaption{display:flex; justify-content:space-between; gap:14px; margin-top:10px; color:var(--soft);}
figcaption .caps{font-size:9.5px;}

/* ---------- search ---------- */
.find{padding-block:10px 20px; scroll-margin-top:16px;}
.sbox{display:flex; align-items:stretch; border:1.5px solid var(--ink); background:var(--paper);}
.sbox:focus-within{outline:1.5px solid var(--accent); outline-offset:3px; border-color:var(--accent);}
.sbox .ico{flex:none; display:grid; place-items:center; width:60px; border-right:1px solid var(--rule);}
.sbox .ico svg{width:22px; height:22px; stroke:var(--ink); fill:none; stroke-width:1.6; stroke-linecap:round;}
.sbox input{flex:1; min-width:0; border:0; background:transparent; font-family:var(--sans-jp); font-size:clamp(15px,1.6vw,19px); padding:18px 16px; outline:none; border-radius:0;}
.sbox input::placeholder{color:var(--soft);}
.sbox button{flex:none; background:var(--accent); color:#fff; border:0; padding:0 clamp(18px,3vw,38px); cursor:pointer; font-weight:700; font-size:14px; letter-spacing:.12em;}
.sbox button:hover{background:var(--accent2);}
.hint{margin:10px 0 0; color:var(--soft); font-size:12px;}
.hint code{font-family:var(--sans-en); background:var(--tint); padding:1px 7px; border:1px solid var(--rule);}

.elim{margin-top:26px; border-top:1px solid var(--ink);}
.elim-head{display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-block:18px 8px;}
.elim-head h3{margin:0; font-family:var(--head-jp); font-weight:700; font-size:clamp(22px,2.6vw,30px);}
.elim-head h3 i{font-style:normal; font-family:var(--head-en); font-weight:400; font-size:.62em; color:var(--soft); margin-left:12px;}
.elim-head p{margin:2px 0 0; color:var(--soft); font-size:13px;}
.counter{display:flex; align-items:baseline; gap:8px; font-family:var(--head-en);}
.counter b{font-size:clamp(44px,6vw,72px); line-height:1; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums;}
.counter span{color:var(--soft); font-family:var(--sans-jp); font-size:13px;}
.counter s{color:var(--soft); text-decoration:none; font-size:14px;}
.flt{display:inline-flex; align-items:center; gap:10px; border:1px solid var(--ink); background:none; padding:10px 18px; cursor:pointer; font-size:13px; letter-spacing:.08em;}
.flt em{font-style:normal; font-family:var(--sans-en); font-size:11px; background:var(--accent3); color:var(--ink); font-weight:700; min-width:20px; height:20px; border-radius:10px; display:inline-grid; place-items:center; padding:0 6px;}
.flt svg{width:11px; height:8px; stroke:currentColor; stroke-width:1.5; fill:none; stroke-linecap:round; transition:transform .25s;}
.flt[aria-expanded="true"]{background:var(--ink); color:var(--paper);}
.flt[aria-expanded="true"] svg{transform:rotate(180deg);}
#facets{margin-bottom:6px;}
.daterow input[type=date]{border:1px solid var(--rule); background:var(--paper); font-family:var(--sans-jp); font-size:13px; padding:8px 10px; border-radius:0; color:var(--ink);}
.daterow input[type=date]:focus{outline:1.5px solid var(--accent); outline-offset:2px;}
.daterow .chips{align-items:center;}
.facet{display:grid; grid-template-columns:96px 1fr; gap:10px 18px; padding-block:14px; border-top:1px solid var(--rule); align-items:start;}
@media (max-width:640px){.facet{grid-template-columns:1fr;}}
.facet > .caps{color:var(--soft); padding-top:8px;}
.facet > .caps b{display:block; font-family:var(--sans-jp); font-weight:500; letter-spacing:.06em; font-size:12px; color:var(--ink); text-transform:none;}
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{display:inline-flex; align-items:stretch; border:1px solid var(--rule); background:var(--paper); font-size:13px; line-height:1; transition:border-color .2s, background .2s;}
.chip:hover{border-color:var(--ink);}
.chip .on{display:flex; align-items:center; gap:8px; padding:9px 4px 9px 12px; background:none; border:0; cursor:pointer;}
.chip .on em{font-style:normal; font-family:var(--sans-en); font-size:11px; color:var(--soft); font-variant-numeric:tabular-nums;}
.chip .x{width:30px; background:none; border:0; border-left:1px solid var(--rule); cursor:pointer; color:var(--soft); display:grid; place-items:center;}
.chip .x svg{width:11px; height:11px; stroke:currentColor; stroke-width:1.6; fill:none; stroke-linecap:round;}
.chip .x:hover{color:var(--accent); background:var(--tint);}
.chip.inc{background:var(--accent); border-color:var(--accent); color:#fff;}
.chip.inc .on em{color:inherit; opacity:.7;} .chip.inc .x{border-color:rgba(255,255,255,.25); color:inherit;}
.chip.exc{border-style:dashed; color:var(--soft);}
.chip.exc .on{text-decoration:line-through; text-decoration-thickness:1px;}
.chip.exc .on em{display:none;}
.chip.exc .x{color:var(--accent); border-color:var(--rule);}
.chip.zero{opacity:.45;}
.status-row{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; padding-block:14px; border-top:1px solid var(--ink); border-bottom:1px solid var(--rule);}
.status-row .now{display:flex; gap:8px 14px; flex-wrap:wrap; align-items:center; font-size:12.5px; color:var(--soft);}
.tagx{display:inline-flex; gap:8px; align-items:center; border:1px dashed var(--accent); color:var(--accent); padding:3px 4px 3px 10px; font-size:12px; cursor:pointer; background:none;}
.tagx s{text-decoration-thickness:1px;} .tagx b{font-weight:400; padding:0 6px; opacity:.8;}
.acts{display:flex; gap:18px; align-items:center; flex-wrap:wrap;}
.txt-btn{background:none; border:0; border-bottom:1px solid var(--ink); padding:0 0 2px; cursor:pointer; font-size:13px;}
.txt-btn:hover{color:var(--accent); border-color:var(--accent);}
.pick{background:var(--accent2); color:#fff; border:0; padding:11px 22px; cursor:pointer; font-weight:700; letter-spacing:.1em; font-size:13px;}
.pick:hover{background:var(--accent);}
.pick[disabled]{opacity:.35; cursor:default; background:var(--ink);}

.results{list-style:none; margin:0; padding:0;}
.notice{margin:14px 0 0; padding:10px 14px; border-left:2px solid var(--accent); background:var(--tint); font-size:12.5px; line-height:1.8; color:var(--ink);} .notice b{color:var(--accent); letter-spacing:.06em; margin-right:.4em;}
.results .yr{list-style:none; display:flex; align-items:center; gap:18px; padding:30px 0 14px; border-bottom:1px solid var(--rule);}
.results .yr i{flex:1; height:3px; background:var(--accent2); display:block; border-radius:99px;}
.results .yr b{font-family:var(--head-en); font-weight:800; font-size:clamp(26px,3vw,36px); letter-spacing:-.01em; line-height:1; font-variant-numeric:tabular-nums; color:var(--accent2);}
.row{display:grid; grid-template-columns:132px 140px 1fr auto; gap:6px 22px; padding:16px 0; border-bottom:1px solid var(--rule); align-items:center; position:relative;}
.row .th{display:block; aspect-ratio:3/2; overflow:hidden; background:var(--tint); position:relative;}
.th svg,.th img,.plate img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.row .th img,.row .th svg{transition:transform .6s cubic-bezier(.2,.6,.2,1);} .row:hover .th img,.row:hover .th svg{transform:scale(1.05);}
.credit{font-size:10.5px; color:var(--soft); margin-top:6px; letter-spacing:.04em;}
@media (max-width:700px){.row{grid-template-columns:96px 1fr; gap:6px 14px;} .row .th{grid-row:span 3;} .row .side{grid-column:2; flex-direction:row; align-items:center; justify-content:space-between;}}
.row .d{font-family:var(--sans-en); font-weight:500; font-size:13px; letter-spacing:.05em; line-height:1.5;}
.row .d small{display:block; color:var(--soft); font-size:11px; letter-spacing:.08em;}
.row h4{margin:0; font-family:var(--head-jp); font-weight:700; font-size:clamp(16px,1.7vw,19px); line-height:1.5;}
.row h4 a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat; transition:background-size .3s;}
.row:hover h4 a{background-size:100% 1px;}
.row .m{font-size:12.5px; color:var(--soft); margin-top:2px;}
.row .m b{font-weight:500; color:var(--accent); letter-spacing:.04em; margin-right:8px;}
.row .tg{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end;}
.tg span{font-family:var(--sans-en); font-size:10px; letter-spacing:.14em; border:1px solid var(--rule); padding:1px 8px; color:var(--soft); text-transform:uppercase;}
.tg span.tbd{border-style:dashed;}
.row.picked{background:var(--tint); outline:1.5px solid var(--accent); outline-offset:-1px; padding-inline:14px;}
.row.gone h4{color:var(--soft); text-decoration:line-through; text-decoration-thickness:1px; font-weight:500;}
.row .side{display:flex; flex-direction:column; align-items:flex-end; gap:10px;}
.out-btn,.back-btn{display:inline-flex; align-items:center; gap:8px; background:none; border:1px solid var(--rule); padding:7px 14px; font-size:12.5px; cursor:pointer; color:var(--soft); transition:all .2s;}
.out-btn svg{width:10px; height:10px; stroke:currentColor; stroke-width:1.6; fill:none; stroke-linecap:round;}
.out-btn:hover{border-color:var(--accent); color:var(--accent);}
.back-btn:hover{border-color:var(--ink); color:var(--ink);}
.chip .on{padding:9px 12px;}
.ev-tools .pager{display:flex; gap:18px; align-items:center;} .ev-tools .pager b{font-weight:500; color:var(--ink);}
.ev-tools .dec{display:flex; gap:10px;}
.dbtn{border:1px solid var(--ink); background:none; padding:9px 22px; cursor:pointer; font-size:12.5px; letter-spacing:.06em;}
.dbtn.keep{background:var(--ink); color:var(--paper);}
.dbtn:hover{border-color:var(--accent); color:var(--accent);} .dbtn.keep:hover{background:var(--accent); color:var(--paper);}
.row.gone .d,.row.gone .m{opacity:.6;}
.sortbar{display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap;}
.sortbar .caps{color:var(--soft); font-size:9.5px;}
.sortbar select{border:1px solid var(--rule); background:var(--paper); font-family:var(--sans-jp); font-size:13px; padding:8px 30px 8px 12px; border-radius:0; -webkit-appearance:none; appearance:none; cursor:pointer; outline:none; background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%); background-position:calc(100% - 15px) 55%,calc(100% - 10px) 55%; background-size:5px 5px; background-repeat:no-repeat;}
.sortbar select:hover{border-color:var(--ink);}
.sortbar .note{color:var(--soft); font-size:11.5px;}
.al-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-top:20px;}
.al-head .caps{color:var(--ink);} .al-head .caps em{font-style:normal; color:var(--soft); margin-left:8px; letter-spacing:.1em;}
#always-wrap{border-bottom:1px solid var(--ink); margin-bottom:6px;}
.row .d small.km{color:var(--accent);}
.pg{display:flex; justify-content:center; align-items:center; gap:6px; flex-wrap:wrap; padding-block:30px 6px;}
.pg button{min-width:38px; height:38px; padding:0 12px; background:none; border:1px solid var(--rule); cursor:pointer; font-family:var(--sans-en); font-size:13px; font-variant-numeric:tabular-nums; color:var(--ink);}
.pg button:hover{border-color:var(--ink);}
.pg button[aria-current="page"]{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.pg button[disabled]{opacity:.3; cursor:default; border-color:var(--rule);}
.pg .dots{color:var(--soft); padding:0 4px;}
.pg .range{width:100%; text-align:center; color:var(--soft); font-size:12px; margin-top:8px;}
.empty{padding:44px 0; text-align:center; color:var(--soft); font-family:var(--head-jp); font-size:16px;}
.gone-head{margin:34px 0 0; color:var(--soft);}

/* ---------- editorial ---------- */
.sec-title{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-top:14px; border-top:1px solid var(--ink); margin-bottom:34px; flex-wrap:wrap;}
.sec-title h3{margin:0; font-family:var(--head-jp); font-weight:700; font-size:clamp(24px,3vw,34px);}
.sec-title h3 i{font-style:normal; font-family:var(--head-en); font-weight:400; font-size:.7em; color:var(--soft); margin-left:14px;}
.sec-title a{color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px;}
section.block{padding-block:56px 20px;}
.edit{display:grid; grid-template-columns:repeat(12,1fr); gap:48px 28px;}
.item{grid-column:span 3;} .item.lg{grid-column:span 6;}
@media (max-width:900px){.item{grid-column:span 6;} .item.lg{grid-column:1 / -1;}}
@media (max-width:520px){.item{grid-column:1 / -1;}}
.item .cat{color:var(--accent); margin-top:14px; display:block;}
.item h4{margin:6px 0 0; font-family:var(--head-jp); font-weight:700; font-size:18px; line-height:1.5;}
.item.lg h4{font-size:clamp(22px,2.6vw,30px);}
.item .meta{font-family:var(--sans-en); font-size:12.5px; color:var(--soft); margin-top:6px; line-height:1.7;}
.item .meta b{color:var(--ink); font-weight:500;}
.item .plate svg{transition:transform .8s cubic-bezier(.2,.6,.2,1);} .item:hover .plate svg{transform:scale(1.03);}

.submit{background:var(--ink); color:var(--paper); margin-top:64px;}
.submit .in{display:flex; justify-content:space-between; align-items:flex-end; gap:24px 40px; flex-wrap:wrap; padding-block:clamp(40px,6vw,80px);}
.submit h3{margin:14px 0 0; font-family:var(--head-jp); font-weight:700; font-size:clamp(30px,4.6vw,60px); line-height:1.2;}
.submit .who{display:flex; gap:22px; margin-top:20px; flex-wrap:wrap; opacity:.8;}
.submit .btn{border:0; background:var(--accent3); color:var(--ink); padding:16px 30px; letter-spacing:.2em; font-family:var(--sans-en); font-size:11px; font-weight:700; text-transform:uppercase;}
.submit .btn:hover{background:var(--accent); color:#fff;}
footer{padding-block:38px 46px;}
.foot{display:grid; grid-template-columns:repeat(12,1fr); gap:24px;}
.foot .brand{grid-column:1 / span 5; font-family:var(--head-jp); font-weight:900; font-size:34px; letter-spacing:-.01em; line-height:1; color:var(--accent);}
.foot .brand small{display:block; font-family:var(--sans-jp); font-weight:400; font-size:12px; letter-spacing:.02em; color:var(--soft); margin-top:10px;}
.foot .col{grid-column:span 2; display:flex; flex-direction:column; gap:8px; font-size:13px;}
.foot .col .caps{color:var(--soft); margin-bottom:4px;}
@media (max-width:900px){.foot .brand{grid-column:1 / -1;} .foot .col{grid-column:span 4;}}
.colophon{margin-top:34px; padding-top:16px; border-top:1px solid var(--rule); color:var(--soft); font-size:11.5px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;}

/* ---------- event page layout (always blank) ---------- */
.ev-tools{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-block:16px; color:var(--soft);}
.ev-tools a{color:var(--ink); border-bottom:1px solid var(--ink);}
.legend{display:flex; gap:20px; flex-wrap:wrap; color:var(--soft); padding-block:0 18px; font-size:12px; align-items:center;}
.leg{display:inline-flex; gap:8px; align-items:center;}
.req,.opt{font-family:var(--sans-en); font-size:9px; letter-spacing:.14em; padding:1px 7px; border:1px solid currentColor; text-transform:uppercase; line-height:1.5; white-space:nowrap;}
.req{color:var(--accent);} .opt{color:var(--soft);}
.ev-head{border-top:1px solid var(--ink); padding-top:20px; display:grid; grid-template-columns:repeat(12,1fr); gap:24px;}
.ev-head .t{grid-column:1 / span 8;}
.ev-head .a{grid-column:9 / span 4; align-self:end;}
@media (max-width:900px){.ev-head .t,.ev-head .a{grid-column:1 / -1;}}
.slot{position:relative; border-bottom:1px dashed var(--rule); min-height:38px; padding:2px 0 6px;}
.slot.big{min-height:78px;} .slot.hd{min-height:74px; border-bottom:1px dashed var(--soft);}
.slot.hd1{min-height:120px; border-bottom:1px dashed var(--soft);}
.lab{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:2px;}
.lab .n{font-size:11.5px; font-weight:500; color:var(--ink); letter-spacing:.04em;}
.lab .n small{font-family:var(--sans-en); color:var(--soft); font-size:9.5px; letter-spacing:.14em; margin-left:8px; text-transform:uppercase;}
.hint2{position:absolute; right:0; bottom:6px; font-size:10px; color:var(--soft); opacity:.75;}
.ev-body{display:grid; grid-template-columns:repeat(12,1fr); gap:34px 28px; padding-block:26px 40px;}
.ev-main{grid-column:1 / span 8; display:flex; flex-direction:column; gap:28px;}
.ev-side{grid-column:9 / span 4; display:flex; flex-direction:column; gap:22px; align-self:start; position:sticky; top:14px;}
@media (max-width:900px){.ev-main,.ev-side{grid-column:1 / -1;} .ev-side{position:static;}}
.hero-slot{aspect-ratio:3/2; border:1px dashed var(--soft); display:grid; place-items:center; color:var(--soft); position:relative; background:repeating-linear-gradient(135deg,transparent 0 14px,var(--tint) 14px 15px);}
.hero-slot span{background:var(--paper); padding:4px 14px; font-size:11px; letter-spacing:.1em;}
.thumbs{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:8px;}
.thumbs div{aspect-ratio:1/1; border:1px dashed var(--rule);}
.grp{border-top:1px solid var(--ink); padding-top:12px;}
.grp > h5{margin:0 0 12px; display:flex; justify-content:space-between; align-items:baseline; font-family:var(--head-jp); font-weight:700; font-size:17px;}
.grp > h5 i{font-style:normal; font-family:var(--head-en); font-weight:400; color:var(--soft); font-size:13px;}
.two{display:grid; grid-template-columns:1fr 1fr; gap:14px 24px;}
@media (max-width:560px){.two{grid-template-columns:1fr;}}
.facts{border:1px solid var(--ink); padding:18px 18px 8px; background:var(--paper);}
.facts h5{margin:0 0 10px; font-family:var(--head-jp); font-weight:700; font-size:16px;}
.cta-slot{border:1px solid var(--ink); padding:16px; text-align:center; color:var(--soft); letter-spacing:.14em; font-size:12px;}
.map-slot{aspect-ratio:4/3; border:1px dashed var(--soft); display:grid; place-items:center; color:var(--soft); font-size:11px; letter-spacing:.1em;}
.rel{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:700px){.rel{grid-template-columns:1fr 1fr;}}
.rel .card{display:flex; flex-direction:column; gap:8px;}
.rel .ph{aspect-ratio:4/3; border:1px dashed var(--rule);}
@media (prefers-reduced-motion:reduce){*{transition:none!important;}}

/* ---------- real pages ---------- */
.flash{margin:0 0 20px; padding:12px 16px; border:1px solid var(--accent); color:var(--accent); font-size:13px;}
.flash ul{margin:0; padding-left:1.2em;}
.detail-head{border-top:1px solid var(--ink); padding-top:22px; display:grid; grid-template-columns:repeat(12,1fr); gap:24px; align-items:end;}
.detail-head .t{grid-column:1 / span 8;} .detail-head .a{grid-column:9 / span 4;}
@media (max-width:900px){.detail-head .t,.detail-head .a{grid-column:1 / -1;}}
.detail-head h1{margin:10px 0 0; font-family:var(--head-jp); font-weight:700; font-size:clamp(28px,4.4vw,56px); line-height:1.25; text-wrap:balance;}
.detail-tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:16px;}
.pane{border:1px solid var(--ink); padding:18px 20px;}
.pane dl{margin:0;} .pane dt{font-family:var(--sans-en); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--soft); margin-top:12px;}
.pane dt:first-child{margin-top:0;} .pane dd{margin:2px 0 0; font-size:14.5px;}
.pane a.lnk{border-bottom:1px solid var(--ink);}
.detail-cols{display:grid; grid-template-columns:repeat(12,1fr); gap:34px 28px; padding-block:30px 40px;}
.detail-cols .main{grid-column:1 / span 8;} .detail-cols .side{grid-column:9 / span 4; align-self:start;}
@media (max-width:900px){.detail-cols .main,.detail-cols .side{grid-column:1 / -1;}}
.detail-cols .main p{font-size:15.5px; line-height:2; max-width:46em; margin:0 0 1.2em;}
.detail-cols .main .none{color:var(--soft);}
.nearby{margin-top:30px; border-top:1px solid var(--ink); padding-top:12px;}
.nearby h5{margin:0 0 10px; font-family:var(--head-jp); font-weight:700; font-size:17px;}
/* forms */
.form-page{max-width:820px; padding-block:30px 60px;}
.form-page h1{font-family:var(--head-jp); font-weight:700; font-size:clamp(28px,4vw,44px); margin:10px 0 0;}
.form-page .lead{color:var(--soft); margin:12px 0 0; max-width:46ch;}
.formgrid{display:grid; grid-template-columns:1fr 1fr; gap:22px 24px; margin-top:28px; border-top:1px solid var(--ink); padding-top:24px;}
.formgrid .full{grid-column:1 / -1;}
@media (max-width:640px){.formgrid{grid-template-columns:1fr;}}
.formgrid label{display:block; font-size:12px; font-weight:500; margin-bottom:6px;}
.formgrid label i{font-style:normal; font-family:var(--sans-en); font-size:9px; letter-spacing:.14em; color:var(--accent); margin-left:8px; border:1px solid currentColor; padding:0 6px;}
.formgrid input,.formgrid select,.formgrid textarea{width:100%; border:1px solid var(--rule); background:var(--paper); padding:12px 14px; font-family:var(--sans-jp); font-size:14.5px; border-radius:0; outline:none;}
.formgrid input:focus,.formgrid select:focus,.formgrid textarea:focus{border-color:var(--ink);}
.formgrid textarea{min-height:140px;}
.radio-row{display:flex; gap:22px; flex-wrap:wrap;}
.radio-row label{display:flex; gap:8px; align-items:center; font-weight:400; font-size:14px; margin:0;}
.radio-row input{width:auto;}
.submit-btn{margin-top:30px; background:var(--ink); color:var(--paper); border:0; padding:16px 34px; cursor:pointer; letter-spacing:.14em; font-size:13px; font-weight:700;}
.submit-btn:hover{background:var(--accent);}
.success-box{max-width:640px; padding-block:50px 80px;}
.success-box h1{font-family:var(--head-jp); font-weight:700; font-size:clamp(28px,4vw,44px);}
.success-box p{color:var(--soft);}
.success-box a.back{display:inline-block; margin-top:20px; border-bottom:1px solid var(--ink);}
.row .m a:hover{color:var(--accent);}
.noscript{padding:40px 0; text-align:center; color:var(--soft);}
/* ---------- compact header + landscape band ---------- */
.top{display:flex; align-items:center; gap:10px 28px; padding-block:14px 14px; border-top:1px solid var(--ink); flex-wrap:wrap;}
.top .brand{display:inline-flex; align-items:center; gap:9px; font-family:var(--head-jp); font-weight:900; font-size:clamp(28px,3.4vw,36px); letter-spacing:-.01em; line-height:1; color:var(--accent);}
.top .brand .dot{color:var(--accent3); font-style:normal;}
.brand .mark{display:inline-block; vertical-align:-.14em; width:.86em; height:.86em; margin-right:.14em; flex:none;}
.top .brand .mark{width:.72em; height:.72em;}
.top .gloss{margin:0; gap:10px;}
.top .gloss .en{font-size:14px;} .top .gloss .jp{font-size:11px;} .top .gloss i{width:22px;}
.top .menu{margin:0 0 0 auto; padding:0; border:0; gap:clamp(16px,2.6vw,34px); overflow:visible;}
@media (max-width:760px){.top .menu{margin-left:0; width:100%; overflow-x:auto;}}
.lands{display:grid; grid-template-columns:repeat(5,1fr); gap:3px; margin-top:6px;}
.land{position:relative; margin:0; aspect-ratio:3/4; overflow:hidden; background:var(--tint);}
.land svg{position:absolute; inset:0; width:100%; height:100%; display:block; transition:transform 1.2s cubic-bezier(.2,.6,.2,1);}
.land:hover svg{transform:scale(1.04);}
.land figcaption{position:absolute; left:0; right:0; bottom:0; padding:38px 16px 14px; margin:0; display:flex; flex-direction:column; gap:0; color:#fff; background:linear-gradient(transparent,rgba(8,10,18,.55));}
.land figcaption b{font-family:var(--head-jp); font-weight:700; font-size:16px; letter-spacing:.04em; line-height:1.4;}
.land figcaption span{font-family:var(--sans-en); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; opacity:.85;}
@media (max-width:900px){.lands{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:58vw; overflow-x:auto; scroll-snap-type:x mandatory;} .land{scroll-snap-align:start;}}
.cover2{display:grid; grid-template-columns:repeat(12,1fr); gap:24px 28px; padding-block:clamp(28px,4.4vw,52px) 30px; align-items:end;}
.cover2 .h{grid-column:1 / span 7;} .cover2 .l{grid-column:9 / span 4;}
@media (max-width:900px){.cover2 .h,.cover2 .l{grid-column:1 / -1;}}
.cover2 h2{margin:14px 0 0; font-family:var(--head-jp); font-weight:700; font-size:clamp(32px,4.2vw,58px); line-height:1.2; letter-spacing:-.01em; text-wrap:balance;}
.cover2 .lead{margin:0; color:var(--soft); font-size:14.5px; max-width:32ch;}
.lands-note{color:var(--soft); font-size:10.5px; letter-spacing:.14em; text-align:right; padding-top:8px;}

.menu a{display:flex; flex-direction:column; align-items:center; gap:3px; line-height:1.2; text-align:center;}
.menu a .en{font-family:var(--sans-en); font-weight:500; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;}
.menu a .jp{font-family:var(--sans-jp); font-weight:400; font-size:12px; letter-spacing:.14em; color:var(--soft);}
.menu a:hover .jp{color:var(--accent);}
.top .menu a{padding-block:2px;}

.detail-hero{margin:0 0 26px;} .detail-hero .ph{position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--tint);}
.detail-hero .ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.detail-hero .credit a{border-bottom:1px solid var(--soft);}

/* ---------- moderation UI ---------- */
.flash{margin:0 0 12px; padding:12px 16px; border:1px solid var(--accent); color:var(--accent); font-size:13px;}
.flash.ok{border-color:var(--ok); color:var(--ok);}
.warnbox{border:1px solid var(--accent); padding:16px 20px; margin-top:24px; background:var(--tint);}
.warnbox .caps{color:var(--accent);} .warnbox p{margin:8px 0 0; font-size:13.5px; line-height:1.9;} .warnbox .sub{color:var(--soft); font-size:12px;}
.fnote{color:var(--soft); font-size:12px; margin:8px 0 0; line-height:1.7;}
label.chk{display:flex; gap:10px; align-items:flex-start; font-weight:400; font-size:13.5px; line-height:1.7;}
label.chk input{width:auto; margin-top:5px;}
.code{font-family:var(--sans-en); background:var(--tint); border:1px solid var(--rule); padding:3px 10px; letter-spacing:.06em;}
.lvl{font-weight:700;} .lvl.l2{color:var(--ok);} .lvl.l1{color:var(--ink);} .lvl.l0{color:var(--soft);}
.rep{margin-top:14px; font-size:12.5px;} .rep summary{cursor:pointer; color:var(--soft);}
.rep form{display:grid; gap:8px; margin-top:10px;}
.rep select,.rep textarea,.rep input{border:1px solid var(--rule); background:var(--paper); padding:9px 10px; font-family:var(--sans-jp); font-size:13px; border-radius:0;}
.nearby h3{font-family:var(--head-jp);}
.detail-cols .main h3{font-family:var(--head-jp); font-weight:700; margin:26px 0 6px; font-size:18px;}

.logo-l{display:flex; align-items:center; gap:14px;}
.edition{display:flex; flex-direction:column; gap:2px; padding-left:14px; border-left:1px solid var(--ink); line-height:1.25;}
.edition .en{font-family:var(--sans-en); font-weight:500; font-size:9.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--accent);}
.edition .jp{font-family:var(--head-jp); font-weight:700; font-size:12.5px; letter-spacing:.24em; margin-right:-.24em;}
.foot .brand .edition{display:inline-flex; margin-left:14px; vertical-align:middle; border-color:var(--rule);}

.plist{margin:0 0 1.2em; padding-left:1.4em; font-size:15px; line-height:1.9; max-width:46em;} .plist li{margin-bottom:.4em;}

/* ---------- event detail: info under title, nearby on the right ---------- */
.pane.info{margin-bottom:26px;}
.info-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px 32px;}
.info-grid dt{margin-top:0 !important;}
@media (max-width:640px){.info-grid{grid-template-columns:1fr;}}
.detail-cols .side{position:sticky; top:14px;}
@media (max-width:900px){.detail-cols .side{position:static;}}
.side-near{border-top:1px solid var(--ink); padding-top:12px;}
.side-near h5{margin:0 0 6px; font-family:var(--head-jp); font-weight:700; font-size:16px;}
.side-near ul{list-style:none; margin:0; padding:0;}
.side-near li{border-bottom:1px solid var(--rule);}
.side-near a{display:flex; flex-direction:column; gap:3px; padding:14px 0;}
.side-near a:hover b{color:var(--accent);}
.side-near .cat{color:var(--accent); font-size:9.5px;}
.side-near b{font-family:var(--head-jp); font-weight:700; font-size:15px; line-height:1.5;}
.side-near .m{font-size:12px; color:var(--soft);}
.side-near .th{display:block; aspect-ratio:3/2; overflow:hidden; background:var(--tint); margin-bottom:6px;}
.side-near .th img{width:100%; height:100%; object-fit:cover; display:block;}

.side-near .ttl{font-family:var(--head-jp); font-weight:500; font-size:15px; line-height:1.55;}
.side-near .ttl .dt{font-family:var(--head-en); font-weight:800; font-size:15px; letter-spacing:.02em; margin-right:.7em; white-space:nowrap; font-variant-numeric:tabular-nums;}
.side-near a:hover .ttl{color:var(--accent);}

/* ---------- reactions ---------- */
.react{display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding-block:18px 4px;}
.rbtn{display:inline-flex; align-items:center; gap:9px; border:1px solid var(--ink); background:var(--paper); padding:11px 20px; cursor:pointer; font-size:14px; font-weight:700; letter-spacing:.04em; transition:all .2s;}
.rbtn svg{width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.rbtn b{font-family:var(--head-en); font-weight:800; font-variant-numeric:tabular-nums; margin-left:2px;}
.rbtn:hover:not([disabled]){border-color:var(--accent); color:var(--accent);}
.rbtn.on{background:var(--ink); color:var(--paper);} .rbtn.on svg{fill:currentColor;}
.rbtn[disabled]{opacity:.35; cursor:not-allowed;}
.rnote{color:var(--soft); font-size:12px;}
.tg .rx{border-color:transparent; color:var(--ink); letter-spacing:.04em; font-family:var(--sans-jp); text-transform:none; font-size:11px; padding-inline:4px;} .tg .rx b{font-family:var(--head-en); font-weight:800;}

/* ---------- post-event survey ---------- */
.fb{border:1px solid var(--ink); padding:18px 20px 16px; margin:26px 0; background:var(--paper);}
.fb-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
.fb-head h5{margin:0; font-family:var(--head-jp); font-weight:700; font-size:17px;} .fb-head h5 i{font-style:normal; font-family:var(--sans-jp); font-weight:400; font-size:12px; color:var(--soft); margin-left:12px;}
.fb-step{font-family:var(--head-en); font-weight:600; font-size:12px; color:var(--soft); letter-spacing:.08em;}
.fb-q{margin:16px 0 12px; font-family:var(--head-jp); font-weight:700; font-size:18px;}
.fb-opts{display:grid; grid-template-columns:1fr 1fr; gap:8px;} .fb-opts.multi{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));}
@media (max-width:420px){.fb-opts{grid-template-columns:1fr;}}
.fbo{border:1px solid var(--rule); background:var(--paper); padding:14px 12px; font-size:14px; cursor:pointer; text-align:left; transition:all .15s;}
.fbo:hover{border-color:var(--ink);} .fbo.on{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.fb-foot{display:flex; gap:18px; align-items:center; margin-top:12px; flex-wrap:wrap;}
.fb-send{background:var(--ink); color:var(--paper); border:0; padding:10px 22px; cursor:pointer; font-weight:700; letter-spacing:.08em;} .fb-send:hover{background:var(--accent);}
.fb-dots{display:flex; gap:6px; margin-top:14px;} .fb-dots span{width:22px; height:3px; background:var(--rule);} .fb-dots span.on{background:var(--ink);}
.fb-thanks{margin:18px 0 6px; line-height:1.9;}
.fb-sum{margin:14px 0 22px;} .fb-sum .bar{display:grid; grid-template-columns:150px 1fr 90px; gap:10px; align-items:center; font-size:13px; padding:3px 0;}
.fb-sum .t{height:8px; background:var(--tint); display:block;} .fb-sum .t i{display:block; height:100%; background:var(--ink);}
.fb-sum .v{font-family:var(--head-en); font-size:12px; color:var(--soft); text-align:right;}
@media (max-width:560px){.fb-sum .bar{grid-template-columns:1fr; gap:2px;}}

/* ---------- past results ---------- */
.past{margin:26px 0; border-top:1px solid var(--ink); padding-top:12px;}
.past h5{margin:0 0 6px; font-family:var(--head-jp); font-weight:700; font-size:17px;} .past h5 i{font-style:normal; font-family:var(--sans-jp); font-weight:400; font-size:12px; color:var(--soft); margin-left:12px;}
.yr-row{display:grid; grid-template-columns:78px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--rule);}
.yr-row .y{font-family:var(--head-en); font-weight:800; font-size:26px; letter-spacing:-.01em; line-height:1.1;}
.yr-row .nums{display:flex; gap:22px; flex-wrap:wrap; font-size:13px; color:var(--soft);} .yr-row .nums b{font-family:var(--head-en); font-weight:800; font-size:20px; color:var(--ink); margin-inline:2px;}
.yr-row p{margin:6px 0 0 !important; font-size:14px !important; line-height:1.8 !important;}

.takedown{font-size:12.5px; color:var(--soft); margin:14px 0 0;}
.disclaim{margin:22px 0 0; font-size:11.5px; color:var(--soft); line-height:1.8; max-width:60em;}

.fnote.resp{color:var(--ink); border-left:2px solid var(--rule); padding-left:10px; margin:8px 0 14px;}

/* ---------- run status (cancelled / postponed) ---------- */
.rs{display:inline-block; font-family:var(--sans-jp); font-weight:700; font-size:11px; letter-spacing:.06em; padding:1px 9px; border:1px solid currentColor;}
.rs-c{color:#fff; background:var(--accent); border-color:var(--accent);} .rs-p{color:#7a5300; background:#F7DFA0; border-color:#F7DFA0;} .rs-s{color:var(--soft); border-color:var(--rule);}
[data-theme="dark"] .rs-p{color:#F7DFA0; background:transparent; border-color:#F7DFA0;}
.runbanner{display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; padding:14px 18px; margin:14px 0 0; font-size:14px; border-left:4px solid var(--accent); background:var(--tint);}
.runbanner b{font-family:var(--head-jp); font-size:18px; color:var(--accent);} .runbanner.postponed{border-left-color:#E0A800;} .runbanner.postponed b{color:#9a6b00;}
.runbanner small{color:var(--soft); margin-left:auto; font-size:11.5px;}
.row.cx h4 a{color:var(--soft); text-decoration:line-through; text-decoration-thickness:1px;} .row.cx .d,.row.cx .m{opacity:.6;}

.share{display:flex; gap:14px; align-items:center; padding-block:6px 2px; font-size:13px;} .share .caps{color:var(--soft);} .share a,.share button{border:0; border-bottom:1px solid var(--ink); background:none; padding:0 0 2px; cursor:pointer; font-size:13px;} .share a:hover,.share button:hover{color:var(--accent); border-color:var(--accent);}

/* ---------- soft corners on boxes (subtle) ---------- */
:root{--r:22px; --r-s:12px; --r-pill:999px;}
.chip,.flt,.pick,.dbtn,.submit-btn,.rbtn,.fbo,.fb-send,.tagx,.pill,.btn,.txt-btn.boxed,.out-btn,.back-btn,.heart,.sortbar select,.sbox,.sbox button,.wz-next,.wz-send,.pg button{border-radius:var(--r-pill) !important;}
.sbox input{border-radius:0 !important;}
.sbox{border-radius:var(--r); overflow:hidden;}
.sbox input{border-radius:0;}
.formgrid input,.formgrid select,.formgrid textarea,.rep select,.rep textarea,.rep input,.daterow input[type=date],.sortbar select,.sel select{border-radius:var(--r-s);}
.pane,.facts,.fb,.warnbox,.cta-slot,.map-slot,.hero-slot,.thumbs div,.rel .ph,.near-col .ph,.notice,.runbanner,.flash,.past .yr-row + .yr-row{border-radius:var(--r);}
.notice,.runbanner{border-radius:0 var(--r) var(--r) 0;}
.chip,.flt,.pick,.dbtn,.submit-btn,.rbtn,.fbo,.fb-send,.tagx,.pill,.btn,.txt-btn.boxed,.out-btn,.back-btn,.heart,.sortbar select{border-radius:var(--r-s);}
.tg span,.rs,.code,.req,.opt,.hint code,.lvl{border-radius:3px;}
.fb-sum .t,.fb-sum .t i,.fb-dots span{border-radius:3px;}
.plate,.th,.land,.card .ph,.side-near .th,.detail-hero .ph{border-radius:var(--r-s); overflow:hidden;}
.lands{border-radius:0;} .land{border-radius:0;}
.pg button{border-radius:var(--r-s);}
.submit .btn{border-radius:var(--r-s);}
.results .row.picked{border-radius:var(--r);}
.tile{border-radius:var(--r);}

.promo{display:flex; gap:16px 26px; flex-wrap:wrap; align-items:baseline; padding:12px 16px; margin-bottom:22px; background:var(--tint); border-radius:6px; font-size:13px;}
.promo .caps{color:var(--soft);} .promo a{display:flex; flex-direction:column;} .promo a b{font-family:var(--head-jp); font-weight:700;} .promo a span{color:var(--soft); font-size:12px;}

/* ---------- submission wizard ---------- */
.wz-page{max-width:720px;}
.wz{margin-top:26px; border-top:1px solid var(--ink); padding-top:22px; min-height:360px;}
.wz-bar{height:3px; background:var(--rule); border-radius:3px; overflow:hidden;} .wz-bar span{display:block; height:100%; background:var(--ink); transition:width .3s;}
.wz-count{margin-top:8px; font-family:var(--head-en); font-size:12px; color:var(--soft); letter-spacing:.06em;}
.wz-q{margin:26px 0 6px; font-family:var(--head-jp); font-weight:700; font-size:clamp(22px,3.4vw,30px); line-height:1.4;}
.wz-h{margin:0 0 18px; color:var(--soft); font-size:14px;}
.wz-in{width:100%; border:1.5px solid var(--ink); background:var(--paper); padding:16px 16px; font-family:var(--sans-jp); font-size:17px; border-radius:6px; outline:none; color:var(--ink);}
.wz-in:focus{border-color:var(--accent);} textarea.wz-in{line-height:1.7; resize:vertical;}
.wz-cnt{text-align:right; font-size:12px; color:var(--soft); margin-top:4px;}
.wz-opts{display:grid; grid-template-columns:1fr 1fr; gap:10px;} @media (max-width:480px){.wz-opts{grid-template-columns:1fr;}}
.wz-o{padding:18px 16px; font-size:16px;}
.wz-multi{margin-top:12px;} .wz-l{display:block; font-size:12px; margin:12px 0 4px; font-weight:500;}
.wz-err{min-height:1.4em; margin:10px 0 0; color:var(--accent); font-size:13px;}
.wz-nav{display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:22px;}
.wz-back{background:none; border:0; cursor:pointer; font-size:14px; color:var(--soft); padding:10px 0;} .wz-back:hover{color:var(--ink);}
.wz-next,.wz-send{background:var(--ink); color:var(--paper); border:0; padding:15px 30px; font-size:15px; font-weight:700; letter-spacing:.06em; cursor:pointer; border-radius:4px; margin-left:12px;} .wz-next:hover,.wz-send:hover{background:var(--accent);}
.wz-rev{border-top:1px solid var(--rule); margin-top:8px;}
.wz-row{display:grid; grid-template-columns:110px 1fr auto; gap:14px; padding:12px 0; border-bottom:1px solid var(--rule); align-items:baseline; font-size:14px;}
.wz-k{font-size:12px; color:var(--soft);} .wz-v{word-break:break-word;} .wz-v i{color:var(--soft);}
@media (max-width:520px){.wz-row{grid-template-columns:80px 1fr auto;}}
