/* Site de Defuse: Last Minute (#44).
   1. Thème du jeu : jetons --site-* tirés de `Palette` (palette.css, généré depuis
      lib/theme/palette.dart), polices et textures de l'app.
   2. Ossature commune : mêmes classes que le site de Werewolf (en-tête, navigation, menu,
      pied de page, pages intérieures), écrites seulement avec les jetons --site-* : c'est la
      partie à mutualiser (factory#196).
   3. Vitrine propre au jeu. */

/* 1. Thème */
@font-face{font-family:Title;src:url('/assets/title.ttf');font-display:swap}
@font-face{font-family:Body;src:url('/assets/body.ttf');font-display:swap}
@font-face{font-family:Body;font-weight:600;src:url('/assets/body-bold.ttf');font-display:swap}
:root{
  --site-bg:var(--charcoalDeep);--site-bar:var(--bar);--site-surface:var(--plateFace);--site-shadow:var(--soot);
  --site-text:var(--ivory);--site-muted:var(--ivoryFaded);--site-accent:var(--amber);--site-accent-strong:var(--rust);
  --site-line:var(--steel);--site-title-font:Title,Impact,sans-serif;--site-body-font:Body,system-ui,sans-serif;
  --site-title-transform:uppercase;--site-backdrop:url('/assets/fond.webp');--site-texture:url('/assets/texture.webp');
}

/* 2. Ossature commune */
*{box-sizing:border-box}
html{color-scheme:dark;background:var(--site-bg);scroll-behavior:smooth}
body{margin:0;color:var(--site-text);font:1.08rem/1.6 var(--site-body-font);
  background:linear-gradient(color-mix(in srgb,var(--site-bg) 72%,transparent),color-mix(in srgb,var(--site-bg) 92%,transparent)) fixed,
  var(--site-bg) var(--site-backdrop) center top/cover fixed}
a{color:var(--site-accent);text-underline-offset:.25em}
a:hover{color:var(--site-text)}
a:focus-visible,summary:focus-visible{outline:2px solid var(--site-accent);outline-offset:4px}
h1,h2,h3,.eyebrow,.brand span{font-family:var(--site-title-font);text-transform:var(--site-title-transform);letter-spacing:.04em}
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;z-index:40;background:var(--site-surface);padding:.5rem 1rem}

.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--site-bar) 92%,transparent);border-bottom:1px solid var(--site-line)}
.bar{max-width:68rem;margin:auto;padding:.6rem 1.5rem;display:flex;align-items:center;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--site-text);margin-right:auto;min-width:0}
.brand img{width:2.5rem;height:2.5rem;object-fit:contain;flex:none}
.brand span{font-size:1.5rem;line-height:1;white-space:nowrap}
.main-nav{display:flex;gap:.2rem}
.main-nav a,.menu nav a{text-decoration:none;color:var(--site-muted);padding:.6rem .8rem;font-weight:600;border-bottom:2px solid transparent}
.main-nav a:hover,.main-nav a[aria-current=page]{color:var(--site-text);border-bottom-color:var(--site-accent-strong)}
.lang,.menu{position:relative}
.lang summary,.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:2.6rem;height:2.6rem;padding:0 .7rem;border:1px solid var(--site-line);color:var(--site-text)}
.lang summary::-webkit-details-marker,.menu summary::-webkit-details-marker{display:none}
.lang ul{position:absolute;right:0;top:calc(100% + .5rem);list-style:none;margin:0;padding:.4rem 0;min-width:11rem;background:var(--site-surface);border:1px solid var(--site-line)}
.lang a{display:block;padding:.5rem 1rem;text-decoration:none;color:var(--site-text)}
.menu{display:none}
.menu summary{flex-direction:column;gap:5px}
.menu summary span{display:block;width:1.3rem;height:2px;background:var(--site-text);transition:transform .25s ease,opacity .25s ease}
.menu[open] summary span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu[open] summary span:nth-child(2){opacity:0}
.menu[open] summary span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu nav{position:fixed;left:0;right:0;top:3.8rem;display:flex;flex-direction:column;padding:.5rem 1.25rem 1.25rem;background:color-mix(in srgb,var(--site-bar) 96%,transparent);border-bottom:1px solid var(--site-line)}
.menu nav a{padding:1rem .25rem;border-bottom:1px solid color-mix(in srgb,var(--site-line) 60%,transparent)}
.menu nav a[aria-current=page]{color:var(--site-text)}

main{width:min(100% - 2.5rem,64rem);margin:auto;padding-bottom:3rem}
.eyebrow{margin:0 0 .6rem;color:var(--site-accent);font-size:1rem}
.section-title{display:flex;align-items:center;gap:1rem;font-size:clamp(1.7rem,5vw,2.4rem);line-height:1.2;margin:0 0 1.2rem;color:var(--site-text)}
.section-title:after{content:"";flex:1;height:2px;background:linear-gradient(to right,var(--site-accent-strong),transparent)}
.section-lead{color:var(--site-muted);max-width:40rem;margin:0 0 1.5rem}
.note{border-left:4px solid var(--site-accent);background:color-mix(in srgb,var(--site-shadow) 70%,transparent);padding:.7rem 1rem;color:var(--site-text)}

.page-hero{padding:2.8rem 0 1.6rem}
.page-hero h1{font-size:clamp(2rem,6vw,3rem);line-height:1.15;margin:0;color:var(--site-text)}
.page-hero .section-lead{margin:.8rem 0 0}
.page-layout{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:2rem;align-items:start}
.legal-layout{grid-template-columns:17rem minmax(0,1fr)}
.legal,.contact,.toc,.question{background:color-mix(in srgb,var(--site-surface) 88%,transparent) var(--site-texture) center/cover;background-blend-mode:multiply;
  border:1px solid var(--site-line);border-top:3px solid var(--site-accent-strong);box-shadow:0 1rem 2rem color-mix(in srgb,var(--site-shadow) 70%,transparent)}
.legal{padding:1.6rem 1.8rem;max-width:48rem}
.legal h2,.legal h3{font-size:1.4rem;color:var(--site-text);margin:2rem 0 .5rem;scroll-margin-top:5rem}
.legal>:first-child{margin-top:0}
.legal li{margin:.3rem 0}
.contact,.toc{position:sticky;top:5.5rem;padding:1.4rem}
.contact h2{font-size:1.4rem;margin:0 0 .5rem}
.contact p{font-size:.98rem;margin:.5rem 0}
.mail{display:inline-block;margin:.5rem 0;padding:.7rem 1.2rem;font:1.05rem/1 var(--site-title-font);text-transform:var(--site-title-transform);text-decoration:none;color:var(--site-bg);background:var(--site-accent)}
.toc ol{margin:.6rem 0 0;padding:0;list-style:none;display:grid;gap:.15rem;max-height:calc(100vh - 11rem);overflow:auto}
.toc a{display:block;padding:.3rem 0;font-size:.9rem;line-height:1.35;color:var(--site-muted);text-decoration:none}
.toc a:hover{color:var(--site-text)}
.faq>h2{font-size:1.5rem;margin:2rem 0 .8rem;color:var(--site-accent)}
.faq>h2:first-child{margin-top:0}
.question{margin:0 0 .6rem}
.question summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;font-weight:600;color:var(--site-text)}
.question summary::-webkit-details-marker{display:none}
.question summary:after{content:"+";flex:none;font:1.4rem/1 var(--site-title-font);color:var(--site-accent);transition:transform .25s ease}
.question[open] summary:after{transform:rotate(45deg)}
.question .prose{padding:0 1.2rem .6rem}

.site-footer{border-top:1px solid var(--site-line);background:color-mix(in srgb,var(--site-bar) 94%,transparent);color:var(--site-muted)}
.footer-grid{max-width:68rem;margin:auto;padding:2.5rem 1.5rem 1.5rem;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;align-items:start}
.footer-brand img{width:4rem;height:4rem;object-fit:contain}
.footer-name{font:1.4rem/1.2 var(--site-title-font);text-transform:var(--site-title-transform);color:var(--site-text);margin:.6rem 0 .3rem}
.footer-tagline{margin:0;font-size:.9rem}
.footer-links{display:flex;flex-direction:column;gap:.55rem}
.footer-links a,.footer-languages a{color:var(--site-text);text-decoration:none}
.footer-links a:hover,.footer-links a[aria-current=page],.footer-languages a[aria-current=page]{color:var(--site-accent)}
.footer-languages ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.copyright{max-width:68rem;margin:auto;padding:1rem 1.5rem 1.5rem;border-top:1px solid color-mix(in srgb,var(--site-line) 50%,transparent);font-size:.8rem;text-align:center}

@media(max-width:52rem){.main-nav{display:none}.menu{display:block}.bar{gap:.6rem;padding:.55rem 1rem}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}
  .page-layout,.legal-layout{grid-template-columns:1fr}.contact,.toc{position:relative;top:0}.toc ol{max-height:none}.support .contact{order:-1}}
@media(max-width:36rem){.brand span{font-size:1.15rem}.brand img{width:2.1rem;height:2.1rem}
  .footer-grid{grid-template-columns:1fr;gap:1.6rem;text-align:center}.footer-brand img{margin:auto}.legal{padding:1.2rem}}

/* 3. Vitrine de Defuse: Last Minute (maquette validée le 10 novembre 2026). Matières du design
   system : bouton émail, bouton tôle, plaque sur embase, établi ; captures des cartes validées. */
.home-page{width:100%;padding-bottom:0}
.band{width:min(100% - 2.5rem,75rem);margin:auto}
.home-page>section{padding:5.5rem 0}
.home-page>section.how,.home-page>section.valise,.home-page>section.features{background:var(--charcoalDeep)}
.how,.tension,.access{border-top:3px solid var(--rust)}
.tension{border-bottom:3px solid var(--rust);background:linear-gradient(color-mix(in srgb,var(--charcoalDeep) 55%,transparent),color-mix(in srgb,var(--charcoalDeep) 78%,transparent)),var(--charcoalDeep) url('/assets/etabli.webp') center/cover}
.home-page>section.valise{padding-top:1.5rem}
.kicker{margin:0 0 .6rem;font:600 1rem/1.3 var(--site-title-font);letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}
.headline{margin:0 0 2.5rem;font-size:clamp(2.2rem,4.6vw,3.5rem);line-height:1;letter-spacing:.02em;color:var(--ivory)}
.hero h1{margin:0;font-size:clamp(2.8rem,5.6vw,4.6rem);line-height:.95;letter-spacing:.02em;color:var(--ivory);text-shadow:2px 3px 2px color-mix(in srgb,var(--soot) 65%,transparent)}
.home-page>section.hero{padding:4.5rem 0 6rem;background:linear-gradient(90deg,color-mix(in srgb,var(--charcoalDeep) 96%,transparent),color-mix(in srgb,var(--charcoalDeep) 82%,transparent) 42%,color-mix(in srgb,var(--charcoalDeep) 35%,transparent)),linear-gradient(0deg,var(--charcoalDeep),transparent 30%),url('/assets/fond.webp') center 35%/cover}
.hero-band,.valise-band,.access-band{display:flex;flex-wrap:wrap;align-items:center;gap:3rem}
.hero-copy{flex:1 1 27rem;min-width:0;display:flex;flex-direction:column;gap:1.4rem}
.hero-copy .kicker{margin:0;font-size:1.1rem;letter-spacing:.14em}
.description{margin:0;max-width:34em;font-size:1.2rem}
.actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.4rem}
.button-email,.button-tole{display:inline-flex;align-items:center;justify-content:center;min-height:3.5rem;padding:0 1.6rem;border-style:solid;border-width:7px;
  font:800 1.25rem/1 var(--site-title-font);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;filter:drop-shadow(1.5px 2.5px 2px color-mix(in srgb,var(--soot) 75%,transparent))}
.button-email{color:var(--charcoal);border-image:url('/assets/bouton-email.webp') 34 fill / 7px stretch}
.button-tole{color:var(--ivory);border-image:url('/assets/bouton-tole.webp') 32 fill / 7px stretch}
.button-email:hover,.button-tole:hover{filter:brightness(1.08) drop-shadow(1.5px 2.5px 2px color-mix(in srgb,var(--soot) 75%,transparent))}
.button-email:hover{color:var(--charcoal)}.button-tole:hover{color:var(--ivory)}
.offline{margin:.3rem 0 0;font:600 .95rem/1.3 var(--site-title-font);letter-spacing:.16em;text-transform:uppercase;color:var(--ivoryFaded)}
.phone{border-radius:1.4rem;overflow:hidden;background:var(--soot);box-shadow:0 0 0 3px var(--soot),0 0 0 6px var(--steel),0 4px 6px rgba(0,0,0,.6),0 14px 16px rgba(0,0,0,.5)}
.phone img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.fan{flex:1 1 32rem;min-width:0;position:relative;height:35rem}
.fan .phone{position:absolute;width:15rem;height:26.5rem}
.phone-1{left:2%;top:4.4rem;transform:rotate(-6deg)}
.phone-2{right:2%;top:4.4rem;transform:rotate(6deg)}
.phone-3{left:50%;top:.6rem;margin-left:-7.5rem;z-index:2}
.moments,.feature-grid,.pieces ul{list-style:none;margin:0;padding:0}
.moments{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.75rem}
.plate{display:flex;flex-direction:column;gap:.75rem;padding:1.75rem 1.6rem 1.9rem;border-style:solid;border-width:16px;
  border-image:url('/assets/embase.webp') 63 fill / 16px stretch;filter:drop-shadow(2px 3px 2px color-mix(in srgb,var(--soot) 65%,transparent))}
.numeral{font:800 3.4rem/1 var(--site-title-font);color:var(--amber)}
.moments h3,.feature-grid h3{margin:0;font-size:1.75rem;letter-spacing:.06em;color:var(--ivory)}
.moments p{margin:0}
.phone-large{flex:0 0 auto;width:20.6rem;height:36.6rem;margin:auto}
.valise-copy{flex:1 1 26rem;min-width:0}
.valise-copy p:last-child,.access-copy>p{margin:0 0 1.2rem;max-width:32em}
.tension-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.5rem 3rem;margin-bottom:2.75rem}
.tension-head>div{flex:1 1 24rem}.tension-head .headline{margin:0}
.tension-head>p{flex:1 1 24rem;margin:0}
.pieces{display:flex;flex-direction:column;gap:1.5rem}
.pieces img{display:block;width:100%;height:auto;filter:drop-shadow(1.6px 2.4px 2px color-mix(in srgb,var(--soot) 70%,transparent))}
.pieces-top{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem}
.piece-tall{flex:1 1 18rem;max-width:24rem;margin:auto}
.pieces-wide{flex:1 1 30rem;min-width:0;display:flex;flex-direction:column;gap:1.5rem}
.pieces-small{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1.5rem}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.25rem}
.feature-grid li{display:flex;flex-direction:column;gap:.75rem;padding:1.6rem 1.5rem;background:var(--plateFace);border:1px solid var(--seam);border-radius:6px}
.feature-grid h3{font-size:1.5rem}
.feature-grid p{margin:0;color:var(--ivoryFaded)}
.icon{width:2.1rem;height:2.1rem;fill:none;stroke:var(--brass);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.home-page>section.access{background:linear-gradient(90deg,color-mix(in srgb,var(--charcoalDeep) 96%,transparent),color-mix(in srgb,var(--charcoalDeep) 82%,transparent) 42%,color-mix(in srgb,var(--charcoalDeep) 35%,transparent)),url('/assets/fond.webp') center/cover}
.access-copy{flex:1 1 29rem;min-width:0}
.access-phones{flex:0 0 auto;display:flex;gap:1.5rem;margin:auto}
.access-phones .phone{width:15.6rem;height:27.6rem}
.access-phones .phone-low{margin-top:3rem}
.android{max-width:36rem;margin:0 0 1.5rem;padding:1.2rem 1.3rem;background:color-mix(in srgb,var(--soot) 60%,transparent);border:1px solid var(--seam);border-radius:6px}
.android-title{margin:0 0 .8rem;font-size:1.3rem;letter-spacing:.08em;color:var(--amber)}
.android .note{margin:0}
.release-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.release .kicker{margin:0}
.version{margin:.1rem 0;font:800 1.8rem/1 var(--site-title-font);color:var(--ivory)}
.metadata{margin:0;font-size:.9rem;color:var(--ivoryFaded)}
.notes summary{cursor:pointer;margin-top:.8rem;color:var(--amber)}
.archive-title{margin:1.2rem 0 .4rem;font-size:1rem;color:var(--ivoryFaded)}
.archive{list-style:none;margin:0;padding:0}
.release-row{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;padding:.5rem 0;border-top:1px solid color-mix(in srgb,var(--seam) 60%,transparent)}
.release-row .version{font-size:1.1rem}
@media(max-width:56rem){
  .home-page>section{padding:4rem 0}
  .fan{height:28rem}.fan .phone{width:11.4rem;height:20rem}.phone-3{margin-left:-5.7rem}
  .home-page>section.hero,.home-page>section.access{background:linear-gradient(color-mix(in srgb,var(--charcoalDeep) 86%,transparent),color-mix(in srgb,var(--charcoalDeep) 94%,transparent)),url('/assets/fond.webp') center/cover}}
@media(max-width:36rem){
  .phone-large{width:16rem;height:28.4rem}
  .access-phones .phone{width:9.5rem;height:16.8rem}.access-phones .phone-low{margin-top:2rem}
  .fan{height:22rem}.fan .phone{width:8.8rem;height:15.6rem}.phone-3{margin-left:-4.4rem}.phone-1{left:3%}.phone-2{right:3%}}
