/* ==========================================================================
   Les polices, servies par Nota — jamais par un tiers.
   Inter (texte) et Sora (titres) arrivaient de fonts.googleapis.com : l'adresse
   IP et l'agent de CHAQUE visiteur atteignaient Google avant toute bannière, sur
   un site qui vend des actes notariés (propriétaire, 2026-09-12). Les octets
   vivent désormais dans /fonts, licence OFL jointe (fonts/OFL.txt).
   Ce sont les versions VARIABLES : un seul fichier par tranche couvre toutes
   les graisses. `swap` garde le texte lisible pendant le chargement.
   ========================================================================== */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url('/fonts/sora-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url('/fonts/sora-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root{--radius:8px;--radius-xs:3px;--radius-sm:6px;--radius-lg:12px;--subtitle-ink:#f4f8fa;--font-display:Sora,Inter,ui-sans-serif,sans-serif;--weight-display:700;--type-h1:clamp(26px, 2.25vw, 36px);--type-h1-lh:1.12;--type-h1-ls:-.04em;--type-h1-compact:clamp(26px, 6vw, 32px);--type-h2:clamp(19px, 1.5vw, 24px);--type-h2-lh:1.2;--type-h2-ls:-.035em;--type-h3:17px;--type-h3-lh:1.3;--type-h3-ls:-.02em;--type-h4:15px;--type-h4-lh:1.3;--type-h4-ls:-.01em;--type-lead:16px;--type-lead-lh:1.6;--type-eyebrow:12px;--type-eyebrow-ls:.1em;--type-body:16px;--type-body-lh:1.5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:var(--type-body);line-height:var(--type-body-lh)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--brand);outline-offset:4px}button{transition:background .18s,color .18s,border .18s}button:hover:not(:disabled){filter:brightness(1.12)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display)}h1{font-size:var(--type-h1);line-height:var(--type-h1-lh);letter-spacing:var(--type-h1-ls)}h2{font-size:var(--type-h2);line-height:1.15;letter-spacing:var(--type-h2-ls)}h3{font-size:var(--type-h3);letter-spacing:-.02em}p{line-height:1.65}svg{display:block;width:100%;height:100%}.muted{color:var(--ink-muted)}.small{font-size:12px}.wide{width:100%}.skip-link{position:fixed;left:16px;top:-70px;z-index:50;background:var(--brand);color:var(--brand-ink);padding:12px}.skip-link:focus{top:12px}.topbar{height:88px;padding:0 4vw;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:var(--lockup-badge-gap)}.product-label{display:flex;gap:15px;align-items:center;font-size:13px;color:var(--ink-muted)}.divider{height:24px;border-left:1px solid var(--border);margin-right:10px}.beta-badge,.outline-badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:1px;padding:5px 8px;border-radius:var(--radius-xs)}.beta-badge{background:var(--brand-solid);color:var(--brand-ink);border:1px solid var(--brand-bright)}.outline-badge{border:1px solid var(--border);color:var(--ink-muted);font-size:12px;letter-spacing:.2px}.header-actions{display:flex;align-items:center;gap:25px;margin-left:auto;font-size:12px}.text-button,.language-toggle{border:0;background:none;color:var(--ink-muted);padding:9px 0}/* FR|EN, the carnet's control: BOTH options visible and the current one on a filled cell. The old single button showed only the other language — and was wired to children the markup never had, so it did nothing at all. */.language-toggle.mini-seg{display:inline-flex;align-items:center;gap:2px;padding:2px;height:28px;border-radius:var(--radius);background:var(--surface-soft)}.language-toggle .mini-seg-btn{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:44px;padding:0 9px;border:1px solid transparent;background:none;color:var(--ink-muted);font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.04em;line-height:1;border-radius:var(--radius-xs);cursor:pointer}.language-toggle .mini-seg-btn:hover{color:var(--ink)}.language-toggle .mini-seg-btn[aria-pressed=true]{background:var(--surface-raised);border-color:var(--border);color:var(--ink)}.language-toggle{font-size:12px;font-weight:650;min-width:28px;color:var(--ink)}.back-link{border:1px solid var(--border);padding:10px 16px;border-radius:var(--radius)}.welcome{max-width:1280px;margin:0 auto;padding:clamp(28px,4vw,48px) 28px 56px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,4vw,56px);row-gap:32px;align-items:center}.eyebrow{font-size:var(--type-eyebrow);letter-spacing:var(--type-eyebrow-ls);font-weight:var(--weight-display);text-transform:uppercase;color:var(--subtitle-ink);display:flex;align-items:center;gap:9px}.signal-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--brand);flex-shrink:0}.welcome h1{margin:20px 0}.welcome h1 span{color:inherit}.hero-description{font-size:var(--type-lead);max-width:48ch;color:var(--ink-muted);line-height:var(--type-lead-lh)}.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;margin:32px 0 14px}.button{min-height:44px;padding:12px 17px;border-radius:var(--radius);font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;line-height:1.4}.primary{background:transparent;color:var(--brand);border-color:var(--brand);font-weight:700}.secondary{background:var(--surface);border-color:var(--border);color:var(--ink)}.compact{padding:10px 14px;min-height:44px;font-size:12px}.danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-bg)}.beta-note{display:flex;align-items:flex-start;gap:12px;margin-top:24px;max-width:48ch;padding-top:20px;border-top:1px solid var(--border)}.beta-note p{font-size:12px;color:var(--ink-muted)}.experience-card{background:linear-gradient(145deg,var(--surface-raised),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);position:relative;overflow:hidden;min-width:0}.experience-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.experience-card-head .eyebrow{font-size:12px}.experience-visual{height:176px;position:relative;display:grid;place-items:center;overflow:hidden;margin:0 -20px}.orbit{border:1px solid var(--border);position:absolute;width:340px;height:180px;border-radius:var(--radius-lg);transform:rotate(-28deg);opacity:.75}.orbit-two{transform:rotate(28deg);height:220px;width:245px}.meeting-symbol{width:88px;height:88px;padding:14px;background:var(--surface-raised);border:1px solid var(--brand);border-radius:var(--radius-lg);color:var(--brand);z-index:1;box-shadow:0 0 70px var(--glow)}.floating-label{position:absolute;background:var(--surface);border:1px solid var(--border);font-size:12px;padding:7px 11px;border-radius:var(--radius-sm);color:var(--ink-muted);z-index:2}.floating-label-one{left:6%;top:45px}.floating-label-two{right:4%;bottom:44px}.experience-list{padding:0;margin:0;list-style:none}.experience-list li{display:flex;align-items:flex-start;gap:16px;border-top:1px solid var(--border);padding:16px 0}.experience-list li:last-child{padding-bottom:0}.step-number{color:var(--faint);font-size:12px;margin-top:3px;font-variant-numeric:tabular-nums}.experience-list strong{font-size:13px;font-weight:550}.experience-list p{font-size:12px;color:var(--ink-muted);margin-top:4px}.principles{grid-column:1/-1;border-top:1px solid var(--border);padding-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.principles article{position:relative;padding-left:37px}.principle-icon{color:var(--brand);font-size:22px;position:absolute;left:0;top:-5px}.principles h2{font-size:var(--type-h4);letter-spacing:var(--type-h4-ls);margin-bottom:9px}.principles p{font-size:12px;color:var(--ink-muted);max-width:300px}.workspace{max-width:1720px;margin:0 auto;padding:30px 3vw 24px}.session-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.session-heading h1{font-size:var(--type-h2);letter-spacing:var(--type-h2-ls);margin:8px 0}.session-actions{display:flex;gap:9px}.rehearsal-banner{padding:10px 15px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;gap:14px}.rehearsal-banner p{font-size:12px;color:var(--ink-muted)}.banner-end{margin-left:auto;white-space:nowrap;font-size:12px;color:var(--ink-muted)}.progress-track{list-style:none;padding:25px 0;margin:0;display:flex;align-items:center;justify-content:space-between;gap:15px}.progress-track li{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:12px;flex:1}.progress-track li:after{content:"";height:1px;background:var(--border);flex:1;margin-left:8px}.progress-track li:last-child{flex:0 0 auto}.progress-track li:last-child:after{display:none}.progress-track li>span{border:1px solid var(--border);border-radius:var(--radius-sm);width:25px;height:25px;display:grid;place-items:center;font-size:12px}.progress-track strong{white-space:nowrap;font-weight:500}.progress-track .current,.progress-track .done{color:var(--brand)}.progress-track .current>span{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.progress-track .done>span{border-color:var(--brand);background:var(--surface-soft)}.room-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:23px;align-items:start}.video-column,.ceremony-column{min-width:0}.video-stage{aspect-ratio:1.52;min-height:330px;position:relative;overflow:hidden;background:var(--video-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--border)}.video-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 40%,var(--video-glow),transparent 65%);pointer-events:none}#remote-video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.remote-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:65px 90px 80px;color:var(--video-ink)}.presence-glyph{width:68px;height:68px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:14px;color:var(--video-signal);margin-bottom:25px;background:var(--video-wash)}.remote-placeholder h2{font-size:var(--type-h3);letter-spacing:var(--type-h3-ls);max-width:350px}.remote-placeholder p{font-size:12px;max-width:290px;margin-top:10px;color:var(--video-muted)}.video-topline{position:absolute;top:22px;left:23px;right:23px;display:flex;align-items:center;justify-content:space-between;gap:10px}.video-brand{color:var(--video-ink)}.connection-chip{background:var(--chip-bg);border:1px solid var(--border);padding:6px 9px;border-radius:var(--radius-sm);font-size:12px;color:var(--video-muted);display:flex;align-items:center;gap:7px}.connection-chip .signal-dot{background:var(--video-muted)}.connection-chip.connected .signal-dot{background:var(--video-signal)}.connection-chip.connected{border-color:var(--brand);color:var(--video-ink)}.remote-nameplate{position:absolute;left:23px;bottom:20px;display:flex;align-items:center;gap:8px;font-size:12px;background:var(--chip-bg);padding:8px 11px;border-radius:var(--radius-sm);color:var(--video-ink)}.local-preview{position:absolute;right:19px;bottom:18px;aspect-ratio:1.4;width:24%;max-width:175px;min-width:100px;border:1px solid var(--border-strong);background:var(--video-surface-soft);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.local-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.local-placeholder{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:6px;color:var(--video-muted);font-size:12px}.local-placeholder>span:first-child{font-size:22px;line-height:1}.local-name{position:absolute;left:8px;bottom:7px;font-size:12px;color:var(--video-ink);background:var(--chip-bg);padding:1px 4px;border-radius:var(--radius-xs)}.media-toolbar{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:11px 16px}.media-controls{display:flex;gap:9px}.control-button{border:1px solid var(--border);color:var(--ink-muted);background:var(--surface-raised);display:flex;align-items:center;gap:7px;border-radius:var(--radius-sm);padding:10px 13px;font-size:12px;min-height:44px}.control-icon{font-size:16px;line-height:1}.control-button[aria-pressed=true]{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.status-panel{border:1px solid var(--border);background:var(--surface-soft);border-radius:var(--radius);display:flex;gap:13px;padding:17px;margin-top:17px}.status-panel-icon{width:25px;flex-shrink:0;height:25px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--brand);font-size:17px}.status-panel strong{font-size:12px;font-weight:550}.status-panel p{font-size:12px;color:var(--ink-muted);margin-top:4px}.preflight-panel,.verification-panel,.ceremony-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:21px;margin-top:17px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-heading h2{font-size:var(--type-h4);letter-spacing:var(--type-h4-ls)}.preflight-checks{padding:0;margin:17px 0;list-style:none}.preflight-checks li{display:flex;align-items:center;gap:9px;color:var(--ink-muted);font-size:12px;margin-top:10px}.check-indicator{color:var(--faint);font-size:16px;line-height:1}.check-indicator.passed{color:var(--brand)}.consent-line{display:flex;gap:10px;align-items:flex-start;color:var(--ink-muted);font-size:12px;line-height:1.65;margin:15px 0}.consent-line input{width:15px;height:15px;accent-color:var(--brand-solid);margin:2px 0 0;flex-shrink:0}.preflight-actions{display:flex;gap:9px;margin-top:18px}.privacy-line{display:flex;gap:8px;color:var(--ink-muted);font-size:12px;margin:13px 5px}.privacy-line>span:first-child{font-size:15px;line-height:1.4}.document-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.document-panel>.panel-heading{padding:21px 22px}.document-panel .eyebrow{font-size:12px;letter-spacing:1.3px}.document-panel h2{margin-top:6px;font-size:var(--type-h3)}.document-icon{font-size:27px;color:var(--brand)}.document-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 22px;gap:23px}.document-tabs button{border:0;border-bottom:2px solid transparent;padding:0 0 12px;background:transparent;color:var(--ink-muted);font-size:12px;font-weight:500}.document-tabs button[aria-selected=true]{color:var(--brand);border-color:var(--brand)}.document-content{padding:20px}.paper{background:var(--paper);color:var(--paper-ink);padding:25px 26px 17px;box-shadow:var(--shadow-paper);min-height:350px;display:flex;flex-direction:column;position:relative;border-radius:var(--radius-xs)}.paper-topline{display:flex;align-items:center;justify-content:space-between}.paper-topline>span{font-size:12px;font-weight:700;letter-spacing:1.4px;border:1px solid var(--paper-rule);color:var(--paper-muted);padding:5px}.paper-rule{height:1px;background:var(--paper-rule);margin:17px 0 24px}.paper h3{font-family:var(--font-display);font-size:var(--type-h2);letter-spacing:var(--type-h2-ls);font-weight:var(--weight-display);line-height:var(--type-h2-lh);max-width:280px}.paper-subtitle{font-size:12px;margin-top:9px;color:var(--paper-muted)}.paper pre{font-family:inherit;font-size:12px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;min-height:95px;color:var(--paper-muted);margin:20px 0}.paper-footer{display:flex;justify-content:space-between;border-top:1px solid var(--paper-rule);padding-top:11px;font-size:12px;color:var(--paper-muted);margin-top:auto}.digest-block{margin-top:14px;display:flex;flex-direction:column;gap:5px}.digest-block>.small{font-size:12px}.digest-block code{font-size:12px;color:var(--ink-muted);overflow-wrap:anywhere;line-height:1.8;letter-spacing:.5px}.verification-panel p{margin-top:13px;font-size:12px}.verification-panel .outline-badge{white-space:normal;text-align:center;font-size:12px}.connection-fingerprint{display:block;background:var(--surface-soft);border:1px solid var(--border);padding:12px;margin-top:12px;color:var(--brand);font-size:13px;text-align:center;letter-spacing:2px;overflow-wrap:anywhere}.ceremony-panel>.small{margin-top:10px;font-size:12px}.notary-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.notary-buttons .button{font-size:12px;padding:10px;min-height:43px}.official-signature{display:flex;gap:10px;margin-top:19px;padding-top:17px;border-top:1px solid var(--border);color:var(--ink-muted)}.official-signature>span{font-size:21px;color:var(--gold)}.official-signature strong{font-size:12px;font-weight:500}.official-signature p{font-size:12px;margin-top:3px}.event-list{list-style:none;margin:0;padding:15px 21px;max-height:430px;overflow-y:auto}.event-list li{padding:12px 0 12px 15px;border-left:1px solid var(--border);position:relative;font-size:12px}.event-list li:before{content:"";position:absolute;left:-3px;top:18px;width:5px;height:5px;background:var(--brand);border-radius:50%}.event-list time{display:block;color:var(--faint);font-size:12px;margin-top:3px}.evidence-note{padding:15px 20px 22px;font-size:12px;border-top:1px solid var(--border)}.signature-receipts{display:grid;gap:8px;margin:18px 0}.signature-receipt{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--brand);background:var(--surface-soft);padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm)}.page-footer{border-top:1px solid var(--border);padding:24px 4vw;display:flex;align-items:center;gap:15px;color:var(--faint);font-size:12px}.page-footer>span{color:var(--ink-muted)}.page-footer>a{margin-left:auto}.notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;width:480px;z-index:20;border:1px solid var(--brand);border-radius:var(--radius);padding:16px 21px;background:var(--surface-raised);box-shadow:var(--shadow);color:var(--ink);font-size:12px}.notice[data-kind=error]{border-color:var(--danger)}.camera-dialog{width:min(540px,92vw);background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow)}.camera-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(7px)}.camera-dialog video{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--bg);border-radius:var(--radius-sm);margin:15px 0;transform:scaleX(-1)}body:fullscreen{overflow:auto}html:fullscreen .topbar{height:65px}html:fullscreen .workspace{padding-top:18px}html:fullscreen .page-footer{display:none}@media(min-width:1450px){.workspace{padding-left:4vw;padding-right:4vw}.room-grid{grid-template-columns:minmax(0,1.55fr) minmax(390px,1fr)}.paper{min-height:385px;padding:30px 34px}.paper pre{font-size:12px}.video-stage{aspect-ratio:1.5}}@media(max-width:1050px){.welcome{column-gap:32px}.header-actions{gap:15px}.topbar{gap:15px}.product-label{gap:10px}.room-grid{gap:15px;grid-template-columns:minmax(0,1.2fr) minmax(310px,1fr)}.video-stage{aspect-ratio:1.1}.remote-placeholder{padding-left:45px;padding-right:45px}.remote-placeholder h2{font-size:var(--type-h3)}.banner-end{display:none}.progress-track{gap:8px}.progress-track li{gap:6px;font-size:12px}.progress-track li:after{margin-left:2px}.session-heading h1{font-size:var(--type-h2)}.document-content{padding:15px}.paper{padding:20px;min-height:335px}.media-toolbar{padding:10px}.media-controls{gap:5px}.control-button{padding:10px}.preflight-actions{flex-direction:column}.notary-buttons{grid-template-columns:1fr}.notary-buttons .button{min-height:44px}.principles{gap:25px}.workspace{padding:25px 3vw}}@media(max-width:760px){.topbar{height:70px;padding:0 20px;gap:13px}.brand{--lockup-tile:30px}.brand-sub{display:none}.product-label{gap:8px;font-size:12px}.divider{display:none}.header-actions{gap:13px}.back-link{display:none}.text-button{font-size:12px}.welcome{grid-template-columns:1fr;padding:32px 20px 40px;row-gap:32px}.welcome h1{max-width:500px}.hero-description{font-size:14px;max-width:440px}.hero-ctas{margin-top:25px}.beta-note{margin-top:22px}.experience-card{padding:22px;max-width:600px;width:100%}.experience-visual{height:190px}.principles{grid-template-columns:1fr;gap:24px;padding-top:27px}.principles p{max-width:470px}.session-heading{align-items:flex-start;margin-bottom:18px}.session-heading h1{font-size:var(--type-h2);max-width:260px}.session-heading .eyebrow{font-size:12px;letter-spacing:1px}.session-actions{flex-direction:column;gap:6px}.session-actions .button{font-size:12px;min-height:44px;padding:7px 10px}.rehearsal-banner{align-items:flex-start;gap:9px;padding:11px}.rehearsal-banner p{font-size:12px}.rehearsal-banner .beta-badge{font-size:12px;padding:5px}.workspace{padding:22px 16px}.progress-track{padding:21px 0;gap:8px}.progress-track li{flex-direction:column;gap:6px;position:relative;font-size:12px;flex:1;text-align:center}.progress-track li:last-child{flex:1}.progress-track li:after{position:absolute;left:calc(50% + 21px);top:12px;width:calc(100% - 25px)}.progress-track strong{white-space:normal;line-height:1.3;min-height:22px}.room-grid{grid-template-columns:1fr;gap:3px}.video-stage{aspect-ratio:1.3;min-height:295px}.remote-placeholder{padding:55px 55px 85px}.remote-placeholder h2{font-size:var(--type-h3)}.video-topline{top:17px;left:18px;right:18px}.remote-nameplate{left:14px;bottom:16px;font-size:12px;max-width:60%;flex-wrap:wrap;gap:5px}.local-preview{width:25%;right:14px;bottom:13px}.document-panel{margin-top:16px}.document-content{padding:20px}.paper{min-height:0;padding:25px}.paper pre{font-size:12px}.notary-buttons{grid-template-columns:1fr 1fr}.preflight-actions{flex-direction:row}.preflight-actions .button{font-size:12px;flex:1}.page-footer{padding:21px;font-size:12px;flex-wrap:wrap;gap:10px}.page-footer p{max-width:190px}.page-footer>a{font-size:12px}.privacy-line{font-size:12px}.verification-panel .outline-badge{white-space:nowrap}.status-panel p{font-size:12px}.product-label>span:not(.beta-badge){display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-width:380px){.hero-ctas{flex-direction:column}.welcome h1{font-size:var(--type-h1-compact)}.header-actions{gap:10px}.topbar{padding:0 15px}.experience-card-head .eyebrow{font-size:12px;letter-spacing:1px}.control-button{font-size:12px;padding:9px}.session-heading h1{font-size:var(--type-h2)}.session-actions .button{font-size:12px}.video-stage{min-height:290px}.remote-placeholder h2{font-size:var(--type-h3)}.notary-buttons{grid-template-columns:1fr}}

/* All supporting copy remains readable at narrow widths. Controls retain touch targets. */
button,a.button{min-height:44px}.text-button,.language-toggle .mini-seg-btn{min-width:44px;min-height:44px}.document-tabs button{min-height:44px}.product-label{flex-wrap:wrap}.experience-card-head{flex-wrap:wrap;row-gap:10px}.local-preview{min-width:130px}.progress-track{align-items:flex-start}.progress-track li{align-items:flex-start}.progress-track strong{white-space:normal}.progress-track li>span{flex-shrink:0}.paper pre{font-size:12px}.paper-topline{gap:12px}.paper-topline>span{font-size:12px}.paper-footer{gap:15px}.document-panel .eyebrow{font-size:12px}.eyebrow{line-height:1.7}.verification-panel .outline-badge{white-space:normal}.remote-placeholder{padding-bottom:150px}.video-stage{min-height:440px}.remote-placeholder h2{font-size:var(--type-h3)}.preflight-actions{flex-wrap:wrap}.hero-ctas .button{font-size:14px}.consent-line{font-size:12px}.session-actions .button{font-size:12px}.beta-badge{font-size:12px}.remote-nameplate{max-width:60%;flex-wrap:wrap}.remote-nameplate .outline-badge{font-size:12px}.floating-label{font-size:12px}.principles h2{font-size:var(--type-h4)}.principles p{font-size:13px}.connection-chip{font-size:12px}.session-heading .eyebrow{font-size:12px}.media-toolbar{gap:10px}.control-button{min-width:44px}.page-footer{font-size:12px}.topbar{height:auto;min-height:88px}.header-actions{gap:12px}
@media(max-width:1050px){.progress-track{gap:12px}.progress-track li{flex-direction:column;align-items:flex-start;gap:8px;font-size:12px;position:relative}.progress-track li:after{position:absolute;left:36px;right:0;top:12px}.progress-track li:last-child{flex:1}.remote-placeholder{padding-left:25px;padding-right:25px}.media-controls{flex-wrap:wrap}.video-stage{min-height:480px}.notary-buttons{grid-template-columns:1fr}.experience-card-head .eyebrow{font-size:12px}.experience-list p{font-size:12px}.hero-description{font-size:16px}}
@media(max-width:760px){.topbar{min-height:72px;gap:8px}.header-actions{gap:0}.product-label{font-size:12px}.session-heading{flex-wrap:wrap}.session-heading h1{max-width:none;font-size:var(--type-h2)}.session-actions{flex-direction:row;width:100%}.session-actions .button{flex:1}.progress-track{gap:8px}.progress-track li{font-size:12px;align-items:center;gap:7px}.progress-track li:after{left:calc(50% + 17px);width:calc(100% - 22px);right:auto}.progress-track strong{font-size:12px}.progress-track li>span{width:25px;height:25px;font-size:12px}.rehearsal-banner{flex-wrap:wrap}.rehearsal-banner p{font-size:12px}.rehearsal-banner .beta-badge{font-size:12px}.video-stage{min-height:415px;aspect-ratio:auto}.remote-placeholder{padding:75px 30px 145px}.remote-placeholder p{font-size:13px}.connection-chip{max-width:72%;text-align:left}.local-preview{min-width:115px}.local-name{font-size:12px}.local-placeholder{font-size:12px}.remote-nameplate{max-width:55%;font-size:12px;left:12px;bottom:18px}.remote-nameplate .outline-badge{font-size:12px}.media-toolbar{padding:10px;align-items:center}.media-controls{gap:7px;flex-wrap:nowrap}.control-button{flex-direction:column;gap:3px;padding:6px 9px;font-size:12px}.media-toolbar>.button{font-size:12px;min-width:62px}.preflight-actions{flex-direction:column}.preflight-actions .button{font-size:13px;flex:1}.notary-buttons{grid-template-columns:1fr}.notary-buttons .button{font-size:13px}.document-content{padding:15px}.paper{padding:20px;min-height:0}.paper pre{font-size:12px}.paper-subtitle,.paper-footer{font-size:12px}.digest-block>.small,.digest-block code{font-size:12px}.privacy-line{font-size:12px}.document-tabs button{font-size:13px}.ceremony-panel>.small{font-size:13px}.verification-panel p{font-size:12px}.page-footer{font-size:12px;gap:12px}.page-footer>a{font-size:12px;margin-left:0}.page-footer p{max-width:250px}.experience-card-head .eyebrow{font-size:12px}.experience-list strong{font-size:14px}.experience-list p{font-size:13px}.beta-note p{font-size:12px}.hero-description{font-size:16px}.header-actions .text-button{font-size:12px}.brand{--lockup-tile:26px}.product-label .beta-badge{font-size:12px}.welcome{padding-left:20px;padding-right:20px}}
@media(max-width:380px){.topbar{padding:0 12px}.header-actions .text-button{max-width:50px;line-height:1.25}.topbar .brand-word{display:none}.welcome h1{font-size:var(--type-h1-compact)}.experience-card{padding:19px}.session-heading h1{font-size:var(--type-h2)}.media-toolbar{gap:7px;padding:8px}.control-button{font-size:12px;padding:7px 8px}.media-controls{gap:5px}.remote-nameplate{max-width:49%;font-size:12px}.paper{padding:18px}.paper-topline>span{font-size:12px;letter-spacing:.5px}}

@media(max-width:760px){.progress-track strong{font-size:12px;overflow-wrap:normal}.progress-track{column-gap:5px}.progress-track li{font-size:12px}.topbar{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.header-actions{margin-left:auto}.hero-ctas a{width:auto}.document-tabs{gap:20px}.experience-card-head .outline-badge{font-size:12px}.floating-label-one{left:3%}.floating-label-two{right:3%}}

/* Keep the human conversation visible while participants read and sign. */
.video-column{align-self:stretch}.conference-surface{position:sticky;top:16px;z-index:4;border-radius:var(--radius-lg);box-shadow:var(--shadow-sticky);background:var(--surface)}.skip-link{transform:translateY(-150%);top:0}.skip-link:focus{transform:none;top:12px}.network-notice{margin-top:14px}
@media(max-width:760px){.room-grid{display:block}.video-column{display:contents}.conference-surface{position:relative;top:auto}.entered .conference-surface{position:sticky;top:0;border-radius:0 0 var(--radius-lg) var(--radius-lg);margin-left:-5px;margin-right:-5px}.entered .video-stage{min-height:200px;height:29svh;max-height:245px;border-radius:0;aspect-ratio:auto}.entered .video-topline{top:10px;left:13px;right:13px}.entered .video-brand{font-size:20px}.entered .connection-chip{font-size:12px;padding:4px 7px}.entered .local-preview{width:85px;min-width:85px;right:10px;bottom:10px;max-height:76px}.entered .local-name{font-size:12px}.entered .local-placeholder{font-size:12px;gap:1px}.entered .local-placeholder>span:first-child{font-size:17px}.entered .remote-nameplate{left:10px;bottom:10px;max-width:65%;font-size:12px;padding:5px 8px}.entered .remote-nameplate .outline-badge{display:none}.entered .remote-placeholder{padding:50px 35px 70px}.entered .presence-glyph{display:none}.entered .remote-placeholder h2{font-size:var(--type-h4)}.entered .remote-placeholder p{font-size:12px;line-height:1.5;margin-top:6px;max-width:270px}.entered .media-toolbar{padding:7px 10px}.entered .control-button{flex-direction:row;font-size:12px;min-height:44px;gap:5px;padding:7px}.entered .control-icon{font-size:15px}.entered .media-controls{gap:5px}.entered .media-toolbar>.button{font-size:12px}.entered .ceremony-column{position:relative;z-index:1}.entered .status-panel{margin-top:18px}}
@media(max-width:380px){.entered .control-button{flex-direction:column;gap:0;min-width:44px;padding:4px}.entered .media-toolbar{padding:6px 8px}.entered .video-stage{height:27svh;min-height:190px}.entered .remote-placeholder{padding-right:25px;padding-left:25px}.entered .remote-nameplate{max-width:62%}}
/* Clip, rather than merely offset, the unfocused skip link. This also avoids
   off-viewport fixed content appearing in full-document screenshots. */
.skip-link{clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.skip-link:focus{clip-path:none;width:auto;height:auto;overflow:visible}

/* Brand alignment: the signing room shares Nota's blue-teal system. The
   signal uses the light blue brand accent so the mark is recognizable without
   a black ring or an accidental green cast. Keep these tokens local: signature.css
   is a standalone entry point and cannot inherit the marketplace stylesheet.

   The RAMP below is the ADR 0048 ramp, copied step for step from
   apps/web/public/styles.css. Copied, because this file cannot import it — but
   copied under the SAME names, so every brand step in this room is greppable
   as `--nota-blue-*` exactly like the carnet and the console, and no brand
   value is retyped as a bare hex in a role below. */
:root {
  color-scheme: dark;
  --nota-blue-50: #ebf1f5;
  --nota-blue-100: #e5eef3;
  --nota-blue-200: #c8dbe3;
  --nota-blue-300: #a7c1cd;
  --nota-blue-400: #78a9bf;
  --nota-blue-500: #407598;
  --on-accent: #ffffff; /* text on the signal colour (the QUÉBEC badge) — white in both rooms */
  --nota-blue-600: #386888;
  --nota-blue-700: #386888;
  --nota-blue-800: #274a62;
  --nota-blue-900: #264961;
  --nota-blue-950: #101b26;
  /* Channel-only copies — rgb() cannot take a hex var. */
  --nota-blue-500-rgb: 64 117 152;
  --nota-blue-700-rgb: 56 104 136;
  --nota-blue-950-rgb: 16 27 38;

  --bg: var(--nota-blue-950);
  --surface: #0f2030;
  --surface-raised: #132b3f;
  --surface-soft: #19384d;
  --ink: #f4f8fa;
  --ink-muted: #afc2cf;
  --faint: var(--nota-blue-400);
  --border: #294353;
  --border-strong: #3f5f70;
  --brand: var(--nota-blue-400);
  --brand-bright: var(--nota-blue-300);
  --brand-solid: var(--nota-blue-500);
  --brand-ink: #061c2a;
  --paper: #fffef8;
  --paper-ink: #173b52;
  --danger: #f97066;
  --danger-bg: #3b2329;
  --gold: var(--brand-bright);
  --signal: var(--brand-bright);
  --video-bg: var(--nota-blue-950);
  --video-surface: #0f2030;
  --video-surface-soft: #132b3f;
  --video-ink: var(--nota-blue-100);
  --video-muted: #afc2cf;
  --video-signal: var(--nota-blue-400);
  --video-glow: rgb(var(--nota-blue-700-rgb) / .31);
  --video-wash: rgb(19 43 63 / .53);
  --chip-bg: rgb(var(--nota-blue-950-rgb) / .85);
  --overlay: rgb(6 28 42 / .8);
  --glow: rgb(var(--nota-blue-500-rgb) / .12);
  --paper-rule: #c5d8df;
  --paper-muted: #526b78;
  --shadow: 0 24px 80px rgb(0 0 0 / .25);
  --shadow-sm: 0 5px 20px rgb(0 0 0 / .25);
  --shadow-paper: 0 4px 20px rgb(0 0 0 / .06);
  --shadow-sticky: 0 12px 28px rgb(0 0 0 / .19);
  --shadow-hover: 0 5px 14px rgb(0 0 0 / .25);
  --shadow-hover-lg: 0 8px 24px rgb(0 0 0 / .3);
}

html[data-theme=light] {
  color-scheme: light;
  --subtitle-ink: #000000;
  --bg: #eef5f7;
  --surface: #fbfdfd;
  --surface-raised: #ffffff;
  --surface-soft: #e6f0f4;
  --ink: #173b52;
  --ink-muted: #526b78;
  --faint: #607986;
  --border: #c5d8df;
  --border-strong: #a9c3ce;
  --brand: var(--nota-blue-600);
  --brand-solid: var(--nota-blue-600);
  --brand-bright: var(--nota-blue-500);
  --brand-ink: #ffffff;
  --paper: #fffef8;
  --paper-ink: #173b52;
  --danger: #b42318;
  --danger-bg: #ffe4e1;
  --gold: var(--brand-bright);
  --signal: var(--brand-bright);
  /* The video chrome stays a dark room in BOTH themes, so it is the midnight
     canvas — the same one the dark theme's --bg is. It used to be #101820
     here and #101b26 above: one role, two midnights on one surface. */
  --video-bg: var(--nota-blue-950);
  --video-surface: #0f2030;
  --video-surface-soft: #132b3f;
  --video-ink: var(--nota-blue-100);
  --video-muted: #afc2cf;
  --video-signal: var(--nota-blue-300);
  --video-glow: rgb(var(--nota-blue-700-rgb) / .31);
  --video-wash: rgb(19 43 63 / .53);
  --chip-bg: rgb(var(--nota-blue-950-rgb) / .85);
  --overlay: rgb(6 28 42 / .8);
  --glow: rgb(var(--nota-blue-500-rgb) / .12);
  --paper-rule: #c5d8df;
  --paper-muted: #526b78;
  --shadow: 0 24px 80px rgb(23 59 82 / .04);
  --shadow-sm: 0 5px 20px rgb(23 59 82 / .12);
  --shadow-paper: 0 4px 20px rgb(23 59 82 / .06);
  --shadow-sticky: 0 12px 28px rgb(23 59 82 / .12);
  --shadow-hover: 0 5px 14px rgb(23 59 82 / .10);
  --shadow-hover-lg: 0 8px 24px rgb(23 59 82 / .08);
}

/* The lockup (exploration 01 « Monogramme lié ») is the carnet's: signature.html
   inlines index.html's #nota-logomark / #nota-wordmark once in the hidden
   .svg-defs, and every mark on this surface is a <use>. The word is
   fill:currentColor, so the header carries it in brand blue and the in-stage,
   on-paper and footer marks take the ink of the line they sit on. Sizes keep
   the boxes the typeset « nota. » occupied (35 / 30 / 26 px in the header,
   25 px on stage and paper, 24 px in the footer); the phone bands live in the
   minified media rules above. */
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
/* Lockup geometry — the same five custom properties, with the same ratios, as
   styles.css and admin.css (ADR 0048, design 02 / layout 16); each root sets
   its tile and the word, gaps and badge follow. ux-nav.test.mjs pins the five. */
.brand, .video-brand, .paper-brand, .footer-brand {
  --lockup-tile: 33px;
  --lockup-word: calc(var(--lockup-tile) * .48);
  --lockup-gap: calc(var(--lockup-tile) * .12);
  --lockup-badge-gap: calc(var(--lockup-tile) * .16);
  --lockup-badge-size: max(9px, calc(var(--lockup-tile) * .16)); /* .16 of the tile, never under 9px: a 30px header tile gave 4.8px caps */
}
.video-brand, .paper-brand { --lockup-tile: 25px; }
.footer-brand { --lockup-tile: 24px; }
.brand-lockup,
.video-brand,
.paper-brand,
.footer-brand { display: inline-flex; align-items: center; gap: var(--lockup-gap); line-height: 1; }
.brand-lockup { color: var(--brand); }
.brand-mark-svg { display: block; flex: none; width: var(--lockup-tile); height: var(--lockup-tile); }
.brand-word { display: inline-flex; align-items: center; width: calc(var(--lockup-word) * 91.8 / 28); height: var(--lockup-word); }
.brand-word-svg { display: block; width: 100%; height: 100%; overflow: visible; }
.brand-sub { color: var(--on-accent); font-weight: 800; font-size: var(--lockup-badge-size); text-transform: uppercase; letter-spacing: .1em; padding: .55em .7em; background: var(--nota-blue-500); border-radius: var(--radius-xs); }
.official-signature > span { color: var(--signal); }
.signal-dot { background: var(--brand); }
/* Aucun aplat sur un bouton (propriétaire, 2026-09-12) : la marque et la
   graisse portent l’action, le contour la cadre. */
.primary { background: transparent; color: var(--brand); border-color: var(--brand); font-weight: 700; }
.button:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible { outline-color: var(--brand); }

/* The component rules on line 1 (the minified sheet) read the tokens above
   directly — media surfaces on --video-*, the document on --paper-*, plates and
   veils on --chip-bg / --overlay. No colour literal lives outside the two token
   blocks; keep it that way (brand inventory, 2026-09-11). */

/* Quiet motion for the autonomous signing room. Keep movement short and
   purposeful so the interface feels responsive without competing with the
   document or the conversation. */
button.button,
a.button,
.control-button,
.back-link,
.text-button,
.language-toggle,
.document-tabs button {
  transition:
    transform 180ms cubic-bezier(.2, .8, .2, 1),
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease,
    filter 180ms ease;
}

:where(.button, .control-button, .back-link):hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: var(--shadow-hover);
}

:where(.button, .control-button, .back-link):active:not(:disabled) {
  transform: translateY(0);
  box-shadow: none;
}

:where(.experience-card, .document-panel, .status-panel, .preflight-panel,
  .verification-panel, .ceremony-panel, .rehearsal-banner, .paper) {
  transition:
    transform 220ms cubic-bezier(.2, .8, .2, 1),
    border-color 220ms ease,
    box-shadow 220ms ease,
    background-color 220ms ease;
}

:where(.experience-card, .document-panel, .status-panel, .preflight-panel,
  .verification-panel, .ceremony-panel):hover {
  border-color: var(--border-strong, var(--border));
  box-shadow: var(--shadow-hover-lg);
}

.document-tabs button[aria-selected=true],
.progress-track li,
.progress-track li > span,
.connection-chip,
.check-indicator,
.remote-nameplate,
.local-placeholder,
.status-panel-icon {
  transition:
    color 220ms ease,
    background-color 220ms ease,
    border-color 220ms ease,
    opacity 220ms ease,
    transform 220ms cubic-bezier(.2, .8, .2, 1);
}

@keyframes signature-page-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes signature-hero-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes signature-state-in {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

#main > .welcome {
  animation: signature-page-in 420ms cubic-bezier(.2, .8, .2, 1) both;
}

.welcome-copy {
  min-width: 0;
  animation: signature-hero-in 460ms cubic-bezier(.2, .8, .2, 1) 40ms both;
}

/* Match the entry page's reading width before two columns become cramped. */
@media (max-width: 980px) {
  .welcome { grid-template-columns: minmax(0, 1fr); }
  .welcome-copy, .experience-card { width: 100%; max-width: 600px; justify-self: center; }
}

@media (max-width: 760px) {
  .header-actions { gap: 8px; }
  .header-actions #theme-toggle { max-width: 72px; padding-inline: 4px; line-height: 1.25; }
  .language-toggle.mini-seg { height: 44px; flex-shrink: 0; }
}

@media (max-width: 480px) {
  .hero-ctas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

.experience-card {
  animation: signature-hero-in 500ms cubic-bezier(.2, .8, .2, 1) 90ms both;
}

#main > .workspace:not([hidden]) {
  animation: signature-page-in 320ms cubic-bezier(.2, .8, .2, 1) both;
}

:where(#remote-nameplate, #verification-panel, #reconnect-button,
  #notary-controls, #signing-controls, #signature-receipts, #receipt-button):not([hidden]) {
  animation: signature-state-in 220ms ease-out both;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }

  :where(.button, .control-button, .back-link):hover:not(:disabled),
  :where(.button, .control-button, .back-link):active:not(:disabled),
  :where(.experience-card, .document-panel, .status-panel, .preflight-panel,
    .verification-panel, .ceremony-panel):hover {
    transform: none !important;
  }
}

/* Nota production type scale: the beta keeps the same hierarchy without
   oversized display text on laptop and mobile screens. */
h2 { line-height: var(--type-h2-lh); }

/* Touch: the wordmark link and the language toggle reach 44px on a coarse pointer (2026-09-11 audit: 53×36 and 36×44). */
@media (pointer: coarse) {
  .brand, .language-toggle, .text-button { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
}

/* Keep the only footer action reachable on touch screens while preserving the
   compact signature-room rhythm. */
.page-footer > a { min-height: 44px; display: inline-flex; align-items: center; }
