/* B案 貼り紙の壁 — 夜の路地裏、興行ポスターが重ね貼りされたコンクリ壁 */
@import url('https://fonts.googleapis.com/css2?family=Dela+Gothic+One&family=Shippori+Mincho+B1:wght@500;800&family=Yusei+Magic&family=Bebas+Neue&family=Noto+Sans+JP:wght@400;700;900&display=swap');

:root{
  --wall:#1e1c19; --wall2:#141311;
  --paper:#f2e6c8; --paper2:#e6d6ae; --ink:#17140f;
  --red:#c8161d; --red2:#e8202a; --yel:#f6c531; --blue:#1f5fc4; --chalk:#e9e4d6;
  --tape:rgba(255,245,200,.55);
  --gothic:"Dela Gothic One","Noto Sans JP",sans-serif;
  --mincho:"Shippori Mincho B1","Yu Mincho",serif;
  --hand:"Yusei Magic","Noto Sans JP",sans-serif;
  --num:"Bebas Neue",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--wall2)}
body{
  min-height:100vh;color:var(--chalk);font-family:"Noto Sans JP",sans-serif;
  background:
    radial-gradient(ellipse 60% 45% at 38% 0%, rgba(255,214,140,.22), transparent 70%),
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(0,0,0,.6), transparent 70%),
    linear-gradient(#242220,#161513 60%,#0f0e0d);
  position:relative;overflow-x:hidden;
}
body::before{ /* コンクリの粒 */
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.55;z-index:-1;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .6 0 0 0 0 .58 0 0 0 0 .55 0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
body::after{ /* ひび */
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.35;z-index:-1;
  background:
    linear-gradient(115deg, transparent 49.7%, rgba(0,0,0,.6) 50%, transparent 50.4%) 0 0/1400px 900px no-repeat,
    linear-gradient(80deg, transparent 49.8%, rgba(0,0,0,.5) 50%, transparent 50.3%) 300px 200px/900px 1200px no-repeat;
}
a{color:inherit;text-decoration:none}
.num{font-family:var(--num);letter-spacing:.04em}

/* ===== 鉄看板(ヘッダー) ===== */
.sign{
  position:relative;z-index:5;margin:22px auto 0;max-width:1500px;
  display:flex;align-items:center;gap:26px;padding:14px 26px 14px 30px;
  background:linear-gradient(#3a3b3d,#232426 55%,#1b1c1d);
  border:2px solid #0a0a0a;box-shadow:0 10px 30px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.12);
}
.sign::before,.sign::after{content:"";position:absolute;top:10px;bottom:10px;width:10px;
  background:radial-gradient(circle,#777 0 3px,#222 3.5px 4.5px,transparent 5px) center/10px 50% repeat-y}
.sign::before{left:8px}.sign::after{right:8px}
.sign .brand{font-family:var(--gothic);font-size:34px;letter-spacing:.14em;color:#d9d4c7;
  text-shadow:0 2px 0 #000, 0 0 18px rgba(255,220,150,.25);line-height:1}
.sign .brand small{display:block;font-family:var(--mincho);font-size:11px;letter-spacing:.5em;color:#8f8a7d;margin-top:6px;font-weight:500}
.sign nav{display:flex;gap:10px;margin-left:10px}
.sign nav a{ /* 張り紙 */
  font-family:var(--hand);font-size:15px;color:var(--ink);background:var(--paper);
  padding:8px 14px 7px;box-shadow:2px 3px 6px rgba(0,0,0,.6);position:relative;
}
.sign nav a:nth-child(odd){transform:rotate(-1.5deg)}
.sign nav a:nth-child(even){transform:rotate(1.2deg)}
.sign nav a.on{background:var(--yel);font-weight:700}
.sign nav a::before{content:"";position:absolute;left:50%;top:-6px;width:34px;height:12px;margin-left:-17px;background:var(--tape);transform:rotate(-3deg)}
.sign .stats{margin-left:auto;display:flex;gap:26px;align-items:center;font-family:var(--hand)}
.sign .stats div{text-align:center;color:var(--chalk)}
.sign .stats b{display:block;font-family:var(--num);font-size:30px;font-weight:400;line-height:1;color:#fff}
.sign .stats span{font-size:11px;letter-spacing:.3em;opacity:.7}
.seal18{width:46px;height:46px;border-radius:50%;background:#e2e2e2;color:#111;display:flex;align-items:center;justify-content:center;
  font-family:var(--num);font-size:18px;border:3px solid #111;box-shadow:0 2px 6px rgba(0,0,0,.6);transform:rotate(8deg)}

/* ===== 壁(本体) ===== */
.wall{position:relative;z-index:2;max-width:1500px;margin:0 auto;padding:40px 30px 120px;min-height:900px}

/* 落書き(声援) */
.graf{position:absolute;font-family:var(--hand);font-weight:700;line-height:1;pointer-events:none;white-space:nowrap;
  text-shadow:0 0 14px currentColor, 0 0 3px currentColor;opacity:.78}
.graf.r{color:#ff3b3b}.graf.b{color:#4d8dff}.graf.y{color:#ffd23f}.graf.w{color:#eee}
.graf small{display:block;font-size:.35em;opacity:.7;margin-top:4px;text-shadow:none;font-weight:400}

/* チョーク */
.chalk{font-family:var(--hand);color:var(--chalk);text-shadow:0 0 1px #fff;letter-spacing:.06em}
.chalk .tally{font-family:var(--hand);letter-spacing:.08em;font-size:1.1em}
.chalk .r{color:#ff8a8a}.chalk .b{color:#8ab4ff}
.chalk hr{border:0;border-top:2px dashed rgba(233,228,214,.4);margin:8px 0}

/* ===== ポスター ===== */
.poster{position:relative;background:var(--paper);color:var(--ink);box-shadow:0 18px 40px rgba(0,0,0,.65), 0 2px 4px rgba(0,0,0,.5);
  overflow:hidden}
.poster::after{ /* 紙の汚れ */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(ellipse at 10% 90%, rgba(120,90,40,.35), transparent 40%),radial-gradient(ellipse at 90% 10%, rgba(120,90,40,.25), transparent 35%);
}
.tape{position:absolute;width:90px;height:26px;background:var(--tape);box-shadow:0 1px 2px rgba(0,0,0,.25);z-index:3}
.tape.tl{left:-24px;top:16px;transform:rotate(-40deg)}.tape.tr{right:-24px;top:16px;transform:rotate(40deg)}
.tape.bl{left:-24px;bottom:16px;transform:rotate(40deg)}.tape.br{right:-24px;bottom:16px;transform:rotate(-40deg)}
.tape.top{left:50%;top:-10px;margin-left:-45px;transform:rotate(-2deg)}

/* 大ポスター(今夜のメイン) */
.main-poster{width:640px;aspect-ratio:7/10;display:grid;grid-template-rows:auto 1fr auto;
  clip-path:polygon(0 0,100% 0,100% 96%,97% 100%,93% 97%,88% 100%,0 100%)}
.main-poster .band{background:var(--red);color:#fff;font-family:var(--mincho);font-weight:800;letter-spacing:.35em;
  padding:10px 18px;font-size:16px;display:flex;justify-content:space-between;align-items:center}
.main-poster .band b{font-family:var(--gothic);font-size:22px;letter-spacing:.2em;font-weight:400}
.main-poster .faces{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#000}
.main-poster .faces img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.08) saturate(1.05)}
.main-poster .faces .l img{object-position:60% 20%}
.main-poster .faces .r img{object-position:40% 30%}
.main-poster .faces .name{position:absolute;top:18px;writing-mode:vertical-rl;font-family:var(--gothic);font-size:58px;color:#fff;
  line-height:1;padding:14px 8px;background:rgba(200,22,29,.92);text-shadow:2px 2px 0 #000;letter-spacing:.08em}
.main-poster .faces .name.l{left:14px}
.main-poster .faces .name.r{right:14px;background:rgba(10,10,10,.9);border:2px solid #fff}
.main-poster .faces .vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);
  font-family:var(--gothic);font-size:84px;color:var(--yel);-webkit-text-stroke:3px #000;text-shadow:6px 6px 0 var(--red);z-index:2}
.main-poster .faces .sub{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;
  padding:40px 18px 12px;font-family:var(--mincho);font-weight:800;font-size:15px;letter-spacing:.3em;text-align:center}
.main-poster .foot{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 18px 16px;
  background:repeating-linear-gradient(135deg,var(--paper) 0 18px,var(--paper2) 18px 20px)}
.main-poster .foot .date{font-family:var(--gothic);font-size:30px;letter-spacing:.04em;line-height:1.1}
.main-poster .foot .date small{display:block;font-family:var(--mincho);font-weight:800;font-size:13px;letter-spacing:.4em;margin-top:4px}
.main-poster .foot .org{font-family:var(--mincho);font-weight:800;font-size:12px;letter-spacing:.3em;text-align:right;line-height:1.7}
.main-poster .foot .org b{font-family:var(--gothic);font-size:16px;font-weight:400;display:block;letter-spacing:.2em}

/* 丸シール */
.sticker{position:absolute;z-index:4;width:118px;height:118px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--hand);color:#fff;background:var(--red2);box-shadow:0 6px 14px rgba(0,0,0,.5);transform:rotate(-12deg);line-height:1;text-align:center}
.sticker b{font-family:var(--num);font-size:40px;font-weight:400}
.sticker span{font-size:12px;letter-spacing:.2em;margin-top:4px}
.sticker.gold{background:var(--yel);color:#111}
.sticker.sm{width:78px;height:78px}.sticker.sm b{font-size:26px}.sticker.sm span{font-size:10px}

/* 小ポスター */
.poster.s{width:236px;color:var(--ink)}
.poster.s .img{aspect-ratio:3/4;overflow:hidden;background:#111;position:relative}
.poster.s .img img{width:100%;height:100%;object-fit:cover;display:block}
.poster.s .img.alt{background:radial-gradient(ellipse at 50% 100%, #3a3a3a, #0c0c0c)}
.poster.s .img.alt img{object-fit:contain;object-position:50% 100%;padding-top:10px}
.poster.s .band{background:var(--red);color:#fff;font-family:var(--mincho);font-weight:800;font-size:11px;letter-spacing:.3em;padding:6px 10px;display:flex;justify-content:space-between}
.poster.s .band.k{background:#111}
.poster.s .ttl{font-family:var(--gothic);font-size:18px;line-height:1.2;padding:12px 12px 4px;letter-spacing:.02em}
.poster.s .meta{display:flex;justify-content:space-between;align-items:flex-end;padding:0 12px 12px;font-family:var(--mincho);font-weight:800;font-size:11px;letter-spacing:.2em}
.poster.s .meta b{font-family:var(--num);font-size:24px;font-weight:400;letter-spacing:.02em;color:var(--red)}
.poster.s .stamp{position:absolute;right:10px;top:10px;z-index:3}
.stamp{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:3px solid var(--red2);color:var(--red2);border-radius:50%;
  font-family:var(--mincho);font-weight:800;font-size:22px;transform:rotate(-14deg);background:rgba(255,255,255,.5);opacity:.9}
.stamp.sq{border-radius:4px;width:auto;padding:4px 8px;font-size:14px;letter-spacing:.2em}
.emb{position:absolute;left:10px;top:10px;width:54px;height:54px;border-radius:50%;box-shadow:0 3px 8px rgba(0,0,0,.6);z-index:3;background:#fff}
.note{ /* 手書きの付箋 */
  position:absolute;z-index:4;background:#fff7a8;color:#222;font-family:var(--hand);font-size:14px;line-height:1.5;padding:10px 12px;
  box-shadow:2px 4px 10px rgba(0,0,0,.5);transform:rotate(3deg);max-width:160px}
.note.blue{background:#b8dcff}.note.pink{background:#ffc4d2}

/* ===== 一覧ページの配置 ===== */
.wall-scene{position:relative;display:grid;grid-template-columns:640px 1fr;gap:40px;align-items:start}
.wall-scene .cluster{position:relative;height:1010px}
.wall-scene .cluster .poster{position:absolute}
.wall-scene .cluster .p1{left:0;top:0;transform:rotate(-3deg);z-index:3}
.wall-scene .cluster .p2{left:252px;top:-14px;transform:rotate(2deg);z-index:2}
.wall-scene .cluster .p3{left:504px;top:10px;transform:rotate(-1.5deg);z-index:1}
.wall-scene .cluster .p4{left:14px;top:500px;transform:rotate(2.5deg);z-index:2}
.wall-scene .cluster .p5{left:262px;top:486px;transform:rotate(-2deg);z-index:4}
.wall-scene .cluster .p6{left:512px;top:515px;transform:rotate(1.5deg);z-index:1}
.wall-scene .cluster .old{filter:brightness(.55) sepia(.4);z-index:0}
.main-wrap{position:relative;transform:rotate(-1.2deg)}
.main-wrap .sticker{right:-34px;top:auto;bottom:150px}

/* 壁に書いたメーター */
.chalk-meter{position:relative;margin-top:38px;max-width:640px;padding:18px 22px;border:2px dashed rgba(233,228,214,.35);border-radius:4px}
.chalk-meter h3{font-size:18px;margin-bottom:8px}
.chalk-meter .row{display:flex;align-items:baseline;gap:14px;font-size:18px;margin:6px 0}
.chalk-meter .row b{font-family:var(--num);font-size:34px;font-weight:400;width:90px}
.chalk-meter .row .tally{flex:1;letter-spacing:.12em;font-size:22px;white-space:nowrap;overflow:hidden}

/* コルクのティーザー */
.cork-teaser{margin-top:60px;position:relative;padding:28px 30px 34px;
  background:radial-gradient(circle at 20% 30%, rgba(255,255,255,.08), transparent 30%),#9a6b3a;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 .45 0 0 0 0 .3 0 0 0 0 .15 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  border:14px solid #3b2a1c;box-shadow:0 20px 50px rgba(0,0,0,.6), inset 0 0 40px rgba(0,0,0,.35)}
.cork-teaser h2{font-family:var(--hand);color:#fff;font-size:26px;text-shadow:0 2px 0 rgba(0,0,0,.5);display:flex;align-items:baseline;gap:18px}
.cork-teaser h2 small{font-size:14px;opacity:.85}
.cork-teaser .cards{display:flex;gap:26px;margin-top:22px;flex-wrap:wrap}

/* 索引カード(カード希望) */
.icard{position:relative;width:330px;background:#fffdf5;color:#222;padding:18px 16px 14px;font-family:var(--hand);
  background-image:repeating-linear-gradient(transparent 0 27px, rgba(70,120,200,.28) 27px 28px);background-position:0 38px;
  box-shadow:0 8px 18px rgba(0,0,0,.45);border-top:3px solid #e06b7a}
.icard::before{content:"";position:absolute;left:50%;top:-9px;width:18px;height:18px;margin-left:-9px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #ff8a8a, #b00 70%);box-shadow:0 3px 5px rgba(0,0,0,.5);z-index:3}
.icard.pin-b::before{background:radial-gradient(circle at 35% 35%, #9ac4ff, #1a4fb0 70%)}
.icard.pin-g::before{background:radial-gradient(circle at 35% 35%, #b6f0c5, #1f8f45 70%)}
.icard .vsrow{display:grid;grid-template-columns:1fr 40px 1fr;align-items:center;gap:6px;margin-top:4px}
.icard .w{text-align:center}
.icard .w img{width:76px;height:76px;object-fit:cover;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);transform:rotate(-3deg);background:#ddd}
.icard .w:last-child img{transform:rotate(3deg)}
.icard .w b{display:block;font-size:15px;margin-top:6px;line-height:1.2}
.icard .w small{display:block;font-size:10px;color:#777;letter-spacing:.1em}
.icard .vs{font-family:var(--gothic);color:var(--red);font-size:22px;text-align:center;transform:rotate(-10deg)}
.icard .situ{font-size:13px;line-height:1.7;margin-top:10px;color:#333;min-height:44px}
.icard .tally-row{display:flex;align-items:center;gap:10px;margin-top:8px;color:#c0202a;font-size:18px;letter-spacing:.1em}
.icard .tally-row b{font-family:var(--num);font-size:30px;font-weight:400;color:#222;margin-left:auto}
.icard .tally-row small{font-size:10px;color:#777;letter-spacing:.2em}
.icard .push{display:inline-block;margin-top:8px;background:var(--red2);color:#fff;font-size:14px;padding:6px 14px;border-radius:3px;box-shadow:0 3px 0 #8a0d12;transform:rotate(-2deg)}
.icard .push.done{background:#ddd;color:#666;box-shadow:0 3px 0 #999}
.icard .hanko{position:absolute;right:12px;bottom:12px;color:#d0202a;border:3px solid #d0202a;border-radius:6px;padding:4px 8px;font-family:var(--mincho);font-weight:800;
  font-size:13px;line-height:1.3;transform:rotate(-8deg);opacity:.85;text-align:center}
.icard .hanko b{font-size:26px;display:block}
.icard .by{position:absolute;right:14px;top:10px;font-size:10px;color:#888}

/* ===== 興行ページ ===== */
.ev{display:grid;grid-template-columns:640px 1fr;gap:56px;align-items:start}
.photos{position:relative;margin-top:60px;height:880px}
.photo{position:absolute;background:#fff;padding:10px 10px 28px;box-shadow:0 10px 24px rgba(0,0,0,.6);width:230px}
.photo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#222}
.photo span{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-family:var(--hand);font-size:12px;color:#333}
.photo.lock img{filter:blur(6px) brightness(.5)}
.photo.lock::after{content:"Patreon";position:absolute;left:50%;top:40%;transform:translate(-50%,-50%) rotate(-10deg);font-family:var(--mincho);font-weight:800;color:var(--red2);border:3px solid var(--red2);padding:4px 10px;font-size:18px;letter-spacing:.3em;background:rgba(255,255,255,.7)}
.sheet{position:relative;background:#f6f1e3;color:#1c1a16;padding:30px 32px 28px;box-shadow:0 16px 40px rgba(0,0,0,.6);transform:rotate(.8deg)}
.sheet h1{font-family:var(--gothic);font-size:44px;line-height:1.1;letter-spacing:.02em}
.sheet h1 em{font-style:normal;color:var(--red);font-size:26px;display:block;letter-spacing:.3em;margin:4px 0}
.sheet .kicker{font-family:var(--mincho);font-weight:800;letter-spacing:.35em;font-size:13px;color:#6a5a3a;margin-bottom:12px}
.sheet .meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sheet .meta span{font-family:var(--mincho);font-weight:800;font-size:12px;letter-spacing:.2em;border:1.5px solid #1c1a16;padding:4px 10px}
.sheet .meta span.red{border-color:var(--red);color:var(--red)}
.sheet p{font-family:var(--mincho);font-weight:500;font-size:15px;line-height:2;margin-top:16px}
.ticket{position:relative;display:flex;align-items:center;margin-top:22px;background:#fff;border:2px solid #1c1a16;overflow:hidden}
.ticket .stub{width:110px;background:var(--red);color:#fff;font-family:var(--num);font-size:30px;display:flex;align-items:center;justify-content:center;align-self:stretch;
  border-right:2px dashed #fff;writing-mode:vertical-rl;letter-spacing:.2em}
.ticket .body{padding:14px 18px;flex:1}
.ticket .body b{font-family:var(--gothic);font-size:18px;display:block;letter-spacing:.04em}
.ticket .body span{font-family:var(--mincho);font-weight:800;font-size:12px;letter-spacing:.2em;color:#555}
.ticket .arrow{font-family:var(--num);font-size:34px;padding:0 18px;color:var(--red)}
.ticket::before,.ticket::after{content:"";position:absolute;left:98px;width:22px;height:22px;background:var(--paper);border:2px solid #1c1a16;border-radius:50%}
.ticket::before{top:-13px}.ticket::after{bottom:-13px}

/* スプレーのボタン */
.spray{position:relative;margin-top:30px;padding:18px 20px 16px;background:rgba(10,10,10,.82);border:2px dashed rgba(255,255,255,.3)}
.spray .lbl{display:flex;justify-content:space-between;font-family:var(--hand);font-size:12px;letter-spacing:.3em;opacity:.7;margin-bottom:10px}
.spray .row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.spray .row+.row{margin-top:10px}
.sp{appearance:none;cursor:pointer;background:transparent;border:3px solid;border-radius:4px;padding:14px 0 10px;font-family:var(--hand);font-size:22px;color:#fff;
  display:flex;flex-direction:column;align-items:center;gap:2px;text-shadow:0 0 10px currentColor;transition:transform .08s}
.sp small{font-family:var(--num);font-size:13px;opacity:.7;text-shadow:none}
.sp.r{border-color:#ff3b3b;color:#ff5c5c}.sp.b{border-color:#4d8dff;color:#6ea1ff}.sp.y{border-color:#ffd23f;color:#ffd96a}
.sp:active{transform:scale(.95)}
.sp.hit{animation:hit .3s}
@keyframes hit{40%{background:#fff;color:#000;text-shadow:none}}
.graf.new{animation:spray .5s ease-out}
@keyframes spray{0%{transform:scale(.4) rotate(-20deg);opacity:0}100%{opacity:.85}}

/* 付箋の声 */
.notes{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;margin-top:34px}
.notes .note{position:static;max-width:none;font-size:14px;padding:14px 14px 12px}
.notes .note:nth-child(3n){transform:rotate(-2deg)}.notes .note:nth-child(3n+1){transform:rotate(1.5deg)}.notes .note:nth-child(3n+2){transform:rotate(-.5deg)}
.notes .note .who{font-size:10px;color:#555;letter-spacing:.1em;display:flex;justify-content:space-between;margin-bottom:4px}
.notes .note .who i{font-style:normal;color:#b0101a;border:1px solid #b0101a;padding:0 4px;border-radius:2px}
.notes .note .c{display:inline-block;margin-top:6px;font-size:12px;padding:1px 8px;border-radius:999px;color:#fff;background:#ff3b3b}
.notes .note .c.b{background:#2f6fe0}.notes .note .c.y{background:#d9a300}

/* ===== コルクボード(カード希望ページ) ===== */
.cork{position:relative;margin:40px auto 120px;max-width:1500px;padding:40px 44px 60px;
  background:#9a6b3a;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 .45 0 0 0 0 .3 0 0 0 0 .15 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  border:18px solid #3b2a1c;box-shadow:0 30px 70px rgba(0,0,0,.7), inset 0 0 60px rgba(0,0,0,.4)}
.cork .head{display:flex;align-items:flex-start;gap:30px;margin-bottom:34px}
.cork .head .paper{background:#fff;color:#111;padding:18px 26px;font-family:var(--hand);transform:rotate(-1deg);box-shadow:0 8px 18px rgba(0,0,0,.45);position:relative}
.cork .head .paper h1{font-family:var(--gothic);font-size:38px;line-height:1.1}
.cork .head .paper p{font-size:15px;margin-top:6px;color:#444}
.cork .head .paper .tape{top:-12px}
.tag{ /* 荷札 */
  position:relative;background:#f3e3b4;color:#111;padding:14px 20px 14px 36px;font-family:var(--hand);transform:rotate(2deg);box-shadow:0 8px 18px rgba(0,0,0,.45);
  clip-path:polygon(18px 0,100% 0,100% 100%,18px 100%,0 50%)}
.tag::before{content:"";position:absolute;left:14px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#9a6b3a;box-shadow:inset 0 0 0 2px #c9a86a}
.tag b{font-family:var(--num);font-size:40px;font-weight:400;line-height:1;display:block}
.tag span{font-size:12px;letter-spacing:.2em;color:#555}
.tag em{font-style:normal;color:var(--red);font-size:14px}
.cork .rules{margin-left:auto;background:#fff7a8;color:#222;font-family:var(--hand);font-size:13px;line-height:1.8;padding:12px 16px;transform:rotate(1.5deg);box-shadow:0 8px 18px rgba(0,0,0,.45);max-width:300px}
.cork .filters{display:flex;gap:10px;margin-bottom:26px}
.cork .filters span{font-family:var(--hand);background:#fff;color:#333;padding:6px 14px;font-size:14px;box-shadow:0 4px 10px rgba(0,0,0,.4)}
.cork .filters span.on{background:var(--yel)}
.cork .grid{display:grid;grid-template-columns:repeat(auto-fill,330px);gap:44px 36px;justify-content:space-between}
.cork .grid .icard:nth-child(4n+1){transform:rotate(-2.2deg)}.cork .grid .icard:nth-child(4n+2){transform:rotate(1.6deg)}
.cork .grid .icard:nth-child(4n+3){transform:rotate(-.8deg)}.cork .grid .icard:nth-child(4n){transform:rotate(2.4deg)}
.icard.blank{background:#fffdf5;border-top-color:#bbb;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:#999;font-size:16px;text-align:center;gap:14px}
.icard.blank .push{background:#111;box-shadow:0 3px 0 #000;font-size:16px;padding:10px 20px;color:#fff}

/* 街灯のちらつき(常時フレームを出す。背景タブでも描画が止まらない) */
@keyframes lamp{0%,100%{opacity:1}50%{opacity:.93}}
html::after{content:"";position:fixed;left:0;top:0;width:3px;height:3px;background:#fff;opacity:.02;pointer-events:none;animation:lamp 1.2s linear infinite;z-index:99}

/* ===== 開場初日の状態: 貼られる前の跡、仮ポスター ===== */
.poster.ghost{background:transparent;box-shadow:none;border:2px dashed rgba(233,228,214,.22);pointer-events:none}
.poster.ghost::after{display:none}
.poster.ghost .tape{opacity:.35}
.poster.ghost .img{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;font-family:var(--hand);color:rgba(233,228,214,.35);font-size:15px;letter-spacing:.2em;text-align:center;line-height:2}
.poster.ghost .scrap{position:absolute;background:var(--paper2);opacity:.55;clip-path:polygon(0 0,100% 10%,90% 100%,10% 85%)}
.main-poster.tbd{background:repeating-linear-gradient(135deg,var(--paper) 0 22px,var(--paper2) 22px 24px)}
.main-poster.tbd .faces{background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:30px;text-align:center}
.main-poster.tbd .faces .big{font-family:var(--gothic);font-size:64px;line-height:1.1;color:var(--ink);letter-spacing:.04em}
.main-poster.tbd .faces .big em{font-style:normal;color:var(--red);display:block;font-size:30px;letter-spacing:.3em;margin-bottom:10px}
.main-poster.tbd .faces .hand{font-family:var(--hand);font-size:20px;color:#333;line-height:1.7;border-top:2px dashed #999;padding-top:16px;max-width:420px}
.main-poster.tbd .faces .go{display:inline-block;background:var(--ink);color:#fff;font-family:var(--gothic);font-size:18px;letter-spacing:.2em;padding:12px 26px;margin-top:4px}
.state-switch{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;display:flex;gap:4px;background:#000;border:1px solid #444;padding:6px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.7)}
.state-switch a{font-family:"Noto Sans JP";font-weight:900;font-size:12px;letter-spacing:.15em;color:#aaa;padding:8px 16px;border-radius:999px}
.state-switch a.on{background:#fff;color:#000}

/* ===== 18+ ゲート(シャッター) ===== */
.gate-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px 60px;position:relative;z-index:2}
.gate-brand{font-family:var(--gothic);font-size:22px;letter-spacing:.3em;color:#8f8a7d;margin-bottom:26px}
.shutter{width:min(980px,96vw);aspect-ratio:16/9;position:relative;border:14px solid #15150f;border-bottom:0;box-shadow:0 30px 80px rgba(0,0,0,.8), inset 0 0 60px rgba(0,0,0,.6);
  background:repeating-linear-gradient(#5a5852 0 10px,#3e3d38 10px 14px,#6a6861 14px 18px,#45443f 18px 28px)}
.shutter::after{content:"";position:absolute;left:-14px;right:-14px;bottom:-26px;height:26px;background:#0a0a08;box-shadow:0 -4px 12px rgba(0,0,0,.6)}
.shutter .paper{position:absolute;background:var(--paper);color:var(--ink);box-shadow:0 14px 30px rgba(0,0,0,.6);padding:24px 30px}
.shutter .paper.big{left:8%;top:12%;width:50%;transform:rotate(-2deg)}
.shutter .paper.big h1{font-family:var(--gothic);font-size:56px;line-height:1.1;letter-spacing:.02em}
.shutter .paper.big h1 em{font-style:normal;color:var(--red);display:block;font-size:30px;letter-spacing:.3em;margin-bottom:8px}
.shutter .paper.big p{font-family:var(--mincho);font-weight:800;font-size:14px;letter-spacing:.2em;margin-top:14px;line-height:1.9}
.shutter .paper.rules{right:6%;top:10%;width:30%;transform:rotate(2deg);font-family:var(--hand);font-size:14px;line-height:1.9;background:#fff7a8;padding:16px 18px}
.shutter .paper.rules b{display:block;font-size:16px;margin-bottom:4px}
.gate-actions{position:absolute;left:0;right:0;bottom:8%;display:flex;justify-content:center;gap:22px}
.gate-actions a{font-family:var(--gothic);font-size:20px;letter-spacing:.2em;padding:18px 36px;background:var(--yel);color:var(--ink);box-shadow:0 10px 24px rgba(0,0,0,.6);transform:rotate(-1deg);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 70%,8px 50%,0 30%)}
.gate-actions a.out{background:#2a2a2a;color:#aaa;transform:rotate(1deg)}
.gate-foot{margin-top:40px;font-family:var(--hand);font-size:12px;color:#6f6a60;letter-spacing:.1em;text-align:center;line-height:1.9}

/* ===== 安価試合 ===== */
.anka{display:grid;grid-template-columns:1fr 420px;gap:40px;align-items:start}
.anka-head{display:flex;align-items:flex-end;gap:26px;margin-bottom:30px}
.anka-head .ttl{font-family:var(--gothic);font-size:40px;color:#fff;line-height:1.1;text-shadow:2px 2px 0 #000}
.anka-head .ttl small{display:block;font-family:var(--hand);font-size:14px;color:#bbb;letter-spacing:.2em;margin-top:8px}
.anka-head .live{font-family:var(--hand);background:var(--red2);color:#fff;padding:8px 14px;font-size:14px;transform:rotate(-2deg);box-shadow:0 6px 14px rgba(0,0,0,.5)}
.anka-head .live::before{content:"●";margin-right:6px;animation:bl 1s infinite}
@keyframes bl{50%{opacity:.2}}
.scene{position:relative;background:#fff;padding:14px 14px 40px;box-shadow:0 20px 50px rgba(0,0,0,.7);transform:rotate(-1deg);width:560px}
.scene img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#111}
.scene .cap{position:absolute;left:0;right:0;bottom:10px;text-align:center;font-family:var(--hand);font-size:15px;color:#222}
.scene .rnd{position:absolute;left:-26px;top:-20px;background:var(--red2);color:#fff;font-family:var(--gothic);font-size:22px;padding:8px 16px;transform:rotate(-6deg);box-shadow:0 6px 14px rgba(0,0,0,.5)}
.rounds{display:flex;gap:18px;margin-top:44px;align-items:center;flex-wrap:wrap}
.rounds .r{position:relative;width:150px;background:#fff;padding:8px 8px 30px;box-shadow:0 8px 20px rgba(0,0,0,.6)}
.rounds .r img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;filter:saturate(.8) brightness(.9)}
.rounds .r span{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-family:var(--hand);font-size:12px;color:#333}
.rounds .r .ke{position:absolute;right:-10px;top:-10px}
.rounds .r:nth-child(odd){transform:rotate(-2deg)}.rounds .r:nth-child(even){transform:rotate(2deg)}
.rounds .arrow{font-family:var(--hand);color:#8f8a7d;font-size:26px}
.rounds .next{width:150px;aspect-ratio:3/4.4;border:2px dashed rgba(233,228,214,.3);display:flex;align-items:center;justify-content:center;font-family:var(--hand);color:rgba(233,228,214,.5);font-size:14px;text-align:center;line-height:1.8}
.ballot{background:var(--paper);color:var(--ink);padding:22px 22px 18px;box-shadow:0 18px 40px rgba(0,0,0,.6);transform:rotate(1deg);position:relative}
.ballot h2{font-family:var(--gothic);font-size:30px;line-height:1.1}
.ballot h2 small{display:block;font-family:var(--hand);font-size:13px;color:#555;margin-top:6px;letter-spacing:.1em}
.ballot .dl{display:flex;align-items:baseline;gap:10px;margin:14px 0 10px;font-family:var(--hand);font-size:14px;color:#333}
.ballot .dl b{font-family:var(--num);font-size:42px;color:var(--red);font-weight:400;line-height:1}
.opt{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:12px 10px;border-top:2px dashed #b9ad8c;font-family:var(--hand)}
.opt .k{font-family:var(--gothic);font-size:22px;color:var(--red)}
.opt .t{font-size:20px;line-height:1.3}
.opt .t small{display:block;font-size:12px;color:#666;margin-top:2px}
.opt .t .tally{display:block;color:#c0202a;font-size:16px;letter-spacing:.1em;margin-top:4px}
.opt .t .tally b{font-family:var(--num);color:#111;font-size:22px;font-weight:400;margin-left:8px}
.opt .pick{background:var(--ink);color:#fff;font-size:14px;padding:8px 14px;border-radius:3px;cursor:pointer;white-space:nowrap}
.opt.lead{background:rgba(246,197,49,.25)}
.opt.lead .pick{background:var(--red2)}
.ballot .rule{margin-top:14px;font-family:var(--hand);font-size:12px;color:#555;line-height:1.8;border-top:1px solid #b9ad8c;padding-top:10px}

/* ===== 選手名鑑 ===== */
.filters-wall{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px;align-items:center}
.filters-wall span{font-family:var(--hand);background:var(--paper);color:var(--ink);padding:7px 14px;font-size:14px;box-shadow:0 4px 10px rgba(0,0,0,.5);transform:rotate(-1deg)}
.filters-wall span.on{background:var(--yel);font-weight:700}
.filters-wall .chalk{margin-left:auto;font-size:14px}
.roster{display:grid;grid-template-columns:repeat(auto-fill,236px);gap:48px 30px;justify-content:space-between}
.pcard{position:relative;background:var(--paper);color:var(--ink);box-shadow:0 18px 40px rgba(0,0,0,.65);display:block}
.pcard:nth-child(4n+1){transform:rotate(-1.5deg)}.pcard:nth-child(4n+2){transform:rotate(1.2deg)}.pcard:nth-child(4n+3){transform:rotate(-.6deg)}.pcard:nth-child(4n){transform:rotate(1.8deg)}
.pcard .img{aspect-ratio:3/4;overflow:hidden;background:#111;position:relative}
.pcard .img img{width:100%;height:100%;object-fit:cover;display:block}
.pcard .img img.full{object-fit:contain;object-position:50% 100%;background:radial-gradient(ellipse at 50% 100%, #3a3a3a, #0c0c0c)}
.pcard .img .nm{position:absolute;right:8px;top:8px;writing-mode:vertical-rl;font-family:var(--gothic);font-size:26px;color:#fff;background:rgba(200,22,29,.92);padding:10px 5px;line-height:1;text-shadow:1px 1px 0 #000}
.pcard .img .nm.k{background:rgba(10,10,10,.9);border:2px solid #fff}
.pcard .img .emb{left:8px;top:8px;width:40px;height:40px}
.pcard .band{background:var(--red);color:#fff;font-family:var(--mincho);font-weight:800;font-size:11px;letter-spacing:.3em;padding:6px 10px;display:flex;justify-content:space-between}
.pcard .band.k{background:#111}
.pcard .body{padding:10px 12px 12px;font-family:var(--hand)}
.pcard .row{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:#555;padding:4px 0;border-bottom:1px dashed #cfc3a2}
.pcard .row:last-child{border-bottom:0}
.pcard .row b{font-family:var(--num);font-size:20px;color:#111;font-weight:400}
.pcard .row .tally{color:#c0202a;font-size:13px}
.pcard .row .tally.b{color:#1f5fc4}
.pcard .oshi{right:-14px;top:252px;bottom:auto;width:64px;height:64px;transform:rotate(10deg)}
.pcard .oshi b{font-family:var(--mincho);font-size:26px;font-weight:800}
.pcard .oshi.off{background:#ddd;color:#777;box-shadow:0 3px 8px rgba(0,0,0,.4)}

/* ===== 控室(ホワイトボード) ===== */
.room{display:grid;grid-template-columns:1fr 520px;gap:40px;align-items:start}
.wb{background:#fafaf6;color:#222;border:14px solid #c9c9c9;border-radius:4px;padding:24px 28px 30px;box-shadow:0 20px 50px rgba(0,0,0,.7), inset 0 0 40px rgba(0,0,0,.05);position:relative;font-family:var(--hand)}
.wb::after{content:"";position:absolute;left:30px;right:30px;bottom:-30px;height:14px;background:#aaa;border-radius:0 0 4px 4px}
.wb h2{font-size:28px;color:#1a3fa0;border-bottom:3px solid #1a3fa0;padding-bottom:6px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline}
.wb h2 small{font-size:13px;color:#555}
.wb .sec{font-size:14px;color:#c0202a;margin:16px 0 4px;letter-spacing:.1em}
.wbrow{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:baseline;padding:8px 6px;border-bottom:1px dashed #bbb;font-size:17px;text-decoration:none;color:#222}
.wbrow:hover{background:#fff3b0;text-decoration:none}
.wbrow .t{line-height:1.3}
.wbrow .t small{display:block;font-size:11px;color:#777;margin-top:2px}
.wbrow .n{font-family:var(--num);font-size:20px;color:#1a3fa0}
.wbrow .ik{font-size:12px;color:#c0202a;white-space:nowrap}
.wbrow .ik b{font-family:var(--num);font-size:18px;font-weight:400}
.wbrow.on{background:#fff3b0}
.wb .newbtn{display:inline-block;margin-top:18px;border:2px solid #1a3fa0;color:#1a3fa0;padding:8px 16px;font-size:15px;transform:rotate(-1deg)}
.wb .magnet{position:absolute;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#1a3fa0 60%);box-shadow:0 2px 4px rgba(0,0,0,.4)}
.thread-head{font-family:var(--hand);color:var(--chalk);font-size:22px;margin-bottom:14px}
.thread-head small{display:block;font-size:12px;opacity:.7;margin-top:4px}
.form-paper{background:var(--paper);color:var(--ink);padding:14px 16px;margin-top:22px;box-shadow:0 10px 24px rgba(0,0,0,.5);font-family:var(--hand);transform:rotate(.6deg);position:relative}
.form-paper textarea{width:100%;height:70px;border:0;border-bottom:2px dashed #b9ad8c;background:transparent;font-family:inherit;font-size:14px;resize:vertical;padding:4px}
.form-paper .nm{display:flex;gap:10px;align-items:center;font-size:12px;color:#555;margin-top:8px}
.form-paper .nm input{border:0;border-bottom:1px solid #999;background:transparent;font-family:inherit;font-size:13px;width:140px}
.form-paper .btn{margin-left:auto;background:var(--ink);color:#fff;padding:8px 16px;font-size:14px;border-radius:3px}

/* ===== 道場 ===== */
.dojo{display:grid;grid-template-columns:420px 1fr;gap:40px;align-items:start}
.dojo-list .dcard{display:grid;grid-template-columns:1fr auto;gap:10px;background:var(--paper);color:var(--ink);padding:14px 16px;margin-bottom:20px;box-shadow:0 10px 24px rgba(0,0,0,.55);font-family:var(--hand);position:relative;text-decoration:none}
.dojo-list .dcard:nth-child(odd){transform:rotate(-1deg)}.dojo-list .dcard:nth-child(even){transform:rotate(.8deg)}
.dojo-list .dcard.on{background:#fff3b0}
.dcard .tags{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.dcard .tags span{font-size:10px;font-weight:700;letter-spacing:.15em;border:1.5px solid var(--ink);padding:1px 6px;font-family:"Noto Sans JP"}
.dcard .tags span.r{border-color:var(--red);color:var(--red)}
.dcard b{font-family:var(--gothic);font-size:18px;line-height:1.3;display:block}
.dcard small{display:block;font-size:11px;color:#666;margin-top:4px}
.dcard .n{font-family:var(--num);font-size:24px;align-self:center;text-align:center}
.dcard .n small{text-align:center}
.dojo .sheet{transform:rotate(-.5deg)}
.dojo .sheet h1{font-size:34px}
.dojo .sheet .two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.dojo .sheet .two figure{background:#fff;padding:8px 8px 26px;box-shadow:0 6px 14px rgba(0,0,0,.3);position:relative;margin:0}
.dojo .sheet .two img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.dojo .sheet .two figcaption{position:absolute;left:0;right:0;bottom:5px;text-align:center;font-family:var(--hand);font-size:12px;color:#333}
.dojo .sheet ol{margin:14px 0 0 1.4em;font-family:var(--mincho);font-weight:500;font-size:14.5px;line-height:2}

.pcard .row{flex-wrap:wrap}
.pcard .row > span + span{flex-basis:100%;display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-top:2px}

/* ===== 声援試合(どちらの側につくか) ===== */
.live-grid{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:40px;align-items:start}
.sides{background:var(--paper);color:var(--ink);padding:20px 20px 16px;box-shadow:0 18px 40px rgba(0,0,0,.6);transform:rotate(.8deg);position:relative}
.sides h2{font-family:var(--gothic);font-size:30px;line-height:1.1;display:flex;justify-content:space-between;align-items:baseline}
.sides h2 small{font-family:var(--hand);font-size:13px;color:#555;letter-spacing:.1em}
.sides .dl{display:flex;align-items:baseline;gap:10px;margin:10px 0 14px;font-family:var(--hand);font-size:14px;color:#333}
.sides .dl b{font-family:var(--num);font-size:42px;color:var(--red);font-weight:400;line-height:1}
.tug{display:grid;grid-template-columns:1fr 1fr;gap:0;border:3px solid var(--ink);position:relative}
.tug .side{padding:14px 14px 12px;position:relative}
.tug .side.a{background:rgba(200,22,29,.08)}
.tug .side.b{background:rgba(31,95,196,.08);border-left:3px solid var(--ink)}
.tug .side .who{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tug .side .who img{width:52px;height:52px;object-fit:cover;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.tug .side .who b{font-family:var(--gothic);font-size:20px;line-height:1.1;display:block}
.tug .side .who small{font-family:var(--hand);font-size:11px;color:#666;display:block;margin-top:2px}
.tug .side .role{display:inline-block;font-family:var(--hand);font-size:11px;padding:1px 8px;border:1.5px solid;border-radius:3px;margin-bottom:8px}
.tug .side.a .role{color:var(--red);border-color:var(--red)}
.tug .side.b .role{color:var(--blue);border-color:var(--blue)}
.tug .side .tl{font-family:var(--hand);font-size:17px;letter-spacing:.1em;line-height:1.3;min-height:48px}
.tug .side.a .tl{color:#c0202a}.tug .side.b .tl{color:#1f5fc4}
.tug .side .tl b{font-family:var(--num);font-size:30px;color:#111;font-weight:400;margin-left:6px}
.tug .side .btns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.tug .cb{appearance:none;cursor:pointer;border:2px solid;border-radius:4px;background:#fff;font-family:var(--hand);font-size:15px;padding:9px 0 7px;color:#111;display:flex;flex-direction:column;align-items:center;gap:1px}
.tug .cb small{font-family:var(--num);font-size:11px;color:#777}
.tug .side.a .cb{border-color:var(--red)}.tug .side.b .cb{border-color:var(--blue)}
.tug .cb:active{transform:scale(.95)}
.tug .cb.hit{animation:hit .3s}
.tug .vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);font-family:var(--gothic);font-size:30px;color:var(--yel);-webkit-text-stroke:2px #000;z-index:2;text-shadow:3px 3px 0 var(--red)}
.rope{height:16px;border:2px solid var(--ink);margin-top:12px;position:relative;background:var(--blue);overflow:hidden}
.rope i{display:block;height:100%;background:var(--red);transition:width .3s}
.rope::after{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
.rope-lbl{display:flex;justify-content:space-between;font-family:var(--hand);font-size:12px;color:#444;margin-top:4px}
.rope-lbl b{font-family:var(--num);font-size:18px;font-weight:400}
.rope-lbl .a b{color:var(--red)}.rope-lbl .b b{color:var(--blue)}
.common{display:flex;gap:8px;margin-top:12px;align-items:center;font-family:var(--hand);font-size:12px;color:#555}
.common .cb{border:2px solid var(--yel);background:#fff;border-radius:4px;font-family:var(--hand);font-size:14px;padding:6px 14px;cursor:pointer;color:#111}
.common .cb small{font-family:var(--num);font-size:11px;color:#777;margin-left:6px}
.say{margin-top:14px;border-top:2px dashed #b9ad8c;padding-top:12px;font-family:var(--hand)}
.say label{font-size:13px;color:#333;display:block;margin-bottom:6px}
.say .row{display:grid;grid-template-columns:1fr auto;gap:8px}
.say input{border:0;border-bottom:2px solid #999;background:transparent;font-family:inherit;font-size:15px;padding:6px 4px}
.say .btn{background:var(--ink);color:#fff;font-size:14px;padding:8px 16px;border-radius:3px;cursor:pointer}
.say .hint{font-size:11px;color:#777;margin-top:6px;line-height:1.6}
.sides .rule{margin-top:12px;font-family:var(--hand);font-size:12px;color:#555;line-height:1.8;border-top:1px solid #b9ad8c;padding-top:10px}

/* ラウンド履歴: どちらが押し上げたか */
.rounds .r .side-tag{position:absolute;left:-8px;top:-8px;font-family:var(--hand);font-size:12px;color:#fff;padding:3px 8px;transform:rotate(-6deg);box-shadow:0 3px 8px rgba(0,0,0,.4)}
.rounds .r .side-tag.a{background:var(--red2)}.rounds .r .side-tag.b{background:var(--blue)}

/* 客席の声の壁(多い) */
.voices-wall{position:relative;margin-top:30px}
.voices-wall .notes{grid-template-columns:repeat(3,1fr);gap:14px 16px}
.voices-wall .note{font-size:13px;padding:10px 12px 10px}
.voices-wall .note .req{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;border:1.5px solid #111;padding:0 5px;border-radius:2px;margin-left:4px;font-family:"Noto Sans JP"}
.voices-wall .note.a{border-left:5px solid var(--red2)}.voices-wall .note.b{border-left:5px solid var(--blue)}
.voices-wall .graf{position:absolute}

/* ===== 他サイトへのリンク ===== */
.sign .ptag{font-family:var(--hand);font-size:12px;color:var(--ink);background:var(--paper2);padding:6px 10px;line-height:1.2;box-shadow:2px 3px 6px rgba(0,0,0,.6);transform:rotate(2deg);text-align:center}
.sign .ptag small{display:block;font-size:9px;color:#666;letter-spacing:.2em}
.pcard .plink{display:block;margin-top:8px;font-family:var(--hand);font-size:12px;color:#fff;background:var(--ink);padding:6px 10px;text-align:center;border-radius:2px}
.pcard .plink.dim{background:transparent;color:#777;border:1.5px dashed #999}

/* 他の創作者の興行(見本): 画像を当てはめない */
.poster.s .img.sample{display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--hand);color:rgba(233,228,214,.55);font-size:15px;line-height:1.7;border:2px dashed rgba(233,228,214,.25);margin:8px;aspect-ratio:auto;height:290px}
.poster.s .img.sample small{display:block;font-size:11px;opacity:.7}

/* ===== 試合会場 v2: 場面 ／ 客席の声 ／ 応援 の3列 ===== */
.live-grid3{display:grid;grid-template-columns:500px minmax(0,1fr) 400px;gap:34px;align-items:start}
.live-grid3 .scene{width:500px}
.voicecol .vc-head{font-size:22px;margin-bottom:12px}
.voicecol .vc-head small{display:block;font-size:12px;opacity:.7;margin-top:4px}
.vlist{display:flex;flex-direction:column;gap:10px}
.vnote{display:grid;grid-template-columns:92px 1fr;gap:0;background:#fff7a8;color:#222;box-shadow:2px 4px 10px rgba(0,0,0,.5);font-family:var(--hand);font-size:14px;line-height:1.55}
.vnote:nth-child(odd){transform:rotate(-.6deg)}.vnote:nth-child(even){transform:rotate(.5deg)}
.vnote .vw{display:flex;align-items:center;justify-content:center;font-family:var(--gothic);font-size:22px;color:#fff;background:#c8161d;padding:10px 6px;text-align:center;line-height:1.1}
.vnote.b .vw{background:#1f5fc4}.vnote.y .vw{background:#d9a300}.vnote.c .vw{background:#444}
.vnote .vw.sm{font-size:13px;font-family:var(--hand)}
.vnote .vb{padding:9px 12px 10px}
.vnote .who{font-size:10px;color:#555;letter-spacing:.1em;display:flex;justify-content:space-between;margin-bottom:3px}
.vnote .who i{font-style:normal;color:#b0101a;border:1px solid #b0101a;padding:0 4px;border-radius:2px}
.vnote .req{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;border:1.5px solid #111;padding:0 5px;border-radius:2px;margin-left:6px;font-family:"Noto Sans JP"}
.flow{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:40px;margin-top:50px;align-items:start}
.flow .rounds{margin-top:16px}
/* カード希望: 名鑑への案内 */
.meikan-tag{background:#fff;color:#111;font-family:var(--hand);padding:14px 18px;box-shadow:0 8px 18px rgba(0,0,0,.45);transform:rotate(-1.5deg);position:relative;display:flex;align-items:center;gap:14px;text-decoration:none}
.meikan-tag b{font-family:var(--gothic);font-size:18px;line-height:1.2;display:block}
.meikan-tag small{display:block;font-size:12px;color:#555;margin-top:2px}
.meikan-tag .go{margin-left:auto;background:var(--ink);color:#fff;padding:8px 14px;border-radius:3px;font-size:14px;white-space:nowrap}
.tag.open b{font-size:26px}

/* ===== 読みやすさ優先の投稿(談話室・客席の声) ===== */
.notes.readable{grid-template-columns:1fr;gap:10px}
.notes.readable.two{grid-template-columns:1fr 1fr;gap:12px 16px}
.notes.readable .note{transform:none!important;background:#f6f1e3;color:#1c1a16;font-family:"Noto Sans JP",sans-serif;font-size:14.5px;line-height:1.85;padding:12px 16px 12px;border-left:5px solid #cfc3a2;box-shadow:0 4px 10px rgba(0,0,0,.35)}
.notes.readable .note.blue{border-left-color:#1f5fc4}.notes.readable .note.pink{border-left-color:#c8161d}
.notes.readable .note .who{font-family:"Noto Sans JP",sans-serif;font-size:11.5px;color:#6a5c3c;margin-bottom:4px;letter-spacing:.05em}
.notes.readable .note .who i{color:#b0101a}
.notes.readable .note .c{font-family:"Noto Sans JP",sans-serif;font-weight:900;font-size:11px;margin-top:6px}
.vnote .vb{font-family:"Noto Sans JP",sans-serif;font-size:14px;line-height:1.75}
.vnote .who{font-family:"Noto Sans JP",sans-serif;font-size:11px}
.vnote{transform:none!important;background:#f6f1e3}

/* 試合会場: 左列の写真が列幅を超えないように */
.live-grid3 > div{min-width:0}
.live-grid3 .scene{width:100%;max-width:500px}
.live-grid3 .scene img{width:100%;height:auto;max-width:100%;aspect-ratio:3/4}

/* .scene は興行一覧のグリッドと名前が衝突していたので、試合会場では通常ブロックに戻す */
.live-grid3 .scene{display:block;grid-template-columns:none;gap:0}

/* ===== 過去の興行(壁から外れたものの置き場) ===== */
.archive{margin-top:70px;padding-top:30px;border-top:2px dashed rgba(233,228,214,.2)}
.archive .filters-wall{margin:14px 0 10px}
.arch-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start}
.arch{position:relative;width:150px;background:var(--paper);color:var(--ink);box-shadow:0 8px 18px rgba(0,0,0,.5);filter:brightness(.9);text-decoration:none}
.arch:nth-child(odd){transform:rotate(-1deg)}.arch:nth-child(even){transform:rotate(.8deg)}
.arch .img{aspect-ratio:3/4;overflow:hidden;background:#111}
.arch .img img{width:100%;height:100%;object-fit:cover;display:block}
.arch .img img.full{object-fit:contain;object-position:50% 100%;background:radial-gradient(ellipse at 50% 100%, #3a3a3a, #0c0c0c)}
.arch .t{font-family:var(--gothic);font-size:12px;line-height:1.25;padding:6px 8px 2px}
.arch .m{font-family:var(--hand);font-size:10px;color:#555;padding:0 8px 8px;display:flex;justify-content:space-between}
.arch .m b{font-family:var(--num);font-size:14px;color:var(--red);font-weight:400}
.arch .stamp.sq{position:absolute;right:6px;top:6px;font-size:11px;padding:2px 6px}
.arch-more{display:inline-block;margin-top:16px;font-family:var(--hand);background:var(--paper);color:var(--ink);padding:8px 16px;box-shadow:0 4px 10px rgba(0,0,0,.5);transform:rotate(-1deg)}

/* ===== 試合会場(通常の興行): 公開カットの切り替えと声援4語 ===== */
.cuts{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px}
.cuts .c{position:relative;background:#fff;padding:4px 4px 16px;box-shadow:0 4px 10px rgba(0,0,0,.5);cursor:pointer}
.cuts .c img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#222}
.cuts .c span{position:absolute;left:0;right:0;bottom:2px;text-align:center;font-family:var(--hand);font-size:10px;color:#333}
.cuts .c.on{outline:3px solid var(--red2)}
.cuts .c.lock{cursor:default}.cuts .c.lock img{filter:blur(5px) brightness(.55)}
.cuts .c.lock::after{content:"Patreon";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) rotate(-10deg);font-family:var(--mincho);font-weight:800;color:var(--red2);border:2px solid var(--red2);padding:1px 5px;font-size:10px;background:rgba(255,255,255,.75);white-space:nowrap}
.sides .atk{font-family:var(--hand);font-size:14px;color:#333;margin:12px 0 10px;border-top:2px dashed #b9ad8c;padding-top:10px}
.sides .atk b{font-family:var(--gothic);font-size:16px}
.sides .atk small{color:#777;font-size:11px}
.cheer4{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cb4{appearance:none;cursor:pointer;border:3px solid;border-radius:6px;background:#fff;font-family:var(--hand);font-size:22px;padding:14px 0 10px;color:#111;display:flex;flex-direction:column;align-items:center;gap:2px}
.cb4 small{font-family:var(--num);font-size:12px;color:#777}
.cb4.r{border-color:var(--red)}.cb4.b{border-color:var(--blue)}.cb4.y{border-color:var(--yel)}
.cb4:active{transform:scale(.96)}
.cb4.done{background:#eee;color:#777}
.sides .hint-s{font-family:var(--hand);font-size:11px;color:#777;margin-top:6px}

/* ===== 試合会場 C: 巻物型(カットごとに声援) ===== */
.scrollwrap{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:40px;align-items:start}
.scroll-side{position:sticky;top:20px}
.cut{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start;margin-bottom:46px}
.cut .nar{grid-column:1;font-family:var(--mincho);font-weight:500;font-size:15px;line-height:2;color:var(--chalk);margin-top:10px;min-height:1em}
.cut .pic{position:relative;background:#fff;padding:12px 12px 34px;box-shadow:0 14px 30px rgba(0,0,0,.6);max-width:620px}
.cut:nth-child(odd) .pic{transform:rotate(-.6deg)}.cut:nth-child(even) .pic{transform:rotate(.5deg)}
.cut .pic img{width:100%;display:block;background:#111}
.cut .pic .no{position:absolute;left:12px;bottom:8px;font-family:var(--num);font-size:16px;color:#333;letter-spacing:.1em}
.cut .pic.lock img{filter:blur(8px) brightness(.5);max-height:360px;object-fit:cover}
.cut .pic.lock::after{content:"Patreon";position:absolute;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-10deg);font-family:var(--mincho);font-weight:800;color:var(--red2);border:3px solid var(--red2);padding:4px 12px;font-size:20px;letter-spacing:.3em;background:rgba(255,255,255,.75)}
.cut .rail{grid-column:2;grid-row:1 / span 2;position:sticky;top:20px}
.cut .mini{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mb{appearance:none;cursor:pointer;border:2px solid;border-radius:4px;background:rgba(0,0,0,.4);color:#fff;font-family:var(--hand);font-size:15px;padding:8px 0 6px;display:flex;flex-direction:column;align-items:center;gap:1px}
.mb small{font-family:var(--num);font-size:11px;opacity:.7}
.mb.r{border-color:#ff5c5c}.mb.b{border-color:#6ea1ff}.mb.y{border-color:#ffd96a}
.mb.done{background:#fff;color:#111}
.cut .mv{display:flex;gap:8px;align-items:flex-start;margin-top:8px;font-size:12.5px;line-height:1.6;color:#ddd;font-family:"Noto Sans JP",sans-serif}
.cut .mv .w{flex:none;font-family:var(--gothic);font-size:12px;color:#fff;padding:2px 7px;border-radius:2px;background:#c8161d}
.cut .mv .w.b{background:#1f5fc4}.cut .mv .w.y{background:#d9a300;color:#111}
.heat .hbars{display:flex;gap:4px;align-items:flex-end;height:60px;border-bottom:1px solid #999}
.heat .hbars i{flex:1;height:var(--h);background:var(--red);opacity:.8;border-radius:2px 2px 0 0}
.heat .hlbl{display:flex;gap:4px;font-family:var(--num);font-size:11px;color:#555;margin-top:3px}
.heat .hlbl span{flex:1;text-align:center}

/* ===== 試合会場 比較 D/E/F/G ===== */
.notes.readable.three{grid-template-columns:1fr 1fr 1fr;gap:12px 14px}
/* E: 散る */
.scatter-wrap{position:relative;min-height:760px}
.scatter-left{width:500px}
.scatter-left .scene{width:500px}
.scatter-field{position:absolute;left:0;top:0;right:0;height:760px;pointer-events:none}
.scatter-field .note.scat{position:absolute;width:300px;pointer-events:auto;font-family:"Noto Sans JP",sans-serif;font-size:13.5px;line-height:1.7;background:#f6f1e3;color:#1c1a16;padding:10px 14px;border-left:5px solid #cfc3a2;box-shadow:0 8px 18px rgba(0,0,0,.55)}
.scatter-field .note.scat.blue{border-left-color:#1f5fc4}.scatter-field .note.scat.pink{border-left-color:#c8161d}
.scatter-field .note .who{font-family:"Noto Sans JP",sans-serif;font-size:11px;color:#6a5c3c}
.scatter-field .note .c{font-family:"Noto Sans JP",sans-serif;font-weight:900;font-size:11px}
/* F: 観客席 */
.banner-meter{margin:0 0 22px}
.seats{display:grid;grid-template-columns:minmax(0,1fr) 560px minmax(0,1fr);gap:30px;align-items:start}
.seat-mid .scene{width:560px}
.seat-head{font-size:18px;margin-bottom:12px}
.seat-head small{display:block;font-size:12px;opacity:.7;margin-top:2px}
.cheer4.row4{grid-template-columns:repeat(4,1fr);margin-top:16px}
.paper-say{background:var(--paper);color:var(--ink);padding:12px 14px;margin-top:12px;box-shadow:0 8px 18px rgba(0,0,0,.5);border-top:0}
.paper-say label{font-size:12px}
/* G: 立て看板 */
.board-top{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:20px;align-items:start}
.scene.wide{width:100%;max-width:none;transform:none}
.scene.wide img{aspect-ratio:16/9;object-fit:cover;object-position:50% 20%}
.cuts.vertical{grid-template-columns:1fr;gap:8px;margin-top:0}
.stamp-row{display:flex;align-items:center;gap:12px;margin:26px 0 30px;flex-wrap:wrap}
.cb4.big{min-width:150px;font-size:26px;padding:16px 0 12px;background:rgba(0,0,0,.5);color:#fff}
.cb4.big.done{background:#fff;color:#111}
.stamp-meter{flex:1;min-width:260px;margin-left:10px}
.board-bottom{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:34px;align-items:start}

/* 生の興行の付箋に「要望」の札 */
.notes.readable .note .req{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;border:1.5px solid #111;padding:0 5px;border-radius:2px;margin-left:6px;font-family:"Noto Sans JP"}
.cb.done{background:#eee!important;color:#777}
