/* Styles propres à la page realisations.php */
:root{
    --night:#06070D; --ivory:#F4F1EA; --mist:#A5AAC0;
    --glass:rgba(255,255,255,.055); --glass-line:rgba(255,255,255,.12); --hair:rgba(255,255,255,.09);
    --indigo:#5B5FEF; --cyan:#4FD8E0;
    --ease:cubic-bezier(.19,.84,.4,1); --dur-fast:160ms; --dur:260ms;
    --sp-y:80px; --sp-y-tight:48px; --r-card:20px; --r-tile:14px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--night);color:var(--ivory);font-family:"Manrope",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
  a{color:inherit;text-decoration:none;}
  [hidden]{display:none !important;}
  img{max-width:100%;height:auto;}
  button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;}
  .shell{max-width:1180px;margin:0 auto;padding-inline:20px;}
  @media (max-width:480px){.shell{padding-inline:18px;}}
  :focus-visible{outline:2px solid var(--ivory);outline-offset:3px;}

  /* ---------- nav ---------- */
  .nav{position:sticky;top:0;z-index:30;background:rgba(6,7,13,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hair);transition:box-shadow .35s var(--ease),background-color .35s var(--ease);}
  .nav.scrolled{box-shadow:0 12px 34px -22px rgba(0,0,0,.8);background:rgba(6,7,13,.88);}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-block:13px;transition:padding-block .35s var(--ease);}
  .nav.scrolled .nav-inner{padding-block:9px;}
  .wordmark{display:flex;align-items:center;transition:opacity var(--dur-fast) var(--ease);}
  .wordmark:hover{opacity:.82;}
  .wordmark img{height:30px;width:auto;display:block;transition:height .35s var(--ease);}
  .nav.scrolled .wordmark img{height:25px;}
  @media (max-width:420px){.wordmark img{height:26px;}}
  .nav-right{display:flex;align-items:center;gap:8px;}
  .nav-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;font-size:13.5px;font-weight:600;color:var(--mist);border-radius:100px;transition:color var(--dur) var(--ease),translate var(--dur-fast) var(--ease),scale var(--dur-fast) var(--ease);}
  .nav-back:hover{color:var(--ivory);translate:-2px 0;}
  .nav-back:active{scale:.96;}
  .btn,.nav-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:100px;font-weight:800;
    background:linear-gradient(135deg,#8488FF,var(--cyan));color:var(--night);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 10px 28px -12px rgba(79,216,224,.5);
    transition:filter var(--dur) var(--ease),box-shadow var(--dur) var(--ease),translate var(--dur-fast) var(--ease),scale var(--dur-fast) var(--ease);}
  .btn{min-height:50px;padding:14px 26px;font-size:15px;}
  .nav-cta{min-height:44px;padding:10px 18px;font-size:13px;}
  .btn:hover,.nav-cta:hover{filter:brightness(1.08);translate:0 -2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3),0 18px 38px -12px rgba(79,216,224,.65);}
  .btn:active,.nav-cta:active{scale:.97;translate:0 0;}
  .nav-cta .short{display:none;}
  @media (max-width:420px){.nav-back .txt{display:none;}.nav-cta .full{display:none;}.nav-cta .short{display:inline;}}
  .btn-ghost{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:13px 24px;border-radius:100px;font-size:14.5px;font-weight:700;
    border:1px solid rgba(255,255,255,.3);color:var(--ivory);background:rgba(255,255,255,.07);
    transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),translate var(--dur-fast) var(--ease),scale var(--dur-fast) var(--ease);}
  .btn-ghost:hover{border-color:var(--cyan);color:var(--cyan);translate:0 -2px;}
  .btn-ghost:active{scale:.97;translate:0 0;}

  .label{display:flex;align-items:center;gap:10px;margin:0 0 22px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);}
  .label::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6;}
  .section-title{margin:0 0 16px;font-family:"Fraunces",Georgia,serif;font-weight:650;font-size:clamp(28px,4vw,42px);line-height:1.08;letter-spacing:-.015em;text-wrap:balance;}
  .section-title em{font-style:italic;font-weight:500;color:var(--cyan);}
  .section-lede{margin:0;max-width:52ch;font-size:15.5px;line-height:1.62;color:var(--mist);}
  a.inline{color:var(--ivory);border-bottom:1px solid rgba(79,216,224,.45);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);}
  a.inline:hover{color:var(--cyan);border-color:var(--cyan);}

  /* ---------- hero ---------- */
  .hero{position:relative;overflow:hidden;border-bottom:1px solid var(--hair);}
  .glow{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;}
  .glow-a{width:560px;height:560px;top:-280px;right:-140px;background:rgba(91,95,239,.30);}
  .glow-b{width:440px;height:440px;bottom:-300px;left:-160px;background:rgba(79,216,224,.14);}
  .hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center;padding-block:80px 72px;}
  h1{margin:0 0 22px;font-family:"Fraunces",Georgia,serif;font-weight:650;font-size:clamp(38px,5.6vw,62px);line-height:1.02;letter-spacing:-.015em;text-wrap:balance;}
  h1 em{font-style:italic;font-weight:500;color:var(--cyan);}
  .lede{margin:0 0 32px;max-width:52ch;font-size:16.5px;line-height:1.62;color:var(--mist);}
  .actions{display:flex;flex-wrap:wrap;gap:12px;}

  /* ---------- hero ---------- */
  .hero-inner{padding-block:74px 66px;}
  .recap{padding:26px;border-radius:var(--r-card);background:linear-gradient(160deg,rgba(91,95,239,.14),rgba(79,216,224,.04));border:1px solid var(--glass-line);box-shadow:0 30px 70px -40px rgba(0,0,0,.9);}
  .recap-title{margin:0 0 18px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mist);}
  .recap-item{display:grid;gap:4px;padding-block:18px;border-top:1px solid var(--hair);}
  .recap-item:first-of-type{padding-top:0;border-top:0;}
  .recap-k{margin:0;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--cyan);}
  .recap-n{margin:0;font-size:17px;font-weight:800;line-height:1.3;}
  .recap-d{margin:0;font-size:13.5px;line-height:1.55;color:var(--mist);}
  .recap-foot{display:flex;align-items:center;gap:10px;margin:0;padding-top:18px;border-top:1px solid var(--hair);font-size:13px;color:var(--ivory);}
  .recap-foot::before{content:"";flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(79,216,224,.14);}
  @media (max-width:900px){.hero-inner{grid-template-columns:1fr;gap:40px;padding-block:54px;}}
  @media (max-width:480px){
    .recap{padding:22px 18px;}
    .actions .btn,.actions .btn-ghost{width:100%;justify-content:center;}
  }

  /* ---------- une réalisation ---------- */
  .case{padding-block:var(--sp-y);border-top:1px solid var(--hair);}
  .case-head{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:28px 56px;align-items:start;margin-bottom:44px;}
  .case-title{margin:0 0 16px;font-family:"Fraunces",Georgia,serif;font-weight:650;font-size:clamp(28px,4vw,44px);line-height:1.06;letter-spacing:-.015em;text-wrap:balance;}
  .case-title em{font-style:italic;font-weight:500;color:var(--cyan);}
  .case-lede{margin:0;max-width:52ch;font-size:15.8px;line-height:1.65;color:var(--mist);}
  .case-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
  .pill{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;border-radius:100px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mist);background:rgba(255,255,255,.05);border:1px solid var(--glass-line);}
  .case-link{display:inline-flex;align-items:center;gap:9px;margin-top:24px;font-size:14.5px;font-weight:700;color:var(--ivory);border-bottom:1px solid rgba(79,216,224,.45);padding-bottom:3px;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),translate var(--dur-fast) var(--ease);}
  .case-link:hover{color:var(--cyan);border-color:var(--cyan);translate:0 -2px;}
  .case-list{list-style:none;margin:0;padding:22px 24px;border-radius:var(--r-card);background:var(--glass);border:1px solid var(--glass-line);display:grid;gap:14px;}
  .case-list li{display:flex;gap:13px;font-size:14.6px;line-height:1.6;color:var(--ivory);}
  .case-list li::before{content:"";flex-shrink:0;margin-top:8px;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(79,216,224,.14);}
  .case-list b{font-weight:800;}
  @media (max-width:900px){.case-head{grid-template-columns:1fr;gap:28px;margin-bottom:34px;}}
  @media (max-width:480px){.case-list{padding:20px 18px;}}

  /* ---------- écrans ---------- */
  .shots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
  .shot{margin:0;}
  .shot-btn{display:block;width:100%;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--glass-line);background:rgba(255,255,255,.04);cursor:zoom-in;
    transition:border-color var(--dur) var(--ease),translate var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
  .shot-btn:hover{border-color:rgba(79,216,224,.4);translate:0 -4px;box-shadow:0 30px 60px -34px rgba(0,0,0,.95);}
  .shot-btn:active{translate:0 -1px;}
  .shot-btn img{display:block;width:100%;height:auto;}
  .shots .shot-btn img{aspect-ratio:560/1016;object-fit:cover;object-position:top center;}
  .shot figcaption{margin-top:12px;font-size:13.2px;line-height:1.5;color:var(--mist);}
  .shot b{display:block;margin-bottom:2px;font-size:13.5px;font-weight:800;color:var(--ivory);}
  @media (max-width:1023px){.shots{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}}
  @media (max-width:520px){.shots{grid-template-columns:1fr;max-width:340px;margin-inline:auto;}}

  /* ---------- cadre navigateur ---------- */
  .stage{position:relative;}
  .browser{border-radius:var(--r-card);overflow:hidden;border:1px solid var(--glass-line);background:rgba(255,255,255,.05);box-shadow:0 44px 96px -52px rgba(0,0,0,.95);
    transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
  .browser:hover{border-color:rgba(79,216,224,.32);}
  .browser-bar{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--hair);background:rgba(6,7,13,.6);}
  .browser-dots{display:flex;gap:6px;flex-shrink:0;}
  .browser-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18);}
  .browser-url{flex:1;min-width:0;padding:6px 14px;border-radius:100px;background:rgba(255,255,255,.06);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;color:var(--mist);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .browser .shot-btn{border:0;border-radius:0;background:none;}
  .browser .shot-btn:hover{translate:none;box-shadow:none;}
  .phone-float{position:absolute;right:-14px;bottom:-40px;width:158px;border-radius:20px;overflow:hidden;border:1px solid var(--glass-line);box-shadow:0 34px 64px -26px rgba(0,0,0,.95);background:var(--night);}
  .phone-float img{display:block;width:100%;height:auto;}
  .phone-float .shot-btn{border:0;border-radius:0;}
  .phone-float .shot-btn:hover{translate:none;box-shadow:none;}
  @media (max-width:760px){
    .phone-float{position:static;width:100%;max-width:230px;margin:20px auto 0;}
  }
  @media (max-width:480px){.browser-url{font-size:10.5px;}}

  /* ---------- vignettes ---------- */
  .thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto;gap:20px;margin-top:64px;}
  .thumbs .shot{display:grid;gap:12px;align-content:start;}
  @supports (grid-template-rows:subgrid){.thumbs .shot{grid-row:span 2;grid-template-rows:subgrid;}}
  .thumbs figcaption{margin-top:0;}
  @media (max-width:860px){.thumbs{grid-template-columns:1fr;gap:26px;margin-top:46px;}}

  .case-foot{margin:26px 0 0;font-size:13.2px;color:var(--mist);}

  /* ---------- visionneuse ---------- */
  .lb{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:28px 20px;background:rgba(6,7,13,.97);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);}
  .lb.open{opacity:1;pointer-events:auto;}
  .lb>div{display:grid;justify-items:center;max-height:100%;}
  .lb-img{max-width:min(1180px,94vw);max-height:min(78vh,1100px);border-radius:var(--r-tile);border:1px solid var(--glass-line);box-shadow:0 50px 110px -46px #000;}
  .lb-cap{margin:18px 0 0;max-width:60ch;text-align:center;font-size:13.5px;color:var(--mist);}
  .lb-close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:44px;height:44px;border-radius:10px;font-size:18px;color:var(--ivory);background:rgba(255,255,255,.07);border:1px solid var(--glass-line);
    transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),scale var(--dur-fast) var(--ease);}
  .lb-close:hover{border-color:var(--cyan);color:var(--cyan);}
  .lb-close:active{scale:.95;}

  /* ---------- footer ---------- */
  .site-footer{border-top:1px solid var(--hair);padding-block:20px;}
  .site-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;font-size:13px;color:var(--mist);}
  .footer-links{display:flex;flex-wrap:wrap;gap:0 22px;}
  .footer-links a{display:inline-block;padding-block:10px;transition:color var(--dur) var(--ease);}
  .footer-links a:hover{color:var(--ivory);}

  [data-reveal]{opacity:1;}
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
    .reveal{opacity:1;transform:none;}
  }
