/* Film studies · Trame · Madame Carole Paoli Pompougnac */
:root{--ink:#16181d;--muted:#5b6170;--paper:#fbf8f2;--card:#fff;--line:#e6e0d4;--accent:#c0392b;--accent2:#1f3a5f;--soft:#fff4e8}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;font-size:16.5px;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent2);text-underline-offset:2px;overflow-wrap:anywhere}
h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;line-height:1.2;margin:0 0 .5em}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.linkbar{background:#111;color:#fff;font-size:.86rem;padding:8px 0;text-align:center}
.linkbar a{color:#ffd28a;font-weight:600;word-break:break-all}
.topnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.topnav .wrap{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between;padding-top:8px;padding-bottom:8px}
.topnav .brand{font-family:Fraunces,serif;font-weight:700;text-decoration:none;color:var(--ink);font-size:1.05rem}
.topnav .brand span{display:inline-block;background:var(--accent);color:#fff;border-radius:6px;padding:0 7px;margin-right:6px}
.topnav nav{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.9rem}
.topnav nav a{text-decoration:none;color:var(--muted);font-weight:600}
.hero{position:relative;color:#fff;background:#111;overflow:hidden}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.5}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.78))}
.hero .wrap{position:relative;z-index:2;padding-top:46px;padding-bottom:34px}
.hero .num{display:inline-block;background:var(--accent);color:#fff;font-weight:700;border-radius:999px;padding:4px 14px;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}
.hero h1{font-size:clamp(2.1rem,7vw,3.6rem);margin:.35em 0 .15em;color:#fff}
.hero .sub{font-size:1.05rem;opacity:.95;max-width:46rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chips span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:3px 11px;font-size:.82rem}
.chips span.rate{background:#ffd28a;color:#111;border-color:#ffd28a;font-weight:700}
.credit-line{font-size:.72rem;opacity:.8;margin-top:16px}
.credit-line a{color:#fff}
/* tabs */
.tabbar{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px;margin:18px 0 6px}
.tabbar button{font:inherit;font-size:.86rem;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:9px 8px;cursor:pointer;text-align:center;line-height:1.25}
.tabbar button[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.15)}
.tabbar button:focus-visible{outline:3px solid var(--accent2);outline-offset:2px}
.js .panel{display:none}
.js .panel.on{display:block}
.panel{padding:6px 0 30px}
.panel > h2{font-size:1.65rem;margin-top:14px;border-bottom:3px solid var(--accent);display:inline-block;padding-bottom:4px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:14px 0;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.card h3{font-size:1.2rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
figure.wide img{aspect-ratio:auto}
figcaption{font-size:.82rem;padding:8px 10px;color:var(--muted)}
figcaption strong{color:var(--ink)}
figcaption .lic{display:block;font-size:.72rem;margin-top:3px}
.starters{background:var(--soft);border-left:5px solid var(--accent);border-radius:10px;padding:12px 14px;margin:12px 0}
.starters h4{font-family:Inter,sans-serif;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;color:var(--accent)}
.starters ul{margin:0;padding-left:1.1em}
.starters li{margin:2px 0}
.quote{border-left:4px solid var(--accent2);background:#f3f6fb;padding:10px 14px;border-radius:8px;margin:10px 0}
.quote p{margin:0;font-family:Fraunces,serif;font-size:1.06rem}
.quote cite{display:block;font-style:normal;font-size:.8rem;color:var(--muted);margin-top:5px}
.verse{font-family:Fraunces,serif;white-space:pre-line}
details.key{background:#eef7ee;border:1px solid #cfe5cf;border-radius:10px;padding:8px 12px;margin:10px 0}
details.key summary{cursor:pointer;font-weight:700;color:#1e6b2e}
ol.qs li,ul.qs li{margin:6px 0}
.tc{display:inline-block;background:#111;color:#fff;border-radius:5px;padding:0 6px;font-size:.78rem;font-weight:700;margin-right:6px;font-variant-numeric:tabular-nums}
.video{position:relative;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.note{font-size:.9rem;color:var(--muted)}
.warn{background:#fff3f0;border:1px solid #f1c5bb;border-radius:10px;padding:10px 14px;font-size:.92rem}
.exam{background:linear-gradient(135deg,#1f3a5f,#2c5282);color:#fff;border-radius:14px;padding:16px 18px;margin:14px 0}
.exam a{color:#ffd28a}
.timeline{list-style:none;margin:0;padding:0;border-left:3px solid var(--accent);margin-left:8px}
.timeline li{position:relative;padding:4px 0 10px 16px}
.timeline li::before{content:"";position:absolute;left:-8px;top:10px;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid var(--accent)}
.timeline b{display:inline-block;min-width:4.2em;color:var(--accent)}
table.t{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff}
table.t th,table.t td{border:1px solid var(--line);padding:7px 9px;text-align:start;vertical-align:top}
table.t th{background:#f4efe6}
.tablewrap{width:100%;overflow-x:auto}
.timer{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.timer button{font:inherit;font-weight:700;border:0;border-radius:8px;padding:7px 12px;background:var(--accent2);color:#fff;cursor:pointer}
.timer output{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:700;min-width:4ch}
.qrbox{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.qrbox img{width:140px;height:140px;border:1px solid var(--line);border-radius:8px;background:#fff}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;border-radius:10px;padding:9px 14px;margin:4px 6px 4px 0}
.btn.alt{background:var(--accent2)}
.rule{background:#111;color:#fff;border-radius:10px;padding:10px 14px;font-weight:600}
footer{background:#111;color:#ddd;padding:24px 0;font-size:.88rem;margin-top:20px}
footer a{color:#ffd28a}
/* hub */
.filmgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin:18px 0}
a.filmcard{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:transform .15s}
a.filmcard:hover{transform:translateY(-3px)}
a.filmcard .ph{position:relative}
a.filmcard .ph img{width:100%;aspect-ratio:16/9;object-fit:cover}
a.filmcard .ph .n{position:absolute;top:10px;left:10px;background:var(--c,#c0392b);color:#fff;font-weight:800;border-radius:999px;padding:3px 12px;font-size:.8rem}
a.filmcard .body{padding:12px 14px 16px}
a.filmcard h3{font-size:1.3rem;margin:0 0 4px}
a.filmcard p{margin:4px 0;font-size:.9rem;color:var(--muted)}
a.filmcard .go{display:inline-block;margin-top:6px;font-weight:700;color:var(--c,#c0392b)}
@media (max-width:520px){body{font-size:16px}.card{padding:13px 13px}.hero .wrap{padding-top:32px}}
@media print{.topnav,.tabbar,.linkbar,.video,.timer,footer .noprint{display:none!important}.js .panel{display:block!important}.hero{color:#000;background:#fff}.hero::after,.hero .bg{display:none}.hero h1{color:#000}.chips span{color:#000;border-color:#999}body{background:#fff}.card{break-inside:avoid}}

.concept{background:#fff;border:2px solid var(--accent);border-radius:16px;padding:16px 18px;margin:18px 0 6px}
.concept .clabel{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--accent)}
.concept h2{margin:.15em 0 .3em}
.concept .cq{background:#f7f4ee;border-radius:10px;padding:8px 12px}
.routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:10px}
.routes>div{background:#f7f7f9;border-radius:12px;padding:10px 12px}
.routes p{margin:.3em 0 0;line-height:1.9}
.theme{border-top:4px solid var(--c,#2e7d4f);background:#fff;border-radius:16px;padding:16px 18px;margin:22px 0;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.theme .filmgrid{margin-top:10px}
@media(max-width:600px){.topnav{position:static}}
@media(max-width:600px){table.t.stack thead{display:none}table.t.stack,table.t.stack tbody,table.t.stack tr,table.t.stack td,table.t.stack th{display:block;width:100%}table.t.stack tr{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;overflow:hidden}table.t.stack td,table.t.stack th{border:0;border-top:1px solid var(--line)}table.t.stack tr>*:first-child{border-top:0;background:#f4efe6}table.t.stack td[data-label]::before{content:attr(data-label);display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}}
.closing{border-left:5px solid var(--accent,#b5532a)}.closing.deep{background:#fff8ee}.closing h3{margin-top:0}
.thread{border:2px solid #2f6f4f;background:#f2f8f3}.thread h2{margin:.1em 0 .3em}.placelist{padding-left:1.1em;margin:.5em 0 0}.placelist li{margin:.25em 0}

/*youth-hook*//*youth-hook-v3*/.yh{background:#0f2f4a;color:#fff;border-radius:14px;padding:14px;margin:.4em 0 1em}.yh .k{margin:0;color:#ffd9c9;font-weight:700;font-size:.85rem}.yh .q{font-family:Fraunces,serif;font-size:1.18rem;margin:.25em 0 .6em;line-height:1.35}.yh .starters{background:#fff;color:#0f2f4a;border-radius:10px;padding:8px 12px}.yh .vis{margin:.7em 0 0;background:#fff4e8;color:#5a2a10;border-radius:10px;padding:8px 12px;font-size:.95rem}.yh .n{color:#c9d6e2;font-size:.85rem;margin:.5em 0 0}.yh .yh-fig{margin:-14px -14px 12px;position:relative;background:transparent;border:0;border-radius:14px 14px 0 0;overflow:hidden}.yh-fig img{display:block;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px 14px 0 0}.yh .yh-fig figcaption{background:transparent;font-size:.72rem;line-height:1.35;color:#c9d6e2;padding:6px 14px 0}.yh .yh-fig figcaption a{color:#fff}.yh .q{font-size:1.32rem;font-weight:700}
.et-fig{margin:0 0 12px}.et-fig img{display:block;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px}.et-fig figcaption{font-size:.75rem;color:#5b6b7a;margin-top:4px}.vis-line{background:#fff4e8;color:#5a2a10;border-radius:10px;padding:8px 12px}
