/* アン マウナ・フジ フラスタジオ */
:root{--bg:#e7e0d1;--paper:#f6f1e6;--ink:#3a3530;--muted:#6e665a;--line:#c9baa0;--red:#a2452c;--on-red:#faf1e7;--sage:#cfcab0;--band:#4a4642;--band-ink:#efe8da;--disp:"Quicksand","Zen Maru Gothic",sans-serif;--body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.85;background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(201,186,160,.12) 3px 4px)}
img{max-width:100%;height:auto}
a{color:var(--red)}
.wrap{max-width:1040px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.testbar{background:#f3e6c6;color:#7a5512;text-align:center;font-size:.8rem;padding:4px 12px}
.nav{background:var(--band);position:sticky;top:0;z-index:5}
.nav ul{list-style:none;margin:0 auto;padding:0 8px;max-width:1040px;display:flex;overflow-x:auto;gap:2px}
.nav a{display:block;color:var(--band-ink);text-decoration:none;padding:12px 14px 9px;font-weight:500;letter-spacing:.1em;white-space:nowrap;border-bottom:3px solid transparent;opacity:.8}
.nav a:hover,.nav a[aria-current]{opacity:1;border-bottom-color:var(--red)}
.hero{position:relative;overflow:hidden;text-align:center;padding:26px 0 30px}
.hero .vista{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(1000px,150%);opacity:.18;color:var(--ink);z-index:0}
.hero>*{position:relative;z-index:1}
.kicker{font-family:var(--disp);font-weight:600;font-size:.72rem;letter-spacing:.32em;color:var(--muted);margin:0;display:flex;justify-content:center;align-items:center;gap:12px}
.kicker::before,.kicker::after{content:"";width:28px;height:1px;background:var(--muted)}
.rule{width:min(760px,100%);height:5px;margin:10px auto 14px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);opacity:.7}
.logo{width:clamp(130px,22vw,190px);display:block;margin:4px auto 0}
.hero h1{font-weight:500;font-size:clamp(1.5rem,4.6vw,2.6rem);letter-spacing:.18em;margin:10px 0 2px;line-height:1.5;text-wrap:balance}
.hero .sub{margin:0;color:var(--muted);font-family:var(--disp);letter-spacing:.06em}
.ofthe{display:inline-block;margin-top:12px;font-family:var(--disp);font-weight:600;font-size:.72rem;letter-spacing:.22em;padding:5px 4px 4px 14px;border-top:3px double var(--ink);border-bottom:3px double var(--ink)}
.quote{background:var(--band);color:var(--band-ink);text-align:center;padding:14px 18px;margin:0;text-wrap:balance}
.quote cite{display:block;font-style:normal;font-size:.8rem;opacity:.8}
.split{display:grid;grid-template-columns:1fr 1fr}
.red{background:var(--red);color:var(--on-red);padding:34px 34px;outline:1px solid rgba(250,241,231,.7);outline-offset:-14px}
.red h2{color:var(--on-red)}
.sage{background:var(--sage);padding:34px 30px;text-align:center}
h2{font-weight:600;font-size:1.35rem;letter-spacing:.12em;margin:0 0 12px;text-wrap:balance}
h2.line{display:flex;align-items:center;gap:12px}
h2.line::after{content:"";flex:1;height:1px;background:var(--line)}
section.block{padding:34px 0}
.panel{background:var(--paper);border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-8px;padding:28px 26px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.point h3{font-size:1.05rem;margin:0 0 6px;letter-spacing:.06em}
.point p{margin:0;font-size:.95rem}
.point .no{font-family:var(--disp);font-weight:700;color:var(--red);font-size:1.6rem;line-height:1}
.dotlink{color:inherit;text-decoration:none;letter-spacing:.06em}
.dotlink::before,.dotlink::after{content:"•";margin:0 .5em;opacity:.8}
.dotlink:hover{text-decoration:underline}
.btn{display:inline-block;background:var(--red);color:var(--on-red);text-decoration:none;padding:12px 26px;font-weight:600;letter-spacing:.14em;border:1px solid var(--red)}
.btn.ghost{background:transparent;color:var(--red)}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.8rem;color:var(--muted);letter-spacing:.12em;font-weight:600;border-bottom:3px double var(--muted)}
.tbd{color:#9a6a16;background:#f3e6c6;padding:0 6px;font-size:.85rem;white-space:nowrap}
.posts{list-style:none;margin:0;padding:0}
.posts li{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);align-items:baseline}
.posts time{font-family:var(--disp);color:var(--muted);font-size:.85rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.contact dl{display:grid;grid-template-columns:max-content 1fr;gap:10px 18px;margin:0}
.contact dt{color:var(--muted);letter-spacing:.1em}
.contact dd{margin:0;font-size:1.1rem}
footer{background:var(--band);color:var(--band-ink);text-align:center;padding:22px 16px;font-size:.85rem;margin-top:34px}
footer a{color:var(--band-ink)}
.prose p{margin:0 0 1em;max-width:40em}
 .hero.photo{background-size:cover;background-position:center;color:#fff;padding:40px 0 46px}
.hero.photo.big{min-height:560px;display:flex;align-items:center;justify-content:center}
.hero.photo .kicker,.hero.photo .sub{color:rgba(255,255,255,.88)}
.hero.photo .kicker::before,.hero.photo .kicker::after{background:rgba(255,255,255,.7)}
.hero.photo .rule{border-color:#fff}
.hero.photo .ofthe{border-color:#fff;color:#fff}
.hero.photo h1{text-shadow:0 2px 14px rgba(0,0,0,.35)}
.hero.photo .vista{filter:invert(1);opacity:.28}
.badge{display:inline-block;background:rgba(246,241,230,.94);border-radius:50%;padding:14px;box-shadow:0 4px 18px rgba(0,0,0,.25)}
.badge .logo{width:clamp(110px,16vw,150px);margin:0}
.photo-sage{background-size:cover;background-position:center}
.ph{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;margin:0 0 14px;border:1px solid var(--line)}
.ph.wide{aspect-ratio:16/10;margin:0}
.ph.tall{aspect-ratio:3/4;margin:0}
.newspanel{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:24px;align-items:start}
.twocol{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:28px;align-items:start}
.gallery{padding:6px 0 0}
.strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:0 6px}
.strip img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.lead{margin:-4px 0 18px;color:var(--muted)}
.stage{background:var(--paper);border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-8px;padding:22px 22px 24px;margin-bottom:22px}
.stage header{display:flex;align-items:baseline;gap:14px;margin-bottom:12px;flex-wrap:wrap}
.stage time{font-family:var(--disp);font-weight:700;color:var(--red);letter-spacing:.08em}
.stage h3{margin:0;font-size:1.15rem;letter-spacing:.08em}
.shots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.shots img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.kw,.hero h1{word-break:keep-all;overflow-wrap:anywhere}
@media (max-width:760px){.shots{grid-template-columns:repeat(2,minmax(0,1fr))}.stage{padding:18px 16px}.newspanel,.twocol{grid-template-columns:1fr}.strip{grid-template-columns:repeat(3,minmax(0,1fr))}.hero.photo.big{min-height:460px}.ph.tall{aspect-ratio:4/3}.kicker{font-size:.58rem;letter-spacing:.16em;gap:8px}.kicker::before,.kicker::after{width:16px}.split,.grid3{grid-template-columns:1fr}.red,.sage{padding:28px 22px}.panel{padding:22px 18px}.hero h1{letter-spacing:.1em}.posts li{flex-direction:column;gap:0}}
/* ---- Wix連携（出演予定・記録・FAQ・フォーム） ---- */
.muted{color:var(--muted)}
.btn{cursor:pointer;font:inherit;font-weight:600}
.btn:disabled{opacity:.6;cursor:wait}
.btn.ghost{background:transparent;color:var(--red)}
.btn:focus-visible,.chips button:focus-visible,.shots img:focus-visible,.qa summary:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.chips button{font:inherit;font-family:var(--disp);font-weight:600;letter-spacing:.06em;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:6px 16px;cursor:pointer;min-height:40px}
.chips button[aria-pressed="true"]{background:var(--band);color:var(--band-ink);border-color:var(--band)}
.shots img{cursor:zoom-in;transition:transform .2s,filter .2s}
.shots img:hover{filter:brightness(1.06);transform:translateY(-2px)}
.more{text-align:center;margin:8px 0 0}
.lb{position:fixed;inset:0;z-index:50;background:rgba(28,24,20,.94);display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.lb[hidden]{display:none}
.lb figure{margin:0;max-width:min(92vw,1100px);text-align:center}
.lb img{max-height:80vh;max-width:100%;width:auto;display:block;margin:0 auto;user-select:none;-webkit-user-drag:none}
.lb figcaption{color:var(--band-ink);font-size:.9rem;margin-top:10px;letter-spacing:.06em}
.lb button{position:absolute;background:rgba(246,241,230,.14);color:#fff;border:0;font-size:2rem;line-height:1;width:48px;height:48px;cursor:pointer;border-radius:50%}
.lb .lb-x{top:max(14px,env(safe-area-inset-top));right:14px}
.lb .lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb .lb-next{right:10px;top:50%;transform:translateY(-50%)}
.evlist{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.evlist li{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:start;border-top:1px dashed var(--line);padding-top:14px}
.evlist li:first-child{border-top:0;padding-top:0}
.evlist li:not(:has(img)){grid-template-columns:1fr}
.evlist img{width:120px;aspect-ratio:4/3;object-fit:cover}
.evlist h3{margin:0;font-size:1.05rem}
.evlist p{margin:2px 0 0}
.evdate{font-family:var(--disp);font-weight:700;color:var(--red);letter-spacing:.06em}
.evplace{color:var(--muted);font-size:.92rem}
.search{width:100%;font:inherit;padding:10px 14px;border:1px solid var(--line);background:#fffdf8;margin:0 0 14px}
.faqcat{font-size:1rem;letter-spacing:.1em;margin:18px 0 6px;color:var(--red)}
.faqcat:first-child{margin-top:0}
.qa{border-bottom:1px dashed var(--line)}
.qa summary{cursor:pointer;padding:12px 30px 12px 0;position:relative;list-style:none;font-weight:500}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"Q";font-family:var(--disp);font-weight:700;color:var(--red);margin-right:10px}
.qa summary::after{content:"+";position:absolute;right:6px;top:10px;font-size:1.3rem;color:var(--muted);transition:transform .2s}
.qa[open] summary::after{transform:rotate(45deg)}
.qa .ans{padding:0 0 12px 24px}
.qa .ans p{margin:0 0 6px}
#trial{display:grid;gap:16px;max-width:620px}
.field{display:grid;gap:6px}
.flabel{font-weight:500}
.req{font-size:.72rem;background:var(--red);color:var(--on-red);padding:1px 6px;margin-left:8px;vertical-align:2px}
#trial input[type=text],#trial input[type=email],#trial input[type=tel],#trial select,#trial textarea{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:0}
#trial [aria-invalid="true"]{border-color:var(--red);outline:1px solid var(--red)}
.radios{display:grid;gap:6px}
.opt{display:flex;align-items:center;gap:10px;background:#fffdf8;border:1px solid var(--line);padding:10px 12px;cursor:pointer}
.opt:has(input:checked){border-color:var(--red);background:#fbefe6}
.opt input{accent-color:var(--red);width:18px;height:18px;margin:0}
.ferr{color:var(--red);margin:0;font-size:.9rem}
.ferr:empty{display:none}
.thanks{text-align:center;padding:10px 0}
.thanks .big{font-family:var(--disp);font-size:2rem;font-weight:700;color:var(--red);margin:0;letter-spacing:.1em}
@media (max-width:760px){.evlist li{grid-template-columns:92px 1fr}.evlist img{width:92px}.lb .lb-prev,.lb .lb-next{top:auto;bottom:max(18px,env(safe-area-inset-bottom));transform:none}}
@media (prefers-reduced-motion:reduce){.shots img,.qa summary::after{transition:none}}
.teacher{margin:0}
.teacher figcaption{font-size:.85rem;color:var(--muted);margin-top:6px;text-align:center;letter-spacing:.06em}
/* ---- フラのニュース ティッカー ---- */
.ticker{background:var(--paper);border-bottom:1px solid var(--line)}
.ticker[hidden]{display:none}
.tk-bar{display:flex;align-items:stretch;max-width:1040px;margin:0 auto;min-height:48px}
.tk-label{flex:none;background:var(--red);color:var(--on-red);border:0;font:inherit;font-family:var(--disp);font-weight:700;font-size:.78rem;letter-spacing:.2em;padding:0 14px;cursor:pointer}
.tk-prev,.tk-next{flex:none;width:40px;background:transparent;border:0;border-left:1px solid var(--line);font-size:1.5rem;color:var(--ink);cursor:pointer}
.tk-prev{border-left:0;border-right:1px solid var(--line)}
.tk-vp{flex:1;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
.tk-track{display:flex;width:max-content;will-change:transform;height:100%}
.tk-item{background:transparent;border:0;font:inherit;color:var(--ink);white-space:nowrap;padding:0 28px 0 16px;cursor:pointer;position:relative;display:flex;align-items:center;gap:8px}
.tk-item::after{content:"✿";position:absolute;right:4px;color:var(--red);opacity:.6}
.tk-item:hover{color:var(--red);text-decoration:underline}
.tk-tag{font-size:.72rem;background:var(--sage);padding:1px 6px;color:var(--ink)}
.tk-panel{max-width:1040px;margin:0 auto;padding:16px 56px 18px 16px;position:relative;border-top:1px dashed var(--line)}
.tk-panel[hidden]{display:none}
.tk-panel h3{margin:2px 0 6px;font-size:1.05rem}
.tk-panel p{margin:0 0 8px}
.tk-meta{font-size:.82rem;color:var(--muted)}
.tk-links{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center}
.tk-all,.tk-list button{background:transparent;border:0;font:inherit;color:var(--red);text-decoration:underline;cursor:pointer;padding:0;text-align:left}
.tk-x{position:absolute;top:10px;right:12px;width:40px;height:40px;background:transparent;border:1px solid var(--line);font-size:1.3rem;cursor:pointer;color:var(--ink)}
.tk-list{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}
.tk-list li{display:flex;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line)}
.tk-list time{flex:none;font-size:.85rem;color:var(--muted);min-width:5.5em}
.tk-item:focus-visible,.tk-prev:focus-visible,.tk-next:focus-visible,.tk-label:focus-visible{outline:3px solid var(--red);outline-offset:-3px}
@media (max-width:760px){.tk-label{padding:0 10px;font-size:.7rem;letter-spacing:.12em}.tk-prev,.tk-next{width:36px}}
@media (max-width:760px){.tk-hula{display:none}}
/* ---- ネットでの紹介（小窓） ---- */
.mentions[hidden]{display:none}
.mn-box{max-width:620px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--red);padding:18px 20px 16px}
.mn-h{font-size:1.1rem;margin:4px 0 10px;letter-spacing:.1em}
.mn-list{list-style:none;margin:0;padding:0}
.mn-list li{border-top:1px dashed var(--line)}
.mn-list a{display:grid;gap:2px;padding:10px 0;text-decoration:none;color:var(--ink)}
.mn-list a:hover .mn-title,.mn-list a:focus-visible .mn-title{text-decoration:underline;color:var(--red)}
.mn-meta{font-size:.8rem;color:var(--muted)}
.mn-title{font-weight:500;color:var(--red)}
.mn-note{font-size:.9rem}
.mn-foot{margin:8px 0 0;font-size:.85rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px}
/* ---- 写真のリズム：大小・ぼかし・ずらし ---- */
/* ステージの記録：1枚を大きく、残りを大・中・小に。記事ごとに左右を入れ替える */
.shots{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,clamp(96px,15vw,180px));gap:8px}
.shots img{aspect-ratio:auto;height:100%}
.shots img:nth-child(1){grid-column:1/4;grid-row:1/3}
.shots img:nth-child(2){grid-column:4/7;grid-row:1}
.shots img:nth-child(3){grid-column:4/6;grid-row:2}
.shots img:nth-child(4){grid-column:6/7;grid-row:2}
.stage:nth-of-type(even) .shots img:nth-child(1){grid-column:4/7}
.stage:nth-of-type(even) .shots img:nth-child(2){grid-column:1/4}
.stage:nth-of-type(even) .shots img:nth-child(3){grid-column:2/4}
.stage:nth-of-type(even) .shots img:nth-child(4){grid-column:1/2}
.shots img:only-child{grid-column:1/-1!important;grid-row:1/3}
.shots:has(img:nth-child(2):last-child) img:nth-child(2){grid-row:1/3}
.shots:has(img:nth-child(3):last-child) img:nth-child(3){grid-column:4/7}
.stage:nth-of-type(even) .shots:has(img:nth-child(3):last-child) img:nth-child(3){grid-column:1/4}
/* 3つおきに、大きい写真を横長の帯にする */
.stage:nth-of-type(3n) .shots{grid-template-rows:clamp(150px,24vw,300px) clamp(80px,11vw,130px)}
.stage:nth-of-type(3n) .shots img:nth-child(1){grid-column:1/-1;grid-row:1}
.stage:nth-of-type(3n) .shots img:nth-child(2){grid-column:1/3;grid-row:2}
.stage:nth-of-type(3n) .shots img:nth-child(3){grid-column:3/5;grid-row:2}
.stage:nth-of-type(3n) .shots img:nth-child(4){grid-column:5/7;grid-row:2}
/* 背景に、その日の写真をぼかして敷く */
.stage{position:relative;isolation:isolate;overflow:clip}
.stage::before{content:"";position:absolute;inset:-60px;background:var(--bg,none) center/cover no-repeat;filter:blur(34px) saturate(1.25);opacity:.32;z-index:-1;pointer-events:none}
.stage header{position:relative}
.stage time{background:var(--paper);padding:0 6px;margin-left:-6px}
/* トップの風景帯：高さを変えて波打たせ、両端をぼかす */
.strip{align-items:center;padding:14px 6px 22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.strip img:nth-child(odd){aspect-ratio:3/4}
.strip img:nth-child(even){aspect-ratio:1/1;transform:translateY(16px)}
.strip img:nth-child(3n){aspect-ratio:4/5;transform:translateY(-10px)}
.strip img:first-child,.strip img:last-child{filter:blur(2.5px) brightness(1.05);opacity:.85}
/* 3つのこと：まん中を下げて、写真の形を変える */
.grid3{align-items:start}
.grid3 .point:nth-child(2){margin-top:40px}
.grid3 .point:nth-child(2) .ph{aspect-ratio:1/1}
.grid3 .point:nth-child(3) .ph{aspect-ratio:16/10}
/* 写真に色の影をずらして重ねる */
.newspanel .ph{box-shadow:12px 12px 0 var(--sage)}
.teacher .ph{box-shadow:-12px 12px 0 rgba(162,69,44,.22)}
.newspanel>.ph,.teacher{margin-right:12px}
.teacher{margin-left:12px;margin-right:0}
@media (max-width:760px){
.grid3 .point:nth-child(2){margin-top:0}
.strip{grid-template-columns:repeat(6,46vw);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.strip img{scroll-snap-align:start}
.strip img:first-child{filter:none;opacity:1}
.shots{gap:6px}
.stage::before{inset:-40px;filter:blur(26px) saturate(1.2)}
}
@media (prefers-reduced-transparency:reduce){.stage::before{display:none}}
.shots img{object-position:50% 20%}
@media (max-width:760px){
.shots,.stage:nth-of-type(3n) .shots{grid-template-rows:54vw 26vw}
.shots img:nth-child(n),.stage:nth-of-type(n) .shots img:nth-child(n){grid-row:2}
.shots img:nth-child(1),.stage:nth-of-type(n) .shots img:nth-child(1){grid-column:1/-1;grid-row:1}
.shots img:nth-child(2),.stage:nth-of-type(n) .shots img:nth-child(2){grid-column:1/3}
.shots img:nth-child(3),.stage:nth-of-type(n) .shots img:nth-child(3){grid-column:3/5}
.shots img:nth-child(4),.stage:nth-of-type(n) .shots img:nth-child(4){grid-column:5/7}
.stage:nth-of-type(even) .shots{grid-template-rows:30vw 46vw}
.stage:nth-of-type(even) .shots img:nth-child(1){grid-row:2}
.stage:nth-of-type(even) .shots img:nth-child(n+2){grid-row:1}
.stage:nth-of-type(even) .shots img:nth-child(2){grid-column:1/4}
.stage:nth-of-type(even) .shots img:nth-child(3){grid-column:4/6}
.stage:nth-of-type(even) .shots img:nth-child(4){grid-column:6/7}
.shots:has(img:nth-child(3):last-child) img:nth-child(3){grid-column:4/7!important}
.shots:has(img:nth-child(2):last-child) img:nth-child(2){grid-column:1/-1!important}
.shots img:only-child{grid-row:1/-1!important}
}
/* ---- 背景で流れる動画（本番サイトと同じWixの素材動画） ---- */
.hero.has-video{background-color:#2b2620}
.hero>.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero>.hero-shade{position:absolute;inset:0;z-index:0;background:linear-gradient(rgba(28,24,20,.38),rgba(28,24,20,.6))}
.hero.has-video>.vista{z-index:0}
@media (prefers-reduced-motion:reduce){.hero>.hero-video{display:none}}
/* ---- 下地の質感：古い紙・網点・印章・色あせた写真 ---- */
body{background-color:var(--bg);background-image:url(paper-mottle.svg),url(paper-fiber.svg),url(paper-noise.svg);background-size:900px 900px,600px 600px,300px 300px}
.panel,.mn-box,.stage,.ticker{background-image:url(paper-fiber.svg),url(paper-noise.svg);background-size:600px 600px,300px 300px;background-color:var(--paper)}
.panel{box-shadow:inset 0 0 60px rgba(120,90,50,.13)}
/* 色あせた写真を、上下をぼかして敷く */
.block.wash{position:relative;isolation:isolate}
.block.wash::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--wash) center/cover no-repeat;filter:grayscale(1) sepia(.55) contrast(.85) brightness(1.12);opacity:.2;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);pointer-events:none}
/* 赤い面に、先生の踊る姿を網点で */
.red{position:relative;isolation:isolate;overflow:clip}
.red .halftone{position:absolute;z-index:-1;right:-4%;bottom:-6%;width:min(62%,420px);aspect-ratio:760/798;background:url(halftone.png) center/contain no-repeat;opacity:.55;mix-blend-mode:multiply;pointer-events:none}
.red::after{content:"";position:absolute;inset:0;z-index:-2;background-image:url(paper-noise.svg);background-size:300px 300px;opacity:.6;pointer-events:none}
/* セージの面に、印章の透かし */
.seal-mark{position:relative;isolation:isolate;overflow:clip}
.seal-mark::after{content:"";position:absolute;z-index:-1;right:-70px;bottom:-80px;width:300px;height:300px;background:url(seal.svg) center/contain no-repeat;opacity:.13;transform:rotate(-12deg);pointer-events:none}
/* 帯（ハワイ語の一文）に細い罫と紙の粒 */
.quote{background-image:url(paper-noise.svg);background-size:300px 300px;border-top:3px double rgba(239,232,218,.35);border-bottom:3px double rgba(239,232,218,.35)}
@media (max-width:760px){.red .halftone{width:70%;right:-14%;opacity:.45}.seal-mark::after{width:220px;height:220px;right:-60px;bottom:-60px}}
.red .halftone{right:2%;bottom:-38%;width:min(40%,300px);opacity:.42}
@media (max-width:760px){.red .halftone{width:52%;right:-6%;bottom:-30%;opacity:.35}}
/* ---- チャットボット ---- */
.cb{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:40;font-family:var(--body)}
.cb-open{display:flex;align-items:center;gap:8px;background:var(--red);color:var(--on-red);border:0;border-radius:999px;padding:12px 20px 12px 16px;font:inherit;font-weight:600;letter-spacing:.1em;cursor:pointer;box-shadow:0 6px 18px rgba(60,30,20,.3)}
.cb-open:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.cb-dot{font-size:1.2rem;line-height:1}
.cb.on .cb-open{display:none}
.cb-panel{position:absolute;right:0;bottom:0;width:min(380px,calc(100vw - 28px));height:min(580px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--paper);background-image:url(../assets/paper-noise.svg);border:1px solid var(--line);box-shadow:0 12px 40px rgba(40,25,15,.3)}
.cb-panel[hidden]{display:none}
.cb-head{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--red);color:var(--on-red);padding:10px 10px 10px 16px}
.cb-name{margin:0;font-weight:700;font-size:.92rem;letter-spacing:.06em}
.cb-sub{margin:0;font-size:.74rem;opacity:.85}
.cb-x{background:transparent;border:1px solid rgba(250,241,231,.5);color:var(--on-red);width:38px;height:38px;font-size:1.3rem;cursor:pointer}
.cb-log{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}
.cb-msg{max-width:86%;padding:9px 12px;line-height:1.7;font-size:.94rem;border-radius:4px 14px 14px 14px;background:#fffdf8;border:1px solid var(--line)}
.cb-msg.me{align-self:flex-end;background:var(--band);color:var(--band-ink);border-color:var(--band);border-radius:14px 4px 14px 14px}
.cb-msg p{margin:0 0 4px}.cb-msg ul{margin:4px 0;padding-left:1.2em}
.cb-chips{display:flex;flex-wrap:wrap;gap:6px}
.cb-chips button{font:inherit;font-size:.86rem;background:transparent;color:var(--red);border:1px solid var(--red);border-radius:999px;padding:6px 12px;cursor:pointer;text-align:left}
.cb-chips button:hover{background:#fbefe6}
.cb-in{display:flex;border-top:1px solid var(--line);background:#fffdf8}
.cb-in input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;padding:12px}
.cb-in button{border:0;background:var(--red);color:var(--on-red);font:inherit;font-weight:600;padding:0 18px;cursor:pointer}
.cb-hand{display:grid;gap:6px}
.cb-hand label{display:grid;gap:2px;font-size:.85rem}
.cb-hand input,.cb-hand textarea{font:inherit;font-size:16px;padding:7px 9px;border:1px solid var(--line);background:#fff}
.cb-hand button{justify-self:start;background:var(--red);color:var(--on-red);border:0;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer}
.cb-err{color:var(--red);margin:0;font-size:.85rem}.cb-err:empty{display:none}
.cb-typing{display:inline-flex;gap:4px}.cb-typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:cbb 1s infinite}.cb-typing i:nth-child(2){animation-delay:.15s}.cb-typing i:nth-child(3){animation-delay:.3s}
@keyframes cbb{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (max-width:760px){.cb-open{padding:11px 16px 11px 13px}.cb-panel{position:fixed;right:8px;left:8px;bottom:8px;width:auto;height:min(78vh,620px)}}
@media (prefers-reduced-motion:reduce){.cb-typing i{animation:none}}
.cb{right:auto;left:max(14px,env(safe-area-inset-left))}
.cb-panel{right:auto;left:0}
@media (max-width:760px){.cb-panel{left:8px}}
@media (max-width:760px){.cb-panel{left:8px;right:8px}}
/* ---- 生徒専用ページ ---- */
.mb-panel{max-width:760px;margin:0 auto}
.mb-card{background:#fffdf8;border:1px solid var(--line);padding:20px;max-width:440px}
.mb-big{font-weight:700;font-size:1.1rem;margin:0 0 6px;color:var(--red)}
.mb-form{display:grid;gap:12px}
.mb-form label{display:grid;gap:4px;font-weight:500}
.mb-form input{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);background:#fff;width:100%}
.mb-form .btn{justify-self:start}
.mb-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mb-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:4px}
.mb-tabs button{flex:1;font:inherit;font-weight:600;background:transparent;border:0;border-bottom:3px solid transparent;padding:8px 6px;cursor:pointer;color:var(--muted)}
.mb-tabs button[aria-selected="true"]{color:var(--red);border-bottom-color:var(--red)}
.mb-hello{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mb-hello p{margin:0;font-weight:700;font-size:1.1rem}
.mb-notes{list-style:none;margin:0;padding:0}
.mb-notes li{border-top:1px dashed var(--line);padding:14px 0}
.mb-notes h3{margin:2px 0 6px;font-size:1.05rem}
.mb-notes p{margin:0 0 6px}
.mb-meta{display:flex;gap:10px;align-items:center;font-size:.85rem;color:var(--muted)}
.mb-link{background:transparent;border:0;padding:0;font:inherit;font-size:.9rem;color:var(--red);text-decoration:underline;cursor:pointer;justify-self:start}
