/* annualconference2026registrations.com - site stylesheet
   Design system "Card index": midnight teal night, ivory card stock, copper
   metal. Everything is served from this domain; fonts are SIL OFL files in
   assets/fonts. No inline styles are needed, so the Content Security Policy
   can stay strict. */

/* ------------------------------------------------------------ 1. Fonts */
@font-face{font-family:"Gloock";src:url("../fonts/gloock-regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Work Sans";src:url("../fonts/worksans-regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Work Sans";src:url("../fonts/worksans-italic.woff") format("woff");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Work Sans";src:url("../fonts/worksans-bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}

/* ------------------------------------------------------------ 2. Tokens */
:root{
  /* night surfaces */
  --n0:#070C0E; --n1:#0C1417; --n2:#111C20; --n3:#182629; --n4:#22343A;
  /* ivory text */
  --i1:#EFE8DD; --i2:#CBC4B8; --i3:#9EA39C;
  /* copper metal */
  --cu:#D0946A; --cu-hi:#EDC39E; --cu-lo:#8C5B3E; --cu-ink:#7A4B30;
  /* card stock */
  --stock:#ECE4D6; --stock-2:#DDD3C1; --stock-ink:#1A2427; --stock-mute:#4A5557; --stock-rule:rgba(58,92,98,.16);
  /* tab colours */
  --tab-cu:#D0946A; --tab-sage:#B9CDCD; --tab-ivory:#F4EEE3;
  /* lines */
  --ln:rgba(239,232,221,.12); --ln-2:rgba(239,232,221,.22); --ln-cu:rgba(208,148,106,.5);

  --f-display:"Gloock","Bodoni 72","Didot","Libre Bodoni",Georgia,"Times New Roman",serif;
  --f-text:"Work Sans","Segoe UI","Helvetica Neue",Arial,sans-serif;

  --frame:1240px; --measure:66ch; --gut:clamp(20px,5vw,72px);
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:72px; --sp-9:104px; --sp-10:144px;
  --band:clamp(72px,10vw,144px);
  --head-h:78px;

  --lift-1:0 1px 0 rgba(255,255,255,.04) inset,0 14px 34px -14px rgba(0,0,0,.65);
  --lift-2:0 34px 70px -26px rgba(0,0,0,.78),0 10px 22px -10px rgba(0,0,0,.5);
  --lift-card:0 1px 0 rgba(255,255,255,.55) inset,0 44px 80px -34px rgba(0,0,0,.8),0 14px 26px -12px rgba(0,0,0,.55);

  --ease-glide:cubic-bezier(.22,.9,.25,1); --ease-hinge:cubic-bezier(.55,0,.25,1);
  --t-quick:.22s; --t-base:.5s; --t-slow:.9s;
  --r-card:3px; --r-ctl:3px;
}

/* ------------------------------------------------------------ 3. Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--n1);scroll-padding-top:calc(var(--head-h) + 16px)}
body{margin:0;background:var(--n1);color:var(--i1);font-family:var(--f-text);font-size:1.0625rem;line-height:1.66;font-feature-settings:"kern","liga","lnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;min-height:100vh}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;background:url("../images/grain.png") repeat;opacity:.07}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
p,li,dd,dt,td,th,figcaption,label,summary{overflow-wrap:break-word}
p a,li a,dd a,.inline-link{color:var(--cu-hi);text-decoration:underline;text-decoration-color:var(--ln-cu)}
p a:hover,li a:hover,dd a:hover,.inline-link:hover{text-decoration-color:currentColor}
h1,h2,h3,h4{margin:0;font-weight:400;overflow-wrap:break-word}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
strong{font-weight:700}
::selection{background:var(--cu);color:var(--n1)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--cu-hi);outline-offset:3px;border-radius:2px}
button{font:inherit;color:inherit}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip{position:absolute;left:var(--sp-4);top:-80px;z-index:200;background:var(--cu);color:var(--n1);padding:var(--sp-3) var(--sp-5);font-weight:700;text-decoration:none;border-radius:var(--r-ctl);transition:top var(--t-quick)}
.skip:focus{top:var(--sp-4)}

/* ------------------------------------------------------------ 4. Type */
.display{font-family:var(--f-display);font-size:clamp(2.45rem,1.5rem + 3.7vw,4.6rem);line-height:1.04;letter-spacing:-.012em}
.h-section{font-family:var(--f-display);font-size:clamp(1.9rem,1.3rem + 2.1vw,3.05rem);line-height:1.1;letter-spacing:-.008em}
.h-sub{font-family:var(--f-display);font-size:clamp(1.35rem,1.15rem + .7vw,1.7rem);line-height:1.2}
.h-small{font-family:var(--f-text);font-weight:700;font-size:1.0625rem;line-height:1.35;letter-spacing:.005em}
.standfirst{font-size:clamp(1.12rem,1rem + .45vw,1.3rem);line-height:1.6;color:var(--i2);max-width:58ch}
.muted{color:var(--i3)}
.small{font-size:.875rem;line-height:1.55}
.tabmark{display:inline-flex;align-items:center;gap:10px;font-size:.84rem;letter-spacing:.02em;color:var(--cu);margin:0 0 var(--sp-5)}
.tabmark::before{content:"";width:16px;height:9px;border-radius:3px 3px 0 0;background:currentColor;box-shadow:0 1px 0 0 currentColor}
.prose{max-width:var(--measure)}
.prose p,.prose li{color:var(--i2)}
.prose h2{font-family:var(--f-display);font-size:clamp(1.5rem,1.25rem + .9vw,1.95rem);line-height:1.2;color:var(--i1);margin:var(--sp-8) 0 var(--sp-4)}
.prose h2:first-child{margin-top:0}
.prose h3{font-weight:700;font-size:1.0625rem;color:var(--i1);margin:var(--sp-6) 0 var(--sp-2)}
.prose ul{padding-left:1.2em;margin:0 0 1em}
.prose li{margin:0 0 .45em}
.prose li::marker{color:var(--cu)}

/* ------------------------------------------------------------ 5. Layout */
.frame{width:100%;max-width:calc(var(--frame) + 2 * var(--gut));margin:0 auto;padding:0 var(--gut)}
.band{padding:var(--band) 0;position:relative}
.band--tight{padding:calc(var(--band) * .6) 0}
.band--rule{border-top:1px solid var(--ln)}
.band--raised{background:linear-gradient(180deg,var(--n2),var(--n1))}
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-6) var(--sp-6);align-items:start}
.split__a{grid-column:1 / span 5}
.split__b{grid-column:7 / span 6}
.split__wide{grid-column:1 / span 7}
.split__narrow{grid-column:9 / span 4}
.stack>*+*{margin-top:var(--sp-5)}
main{display:block;position:relative;z-index:1}

/* ------------------------------------------------------------ 6. Buttons */
.act{--bg:transparent;--fg:var(--i1);--bd:var(--ln-2);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:1px solid var(--bd);background:var(--bg);color:var(--fg);font-family:var(--f-text);font-weight:700;font-size:.97rem;letter-spacing:.01em;text-decoration:none;border-radius:var(--r-ctl);cursor:pointer;overflow:hidden;isolation:isolate;transition:background-color var(--t-quick),color var(--t-quick),border-color var(--t-quick),transform var(--t-quick) var(--ease-glide)}
.act::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease-glide)}
.act:hover::after{transform:translateX(120%)}
.act:active{transform:translateY(1px)}
.act--solid{--bg:var(--cu);--fg:var(--n1);--bd:var(--cu)}
.act--solid:hover{--bg:var(--cu-hi);--bd:var(--cu-hi)}
.act--line:hover{--bd:var(--cu);--fg:var(--cu-hi)}
.act--ink{--bg:var(--stock-ink);--fg:var(--stock);--bd:var(--stock-ink)}
.act--ink:hover{--bg:#27373B}
.act--inkline{--fg:var(--stock-ink);--bd:rgba(26,36,39,.45)}
.act--inkline:hover{--bd:var(--stock-ink)}
.act--small{min-height:44px;padding:0 18px;font-size:.9rem}
.act-row{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.textlink{display:inline-flex;align-items:center;gap:8px;color:var(--cu-hi);font-weight:700;text-decoration:none;border-bottom:1px solid var(--ln-cu);padding:4px 0}
.textlink:hover{border-bottom-color:var(--cu-hi)}
.linklike{background:none;border:0;padding:0;color:var(--i2);text-decoration:underline;text-decoration-color:var(--ln-2);text-underline-offset:.22em;cursor:pointer;font-size:inherit}
.linklike:hover{color:var(--i1)}
.act:focus-visible,.textlink:focus-visible{outline-offset:4px}

/* ------------------------------------------------------------ 7. Masthead */
.masthead{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--head-h);transition:background-color var(--t-base),box-shadow var(--t-base),height var(--t-base) var(--ease-glide)}
.masthead::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,12,14,.86),rgba(7,12,14,0));pointer-events:none;transition:opacity var(--t-base)}
.masthead.is-pinned{background:rgba(12,20,23,.9);box-shadow:0 1px 0 var(--ln);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.masthead.is-pinned::before{opacity:0}
.masthead__inner{position:relative;height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--i1);min-height:44px;flex:0 0 auto}
.brand__mark{width:38px;height:38px;flex:0 0 auto}
.brand__name{display:flex;flex-direction:column;line-height:1}
.brand__l1{font-family:var(--f-display);font-size:1.12rem;letter-spacing:.004em}
.brand__l2{font-size:.72rem;letter-spacing:.14em;color:var(--cu);margin-top:5px}
.tabs__list{list-style:none;display:flex;align-items:flex-end;gap:2px;height:var(--head-h)}
.tabs__list>li{display:flex;align-items:flex-end;height:100%}
.tabs__link{position:relative;display:flex;align-items:center;height:48px;padding:0 18px;margin-bottom:15px;color:var(--i2);font-size:.95rem;text-decoration:none;transition:color var(--t-quick)}
.tabs__link::before{content:"";position:absolute;left:4px;right:4px;top:4px;bottom:-15px;z-index:-1;border-radius:6px 6px 0 0;background:var(--n3);box-shadow:inset 0 1px 0 var(--ln-2);transform:perspective(60px) rotateX(10deg) translateY(10px);transform-origin:bottom;opacity:0;transition:opacity var(--t-quick),transform var(--t-base) var(--ease-glide)}
.tabs__link:hover{color:var(--i1)}
.tabs__link:hover::before{opacity:.55;transform:perspective(60px) rotateX(10deg) translateY(5px)}
.tabs__link[aria-current="page"]{color:var(--i1)}
.tabs__link[aria-current="page"]::before{opacity:1;transform:perspective(60px) rotateX(10deg) translateY(0);box-shadow:inset 0 1px 0 var(--ln-2),inset 0 3px 0 -1px var(--cu)}
.masthead.is-pinned .tabs__link[aria-current="page"]::before{background:var(--n4)}
.tabs__cta{align-items:center!important;padding-left:var(--sp-4)}
.menu-btn{display:none}

/* ------------------------------------------------------------ 8. Card deck (home hero) */
.deck{position:relative;padding:calc(var(--head-h) + var(--sp-7)) 0 var(--sp-8)}
.deck__stage{position:relative}
.deck__scene{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);width:100%;max-width:calc(var(--frame) + 2 * var(--gut));margin:0 auto;padding:0 var(--gut)}
.deck__drawer,.deck__rail,.deck__hint{display:none}
.icard{position:relative;background:var(--stock);color:var(--stock-ink);border-radius:var(--r-card);box-shadow:var(--lift-card);margin-top:26px;background-image:linear-gradient(180deg,transparent 0,transparent var(--rule,66px),var(--cu-lo) var(--rule,66px),var(--cu-lo) calc(var(--rule,66px) + 2px),transparent calc(var(--rule,66px) + 2px)),repeating-linear-gradient(180deg,transparent 0,transparent 33px,var(--stock-rule) 33px,var(--stock-rule) 34px)}
.icard--lead{grid-column:1 / -1}
.icard__tab{position:absolute;top:-26px;left:var(--tab-x,8%);height:30px;padding:0 16px;display:flex;align-items:center;border-radius:7px 7px 0 0;background:var(--tab-bg,var(--tab-cu));color:var(--stock-ink);font-size:.82rem;font-weight:700;letter-spacing:.015em;white-space:nowrap}
.icard[data-card="1"]{--tab-x:30%;--tab-bg:var(--tab-sage)}
.icard[data-card="2"]{--tab-x:52%;--tab-bg:var(--tab-ivory)}
.icard[data-card="3"]{--tab-x:70%;--tab-bg:var(--tab-cu)}
.icard__body{padding:clamp(28px,4vw,56px)}
.icard__kicker{font-size:.86rem;letter-spacing:.02em;color:var(--cu-ink);margin:0 0 var(--sp-4);font-weight:700}
.icard h1{font-family:var(--f-display);font-size:clamp(2.05rem,1.2rem + 2.7vw,3.7rem);line-height:1.04;letter-spacing:-.012em;max-width:17ch;margin:0 0 var(--sp-5)}
.icard h2{font-family:var(--f-display);font-size:clamp(1.5rem,1.1rem + 1.2vw,2.15rem);line-height:1.12;margin:0 0 var(--sp-3)}
.icard__lede{font-size:clamp(1.02rem,.95rem + .3vw,1.16rem);line-height:1.6;color:#2E3A3D;max-width:54ch}
.icard p{color:#2E3A3D}
.icard .act-row{margin:var(--sp-5) 0 var(--sp-5)}
.icard__note{font-size:.86rem;line-height:1.5;color:var(--stock-mute);margin:0;max-width:60ch;padding-top:var(--sp-4);border-top:1px solid rgba(26,36,39,.14)}
.icard__print{margin:0;border-radius:2px;overflow:hidden;box-shadow:0 10px 22px -10px rgba(0,0,0,.5);background:var(--n2)}
.icard__print img{width:100%;aspect-ratio:3/2;object-fit:cover}
.icard--chapter .icard__body{padding:clamp(20px,2.6vw,32px)}
.icard--chapter .icard__print{margin:clamp(20px,2.6vw,32px) clamp(20px,2.6vw,32px) 0}
.icard__step{font-size:.8rem;font-weight:700;color:var(--cu-ink);margin:0 0 var(--sp-2);letter-spacing:.02em}

/* flat layout decoration (no script, reduced motion, short screens) */
.deck:not(.is-3d) .icard[data-card="1"]{transform:rotate(-.6deg)}
.deck:not(.is-3d) .icard[data-card="3"]{transform:rotate(.5deg)}

/* 3D mode, switched on by script only when motion is allowed */
.deck.is-3d{padding:0;height:calc(100vh + var(--deck-run,300vh))}
.deck.is-3d .deck__stage{position:sticky;top:0;height:100vh;overflow:hidden;perspective:1500px;perspective-origin:50% 26%}
.deck.is-3d .deck__stage::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 55% at 50% 30%,rgba(208,148,106,.2),transparent 70%),radial-gradient(120% 90% at 50% 110%,rgba(7,12,14,.9),transparent 60%);pointer-events:none}
.deck.is-3d .deck__scene{position:absolute;inset:0;display:block;max-width:none;padding:0;transform-style:preserve-3d;will-change:transform}
.deck.is-3d .icard{position:absolute;left:50%;top:calc(50% + var(--head-h) * .42);width:var(--card-w,min(880px,86vw));height:var(--card-h,560px);margin:0;transform-origin:50% 100%;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity}
.deck.is-3d .icard::after{content:"";position:absolute;inset:-30px 0 0 0;border-radius:var(--r-card);background:var(--n1);opacity:var(--shade,0);pointer-events:none}
.deck.is-3d .icard--chapter{display:grid;grid-template-columns:1.05fr 1fr;align-items:center}
.deck.is-3d .icard--chapter .icard__print{margin:0 0 0 clamp(20px,2.6vw,36px);align-self:center}
.deck.is-3d .icard--spare{display:block}
.icard--spare{display:none}
.deck.is-3d .deck__drawer{display:block;position:absolute;left:50%;top:calc(50% + var(--head-h) * .42 + var(--card-h,560px) / 2);width:0;height:0;transform-style:preserve-3d;pointer-events:none}
/* The drawer sides and floor are drawn flat behind the cards (.deck__cabinet), so they can never
   be sorted in front of a card; only the drawer front (.drawer__lip) moves in 3D. */
.deck__cabinet{display:none}
.deck.is-3d .deck__cabinet{display:block;position:absolute;inset:0;pointer-events:none;--cy:calc(50% + var(--head-h) * .42);--cb:calc(var(--cy) + var(--card-h,560px) / 2);--cl:calc(50% - var(--card-w,880px) / 2 - 34px);--cr:calc(50% + var(--card-w,880px) / 2 + 34px)}
.cab{position:absolute;inset:0}
.cab--l{background:linear-gradient(90deg,rgba(32,50,55,.96),rgba(21,34,38,.82) 55%,rgba(14,23,26,.55));clip-path:polygon(0 2%,var(--cl) calc(var(--cy) - var(--card-h,560px) * .34),var(--cl) var(--cb),0 100%)}
.cab--r{background:linear-gradient(270deg,rgba(32,50,55,.96),rgba(21,34,38,.82) 55%,rgba(14,23,26,.55));clip-path:polygon(100% 2%,var(--cr) calc(var(--cy) - var(--card-h,560px) * .34),var(--cr) var(--cb),100% 100%)}
.cab--l::after,.cab--r::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 47px,rgba(239,232,221,.035) 47px 48px)}
.cab--floor{background:linear-gradient(180deg,rgba(27,44,49,.92),rgba(10,17,20,.98));clip-path:polygon(var(--cl) var(--cb),var(--cr) var(--cb),100% 100%,0 100%)}
.drawer__lip{position:absolute;left:calc(var(--card-w,880px) / -2 - 52px);top:-14px;width:calc(var(--card-w,880px) + 104px);height:calc(var(--card-h,560px) * .3);background:linear-gradient(180deg,#1B2C31,#0E181B);border-top:1px solid rgba(208,148,106,.45);box-shadow:0 -20px 40px -10px rgba(0,0,0,.6);transform:translateZ(80px)}
.drawer__lip::after{content:"";position:absolute;left:50%;top:30%;width:110px;height:22px;margin-left:-55px;border-radius:0 0 12px 12px;border:2px solid rgba(208,148,106,.7);border-top:0}
.deck.is-3d .deck__rail{display:flex;position:absolute;right:var(--gut);top:50%;transform:translateY(-50%);flex-direction:column;gap:6px;z-index:5;list-style:none}
.deck__rail button{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:44px;min-width:44px;padding:0 4px;background:none;border:0;color:var(--i3);cursor:pointer;font-size:.8rem}
.deck__rail button span.lbl{opacity:0;transform:translateX(6px);transition:opacity var(--t-quick),transform var(--t-quick)}
.deck__rail button:hover span.lbl,.deck__rail button:focus-visible span.lbl,.deck__rail button[aria-current="true"] span.lbl{opacity:1;transform:none}
.deck__rail button span.tick{width:22px;height:2px;background:var(--ln-2);transition:width var(--t-base) var(--ease-glide),background-color var(--t-base)}
.deck__rail button[aria-current="true"]{color:var(--i1)}
.deck__rail button[aria-current="true"] span.tick{width:40px;background:var(--cu)}
.deck.is-3d .deck__hint{display:flex;position:absolute;left:var(--gut);bottom:var(--sp-6);z-index:5;align-items:center;gap:var(--sp-4);font-size:.84rem;color:var(--i3)}
.deck__hint a{color:var(--i2)}
.deck__hint .scrollcue{width:1px;height:38px;background:linear-gradient(180deg,var(--cu),transparent);transform-origin:top;animation:cue 2.4s var(--ease-hinge) infinite}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* ------------------------------------------------------------ 9. Home sections */
.rules{list-style:none;border-top:1px solid var(--ln)}
.rules li{display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--ln)}
.rules h3{font-family:var(--f-display);font-size:1.3rem;line-height:1.25;color:var(--i1)}
.rules p{margin:0;color:var(--i2)}
.overview__lead{font-family:var(--f-display);font-size:clamp(1.9rem,1.3rem + 2.1vw,3.05rem);line-height:1.12;max-width:16ch}

.audience{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-6);align-items:center}
.audience__print{grid-column:1 / span 5}
.audience__text{grid-column:7 / span 6}
.who{list-style:none;margin-top:var(--sp-6)}
.who li{position:relative;padding:var(--sp-4) 0 var(--sp-4) 34px;border-top:1px solid var(--ln);color:var(--i1)}
.who li:last-child{border-bottom:1px solid var(--ln)}
.who li::before{content:"";position:absolute;left:0;top:calc(var(--sp-4) + .5em);width:16px;height:9px;border-radius:3px 3px 0 0;background:var(--cu);opacity:.85}

.svc-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-8);margin-top:var(--sp-7);counter-reset:none}
.svc-index a{position:relative;display:block;padding:var(--sp-5) var(--sp-6) var(--sp-5) 0;border-top:1px solid var(--ln);text-decoration:none;color:var(--i1)}
.svc-index a::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--cu);transition:width var(--t-base) var(--ease-glide)}
.svc-index a:hover::before,.svc-index a:focus-visible::before{width:64px}
.svc-index h3{font-family:var(--f-display);font-size:1.45rem;line-height:1.2;margin:0 0 var(--sp-2)}
.svc-index p{margin:0;color:var(--i2);max-width:44ch}
.svc-index .go{position:absolute;right:0;top:var(--sp-5);color:var(--cu);font-size:.85rem;font-weight:700;opacity:.8}

.route{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-5);margin-top:var(--sp-7);position:relative}
.route::before{content:"";position:absolute;left:0;right:0;top:22px;height:1px;background:linear-gradient(90deg,var(--cu),var(--ln-2) 60%,var(--ln))}
.route li{position:relative;padding-top:64px}
.route .num{position:absolute;top:0;left:0;width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:var(--n1);border:1px solid var(--ln-cu);font-family:var(--f-display);font-size:1.1rem;color:var(--cu-hi)}
.route .who-acts{display:block;font-size:.8rem;color:var(--cu);font-weight:700;letter-spacing:.02em;margin-bottom:6px}
.route h3{font-family:var(--f-display);font-size:1.25rem;line-height:1.2;margin-bottom:var(--sp-2)}
.route p{margin:0;color:var(--i2);font-size:.97rem}

.closing{position:relative}
.closing__card{position:relative;background:var(--stock);color:var(--stock-ink);border-radius:var(--r-card);box-shadow:var(--lift-card);padding:clamp(32px,5vw,72px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--sp-7);align-items:end;margin-top:28px;background-image:repeating-linear-gradient(180deg,transparent 0,transparent 33px,var(--stock-rule) 33px,var(--stock-rule) 34px)}
.closing__card::before{content:"Enquiries";position:absolute;top:-28px;left:clamp(32px,5vw,72px);height:30px;padding:0 16px;display:flex;align-items:center;border-radius:7px 7px 0 0;background:var(--tab-cu);font-size:.82rem;font-weight:700}
.closing__card h2{font-family:var(--f-display);font-size:clamp(1.9rem,1.3rem + 2.1vw,3rem);line-height:1.08}
.closing__card p{color:#2E3A3D;margin:0 0 var(--sp-5)}
.transparency{margin-top:var(--sp-7);display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--ln)}
.transparency h2{font-family:var(--f-display);font-size:1.35rem;line-height:1.25}
.transparency p{color:var(--i2);max-width:70ch;margin:0 0 var(--sp-3)}

/* ------------------------------------------------------------ 10. Page headers */
.pagehead{position:relative;padding:calc(var(--head-h) + clamp(48px,8vw,112px)) 0 clamp(48px,7vw,96px);overflow:hidden}
.pagehead__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-6);align-items:end}
.pagehead__text{grid-column:1 / span 7;position:relative;z-index:2}
.pagehead__visual{grid-column:8 / span 5;position:relative;z-index:1}
.pagehead h1{margin-bottom:var(--sp-5)}
.crumbs{list-style:none;display:flex;flex-wrap:wrap;gap:8px;font-size:.84rem;color:var(--i3);margin:0 0 var(--sp-5)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--ln-2)}
.crumbs a{color:var(--i2);text-decoration:none}
.crumbs a:hover{color:var(--i1);text-decoration:underline}
.pagehead--wide .pagehead__visual{grid-column:1 / -1;margin-top:var(--sp-7)}
.pagehead--wide .pagehead__text{grid-column:1 / span 9}

/* ------------------------------------------------------------ 11. Mounted prints (photograph frames) */
.print{position:relative;margin:0;transform-style:preserve-3d;transition:transform .6s var(--ease-glide)}
.print__mount{position:relative;padding:10px;background:linear-gradient(145deg,#1D2E33,#101A1D);border-radius:2px;box-shadow:var(--lift-2)}
.print__mount::before{content:"";position:absolute;inset:4px;border:1px solid rgba(208,148,106,.35);pointer-events:none;z-index:2}
.print__window{position:relative;overflow:hidden;background:var(--n2)}
.print__window img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,var(--drift,0px),0) scale(1.07);transition:transform .2s linear}
.print figcaption{margin-top:var(--sp-3);font-size:.8rem;color:var(--i3);padding-left:4px}
.print--tall .print__window{aspect-ratio:4/5}
.print--wide .print__window{aspect-ratio:16/9}
.print--band .print__window{aspect-ratio:24/7}
.print--landscape .print__window{aspect-ratio:3/2}
.print__corner{position:absolute;width:28px;height:28px;border-color:var(--cu);border-style:solid;z-index:3;opacity:.9}
.print__corner--tl{top:-7px;left:-7px;border-width:2px 0 0 2px}
.print__corner--br{bottom:-7px;right:-7px;border-width:0 2px 2px 0}

/* ------------------------------------------------------------ 12. About */
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--ln);margin-top:var(--sp-7)}
.principles>div{padding:var(--sp-6) var(--sp-6) var(--sp-6) 0;border-bottom:1px solid var(--ln)}
.principles>div:nth-child(odd){border-right:1px solid var(--ln)}
.principles>div:nth-child(even){padding-left:var(--sp-6)}
.principles h3{font-family:var(--f-display);font-size:1.4rem;margin-bottom:var(--sp-2);display:flex;align-items:center;gap:12px}
.principles h3::before{content:"";width:16px;height:9px;border-radius:3px 3px 0 0;background:var(--cu);flex:0 0 auto}
.principles p{margin:0;color:var(--i2)}
.stance{position:relative;padding:clamp(28px,4vw,56px);background:var(--n2);border:1px solid var(--ln);border-left:3px solid var(--cu)}
.stance h2{margin-bottom:var(--sp-4)}
.stance p{color:var(--i2);max-width:68ch}
.stance p:last-child{margin-bottom:0}

/* ------------------------------------------------------------ 13. Services */
.svc-layout{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:var(--sp-8);align-items:start}
.svc-nav{position:sticky;top:calc(var(--head-h) + 32px)}
.svc-nav p{font-size:.84rem;color:var(--i3);margin:0 0 var(--sp-3)}
.svc-nav ol{list-style:none;border-left:1px solid var(--ln)}
.svc-nav a{display:block;padding:10px 0 10px 18px;margin-left:-1px;border-left:2px solid transparent;color:var(--i2);text-decoration:none;font-size:.95rem;line-height:1.35;transition:color var(--t-quick),border-color var(--t-quick)}
.svc-nav a:hover{color:var(--i1)}
.svc-nav a.is-here{color:var(--i1);border-left-color:var(--cu)}
.dossier{padding:0 0 var(--sp-8);margin-bottom:var(--sp-8);border-bottom:1px solid var(--ln)}
.dossier:last-child{border-bottom:0;margin-bottom:0}
.dossier__head{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3);margin-bottom:var(--sp-6)}
.dossier__head p{color:var(--i2);max-width:62ch;margin:0}
.flow{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:var(--n2);border:1px solid var(--ln);border-radius:var(--r-card)}
.flow li{position:relative;padding:var(--sp-6) var(--sp-5) var(--sp-5)}
.flow li+li{border-left:1px solid var(--ln)}
.flow li+li::before{content:"";position:absolute;left:-7px;top:34px;width:12px;height:12px;background:var(--n2);border-top:1px solid var(--ln-cu);border-right:1px solid var(--ln-cu);transform:rotate(45deg)}
.flow h3{font-size:.84rem;font-weight:700;letter-spacing:.02em;color:var(--cu);margin-bottom:var(--sp-3)}
.flow p{margin:0;color:var(--i2);font-size:.98rem}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6)}
.fact-panel{padding:clamp(24px,3.4vw,44px);border:1px solid var(--ln);background:var(--n2);border-radius:var(--r-card)}
.fact-panel h2{font-family:var(--f-display);font-size:clamp(1.5rem,1.2rem + 1vw,2rem);line-height:1.15;margin-bottom:var(--sp-4)}
.fact-panel p{color:var(--i2)}
.fact-panel p:last-of-type{margin-bottom:0}
.fact-panel .act,.fact-panel .textlink{margin-top:var(--sp-5)}

/* ------------------------------------------------------------ 14. How it works */
.timeline{position:relative;list-style:none;max-width:880px;margin-left:auto;margin-right:auto}
.timeline::before,.timeline::after{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:2px;background:var(--ln)}
.timeline::after{background:linear-gradient(180deg,var(--cu-hi),var(--cu));transform-origin:top;transform:scaleY(var(--fill,1))}
.js .timeline::after{transform:scaleY(var(--fill,0))}
.timeline li{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--sp-6);padding:0 0 var(--sp-8)}
.timeline li:last-child{padding-bottom:0}
.timeline .node{position:relative;z-index:2;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--n1);border:1px solid var(--ln-2);font-family:var(--f-display);font-size:1.35rem;color:var(--i2);transition:border-color var(--t-base),color var(--t-base),box-shadow var(--t-base)}
.timeline li.is-reached .node,.no-js .timeline .node{border-color:var(--cu);color:var(--cu-hi);box-shadow:0 0 0 6px rgba(208,148,106,.1)}
.timeline .actor{display:inline-block;font-size:.8rem;font-weight:700;color:var(--cu);letter-spacing:.02em;margin:14px 0 var(--sp-2)}
.timeline h2{font-family:var(--f-display);font-size:clamp(1.5rem,1.2rem + 1vw,2.05rem);line-height:1.15;margin-bottom:var(--sp-3)}
.timeline p{color:var(--i2);max-width:62ch;margin:0}
.checklist{list-style:none;margin-top:var(--sp-5)}
.checklist li{position:relative;padding:var(--sp-3) 0 var(--sp-3) 38px;border-bottom:1px solid var(--ln);color:var(--i1)}
.checklist li::before{content:"";position:absolute;left:0;top:calc(var(--sp-3) + .2em);width:20px;height:20px;border:1px solid var(--ln-cu);border-radius:2px}
.checklist li::after{content:"";position:absolute;left:6px;top:calc(var(--sp-3) + .38em);width:9px;height:5px;border-left:2px solid var(--cu);border-bottom:2px solid var(--cu);transform:rotate(-45deg)}
.faq{max-width:880px}
.faq details{border-top:1px solid var(--ln)}
.faq details:last-child{border-bottom:1px solid var(--ln)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:var(--sp-5) 56px var(--sp-5) 0;font-family:var(--f-display);font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:12px;margin-top:-9px;border-right:2px solid var(--cu);border-bottom:2px solid var(--cu);transform:rotate(45deg);transition:transform var(--t-base) var(--ease-glide)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.faq .answer{padding:0 0 var(--sp-5);color:var(--i2);max-width:66ch}
.faq .answer p:last-child{margin-bottom:0}

/* ------------------------------------------------------------ 15. Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--sp-8);align-items:start}
.formcard{position:relative;background:var(--n2);border:1px solid var(--ln);border-radius:var(--r-card);padding:clamp(24px,4vw,48px);box-shadow:var(--lift-2)}
.formcard::before{content:"";position:absolute;top:-1px;left:clamp(24px,4vw,48px);width:80px;height:3px;background:var(--cu)}
.formcard h2{font-family:var(--f-display);font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem);margin-bottom:var(--sp-3)}
.formcard>p{color:var(--i2)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5) var(--sp-5);margin-top:var(--sp-6)}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field--full{grid-column:1 / -1}
.field label,.field .label{font-size:.92rem;font-weight:700;color:var(--i1)}
.field .opt{font-weight:400;color:var(--i3)}
.req{color:var(--cu-hi)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:12px 14px;background:var(--n1);color:var(--i1);border:1px solid var(--ln-2);border-radius:var(--r-ctl);font:inherit;font-size:1rem;transition:border-color var(--t-quick),box-shadow var(--t-quick)}
.field textarea{min-height:170px;resize:vertical;line-height:1.55}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--cu) 50%),linear-gradient(135deg,var(--cu) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field select option{background:var(--n2);color:var(--i1)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(239,232,221,.4)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--cu);box-shadow:0 0 0 3px rgba(208,148,106,.28)}
.field .hint{font-size:.84rem;color:var(--i3);margin:0}
.field .err,.consent .err{font-size:.86rem;color:#F2B8A0;margin:0;display:flex;gap:8px;align-items:flex-start}
.field .err::before,.consent .err::before{content:"!";flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:#B85C45;color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center;margin-top:2px}
.field [aria-invalid="true"]{border-color:#D07A62;box-shadow:0 0 0 3px rgba(208,122,98,.2)}
.consent{grid-column:1 / -1;display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start}
.consent input{appearance:none;-webkit-appearance:none;width:26px;height:26px;margin:0;border:1px solid var(--ln-2);border-radius:3px;background:var(--n1);display:grid;place-items:center;cursor:pointer}
.consent input::after{content:"";width:10px;height:6px;border-left:2px solid var(--n1);border-bottom:2px solid var(--n1);transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.consent input:checked{background:var(--cu);border-color:var(--cu)}
.consent input:checked::after{opacity:1}
.consent input:focus-visible{outline:2px solid var(--cu-hi);outline-offset:3px}
.consent label{font-weight:400;font-size:.95rem;color:var(--i2);cursor:pointer}
.consent .err{grid-column:2}
.trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.form-foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4) var(--sp-5);margin-top:var(--sp-2)}
.form-foot p{margin:0;font-size:.86rem;color:var(--i3);flex:1 1 16rem}
.summary{margin-top:var(--sp-5);padding:var(--sp-4) var(--sp-5);border:1px solid #B85C45;background:rgba(184,92,69,.12);border-radius:var(--r-ctl)}
.summary h3{font-size:1rem;font-weight:700;margin-bottom:var(--sp-2)}
.summary ul{padding-left:1.1em;color:#F2D2C4}
.summary a{color:#F2D2C4}
.act[aria-busy="true"]{opacity:.75;cursor:progress}
.identity{position:relative;padding:clamp(24px,3.6vw,44px);background:var(--stock);color:var(--stock-ink);border-radius:var(--r-card);box-shadow:var(--lift-card);margin-top:26px;background-image:repeating-linear-gradient(180deg,transparent 0,transparent 33px,var(--stock-rule) 33px,var(--stock-rule) 34px)}
.identity::before{content:"Business details";position:absolute;top:-26px;left:clamp(24px,3.6vw,44px);height:28px;padding:0 14px;display:flex;align-items:center;border-radius:7px 7px 0 0;background:var(--tab-sage);font-size:.8rem;font-weight:700}
.identity h2{font-family:var(--f-display);font-size:1.6rem;line-height:1.2;margin-bottom:var(--sp-4)}
.identity dl{margin:0}
.identity dt{font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--cu-ink);margin-top:var(--sp-4)}
.identity dt:first-child{margin-top:0}
.identity dd{margin:4px 0 0;font-size:1rem;line-height:1.5;color:var(--stock-ink)}
.identity dd a{color:var(--stock-ink);text-decoration-color:rgba(26,36,39,.4)}
.identity .addr{display:block}
.side-notes{margin-top:var(--sp-7)}
.side-notes p{color:var(--i2);font-size:.97rem}
.side-notes .indep{font-size:.9rem;color:var(--i3);padding-top:var(--sp-4);border-top:1px solid var(--ln)}

/* ------------------------------------------------------------ 16. Legal pages */
.legalhead{position:relative;padding:calc(var(--head-h) + clamp(48px,7vw,96px)) 0 clamp(40px,5vw,64px);overflow:hidden;border-bottom:1px solid var(--ln)}
.legalhead__bg{position:absolute;inset:0;z-index:0}
.legalhead__bg img{width:100%;height:100%;object-fit:cover;opacity:.55}
.legalhead__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--n1) 20%,rgba(12,20,23,.7) 60%,rgba(12,20,23,.45)),linear-gradient(0deg,var(--n1),transparent 40%)}
.legalhead .frame{position:relative;z-index:1}
.legalhead h1{font-family:var(--f-display);font-size:clamp(2.3rem,1.6rem + 2.6vw,3.8rem);line-height:1.05;margin-bottom:var(--sp-4)}
.legalhead .updated{font-size:.88rem;color:var(--i3);margin:0 0 var(--sp-4)}
.legal-grid{display:grid;grid-template-columns:minmax(0,15.5rem) minmax(0,1fr);gap:var(--sp-8);align-items:start}
.toc{position:sticky;top:calc(var(--head-h) + 28px);border:1px solid var(--ln);border-radius:var(--r-card);background:var(--n2)}
.toc summary{cursor:pointer;list-style:none;padding:var(--sp-4) var(--sp-5);font-weight:700;font-size:.92rem;display:flex;justify-content:space-between;align-items:center}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--cu);border-bottom:2px solid var(--cu);transform:rotate(45deg);margin-top:-4px;transition:transform var(--t-quick)}
.toc[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.toc ol{list-style:none;padding:0 var(--sp-3) var(--sp-4)}
.toc a{display:block;padding:7px 12px;font-size:.9rem;line-height:1.35;color:var(--i2);text-decoration:none;border-left:2px solid transparent}
.toc a:hover{color:var(--i1)}
.toc a.is-here{color:var(--i1);border-left-color:var(--cu)}
.legal-body section{padding-bottom:var(--sp-3)}
.legal-body section+section{border-top:1px solid var(--ln);padding-top:var(--sp-6)}
.legal-body h2{margin-top:0!important}
.asklink{margin-top:var(--sp-8);padding:var(--sp-6);border:1px solid var(--ln);border-left:3px solid var(--cu);background:var(--n2)}
.asklink h2{font-family:var(--f-display);font-size:1.4rem;margin-bottom:var(--sp-2)}
.asklink p{margin:0;color:var(--i2)}
.related{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5);list-style:none}
.related a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--ln-2);border-radius:var(--r-ctl);text-decoration:none;color:var(--i2);font-size:.92rem}
.related a:hover{border-color:var(--cu);color:var(--i1)}

/* ------------------------------------------------------------ 17. Thank you / 404 */
.notice-page{min-height:100vh;display:flex;align-items:center;padding:calc(var(--head-h) + 48px) 0 var(--sp-9)}
.notice-page__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-8);align-items:center}
.next-steps{list-style:none;counter-reset:ns;margin:var(--sp-6) 0;border-top:1px solid var(--ln)}
.next-steps li{counter-increment:ns;display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--sp-3);padding:var(--sp-4) 0;border-bottom:1px solid var(--ln);color:var(--i2)}
.next-steps li::before{content:counter(ns);font-family:var(--f-display);font-size:1.3rem;color:var(--cu-hi)}
.pagelinks{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-5);margin:var(--sp-6) 0;border-top:1px solid var(--ln)}
.pagelinks a{display:flex;justify-content:space-between;align-items:center;min-height:52px;border-bottom:1px solid var(--ln);text-decoration:none;color:var(--i1)}
.pagelinks a:hover{color:var(--cu-hi)}
.pagelinks a span{color:var(--cu);font-size:.85rem}

/* ------------------------------------------------------------ 18. Colophon (footer) */
.colophon{position:relative;z-index:1;margin-top:var(--band);background:linear-gradient(180deg,var(--n0),#050809);border-top:1px solid var(--ln);padding:var(--sp-9) 0 var(--sp-6)}
.colophon::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--cu),transparent);opacity:.6}
.colophon__sign{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--sp-6) var(--sp-8);align-items:end;padding-bottom:var(--sp-8);border-bottom:1px solid var(--ln)}
.colophon__name{font-family:var(--f-display);font-size:clamp(1.9rem,1rem + 3.4vw,4.1rem);line-height:1;margin:0;color:var(--i1);letter-spacing:-.01em}
.colophon__name span{display:block;font-family:var(--f-text);font-size:clamp(.9rem,.8rem + .5vw,1.25rem);letter-spacing:.16em;color:var(--cu);margin-top:12px}
.colophon__desc p{color:var(--i2);margin-bottom:var(--sp-5)}
.colophon__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);padding:var(--sp-7) 0}
.colophon h2{font-size:.84rem;font-weight:700;letter-spacing:.02em;color:var(--cu);margin-bottom:var(--sp-4)}
.colophon ul{list-style:none}
.colophon li a{display:inline-flex;align-items:center;min-height:36px;color:var(--i2);text-decoration:none;font-size:.95rem}
.colophon li a:hover{color:var(--i1);text-decoration:underline;text-underline-offset:.25em}
.colophon__cols p{color:var(--i2);font-size:.95rem;max-width:34ch}
.colophon__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-4) var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--ln);font-size:.84rem;color:var(--i3)}
.colophon__base p{margin:0;max-width:78ch}

/* ------------------------------------------------------------ 19. Storage notice */
.notice{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:120;width:min(380px,calc(100vw - 32px));padding:var(--sp-5);background:rgba(17,28,32,.97);border:1px solid var(--ln-2);border-radius:var(--r-card);box-shadow:var(--lift-2);display:flex;flex-direction:column;gap:var(--sp-4)}
.notice p{margin:0;font-size:.9rem;line-height:1.55;color:var(--i2)}
.notice p a{color:var(--cu-hi)}
.notice .act{align-self:flex-start}

/* ------------------------------------------------------------ 20. Atmosphere: motes canvas, cursor, transitions */
.motes{position:fixed;inset:0;z-index:0;pointer-events:none;width:100%;height:100%}
.cursor-ring{position:fixed;left:0;top:0;z-index:150;width:30px;height:30px;margin:-15px 0 0 -15px;border:1px solid rgba(237,195,158,.7);border-radius:50%;pointer-events:none;opacity:0;transition:opacity .3s,width .3s var(--ease-glide),height .3s var(--ease-glide),margin .3s var(--ease-glide),background-color .3s}
.cursor-ring.is-on{opacity:1}
.cursor-ring.is-over{width:54px;height:54px;margin:-27px 0 0 -27px;background:rgba(208,148,106,.08)}
.js.motion body{animation:arrive .7s var(--ease-glide) both}
@keyframes arrive{from{opacity:.001}to{opacity:1}}
body.is-leaving main,body.is-leaving .colophon{opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}

/* reveals: only elements prepared by script are ever hidden */
.split-ready .w{display:inline-block;opacity:0;transform:translateY(.55em) rotateX(-40deg);transform-origin:50% 100%;transition:opacity .7s var(--ease-glide),transform .9s var(--ease-glide);transition-delay:calc(var(--i,0) * 55ms)}
.split-ready.is-seen .w{opacity:1;transform:none}
.rv-armed{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-glide),transform 1s var(--ease-glide)}
.rv-armed.is-seen{opacity:1;transform:none}
.draw-line{position:relative}
.draw-line::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--cu);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease-glide)}
.draw-line.is-seen::after{transform:scaleX(.22)}

/* ------------------------------------------------------------ 21. Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .print__window img{transform:none}
  .deck__hint .scrollcue{display:none}
  .act::after{display:none}
}
.motion-off .print__window img{transform:none}

/* ------------------------------------------------------------ 22. Responsive */
@media (max-width:1100px){
  .tabs__link{padding:0 13px}
  .route{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--sp-7)}
  .route::before{display:none}
  .svc-layout{grid-template-columns:minmax(0,1fr);gap:var(--sp-6)}
  .svc-nav{position:static}
  .svc-nav ol{display:flex;flex-wrap:wrap;gap:8px;border-left:0}
  .svc-nav a{border:1px solid var(--ln-2);border-radius:var(--r-ctl);padding:10px 14px;margin:0;min-height:44px}
  .svc-nav a.is-here{border-color:var(--cu)}
}
@media (max-width:980px){
  :root{--head-h:70px}
  .js .menu-btn{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;background:none;border:1px solid var(--ln-2);border-radius:var(--r-ctl);cursor:pointer;color:var(--i1);font-size:.92rem;font-weight:700}
  .menu-btn__lines{position:relative;width:18px;height:2px;background:currentColor;transition:background-color var(--t-quick)}
  .menu-btn__lines::before,.menu-btn__lines::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;transition:transform var(--t-base) var(--ease-glide)}
  .menu-btn__lines::before{top:-6px}
  .menu-btn__lines::after{top:6px}
  .menu-btn[aria-expanded="true"] .menu-btn__lines{background:transparent}
  .menu-btn[aria-expanded="true"] .menu-btn__lines::before{transform:translateY(6px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] .menu-btn__lines::after{transform:translateY(-6px) rotate(-45deg)}
  .js .tabs{position:fixed;left:0;right:0;top:var(--head-h);bottom:0;z-index:99;background:linear-gradient(180deg,var(--n2),var(--n1));padding:var(--sp-6) var(--gut) var(--sp-8);overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity var(--t-base) var(--ease-glide),transform var(--t-base) var(--ease-glide),visibility 0s linear var(--t-base)}
  .js .tabs.is-open{visibility:visible;opacity:1;transform:none;transition:opacity var(--t-base) var(--ease-glide),transform var(--t-base) var(--ease-glide),visibility 0s}
  .js .tabs__list{flex-direction:column;align-items:stretch;height:auto;gap:0}
  .js .tabs__list>li{height:auto;display:block}
  .js .tabs__link{height:auto;min-height:64px;margin:0;padding:0;border-bottom:1px solid var(--ln);font-family:var(--f-display);font-size:1.75rem;color:var(--i1)}
  .js .tabs__link::before{display:none}
  .js .tabs__link[aria-current="page"]{color:var(--cu-hi)}
  .js .tabs__cta{padding:var(--sp-6) 0 0}
  .js .tabs__cta .act{width:100%;min-height:56px}
  .no-js .masthead{position:absolute;height:auto}
  .no-js .masthead__inner{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
  .no-js .tabs__list{height:auto;flex-wrap:wrap}
  .no-js .tabs__link{margin:0;height:44px}
  .no-js .pagehead,.no-js .legalhead,.no-js .deck{padding-top:180px}
  .split__a,.split__b,.split__wide,.split__narrow{grid-column:1 / -1}
  .audience__print,.audience__text{grid-column:1 / -1}
  .audience__print{max-width:520px}
  .pagehead__text,.pagehead__visual{grid-column:1 / -1}
  .pagehead__visual{max-width:620px}
  .contact-grid,.notice-page__grid{grid-template-columns:minmax(0,1fr)}
  .legal-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-6)}
  .toc{position:static}
  .closing__card{grid-template-columns:minmax(0,1fr);align-items:start}
  .colophon__sign{grid-template-columns:minmax(0,1fr)}
  .deck__scene{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  body{font-size:1rem}
  .rules li{grid-template-columns:minmax(0,1fr);gap:var(--sp-2)}
  .svc-index{grid-template-columns:minmax(0,1fr)}
  .route{grid-template-columns:minmax(0,1fr);gap:0}
  .route li{padding:0 0 var(--sp-6) 64px;min-height:64px}
  .route li:last-child{padding-bottom:0}
  .flow{grid-template-columns:minmax(0,1fr)}
  .flow li+li{border-left:0;border-top:1px solid var(--ln)}
  .flow li+li::before{left:32px;top:-7px;transform:rotate(135deg)}
  .facts{grid-template-columns:minmax(0,1fr)}
  .principles{grid-template-columns:minmax(0,1fr)}
  .principles>div:nth-child(odd){border-right:0}
  .principles>div:nth-child(even){padding-left:0}
  .fields{grid-template-columns:minmax(0,1fr)}
  .transparency{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
  .colophon__cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .colophon__cols>div:last-child{grid-column:1 / -1}
  .pagelinks{grid-template-columns:minmax(0,1fr)}
  .timeline::before,.timeline::after{left:21px}
  .timeline li{grid-template-columns:44px minmax(0,1fr);gap:var(--sp-4)}
  .timeline .node{width:44px;height:44px;font-size:1.1rem}
  .timeline .actor{margin-top:10px}
  .brand__mark{width:34px;height:34px}
  .brand__l1{font-size:1rem}
  .brand__l2{font-size:.66rem}
  .deck.is-3d .icard--chapter{grid-template-columns:minmax(0,1fr);align-content:start}
  .deck.is-3d .icard--chapter .icard__print{margin:22px 22px 0}
  .deck.is-3d .icard--chapter .icard__print img{aspect-ratio:16/9}
  .deck.is-3d .deck__rail{right:auto;left:50%;top:auto;bottom:var(--sp-4);transform:translateX(-50%);flex-direction:row;gap:2px}
  .deck.is-3d .deck__rail button{justify-content:center}
  .deck.is-3d .deck__rail button span.lbl{display:none}
  .deck.is-3d .deck__hint{display:none}
  .notice{left:var(--sp-3);right:var(--sp-3);bottom:var(--sp-3);width:auto;padding:var(--sp-4)}
}
@media (max-width:420px){
  .brand__l1{font-size:.92rem}
  .brand{gap:9px}
  .js .menu-btn__label{display:none}
  .act{padding:0 20px}
  .icard .act-row .act{flex:1 1 100%}
}
@media (hover:none){
  .svc-index .go{opacity:1}
}
@media print{
  body::after,.motes,.cursor-ring,.notice,.masthead,.deck__drawer,.deck__rail,.deck__hint{display:none!important}
  body{background:#fff;color:#000}
}

/* ------------------------------------------------------------ 23. States and small additions */
body.menu-open{overflow:hidden}
.no-js [data-notice-open]{display:none}
.deck__scene{transition:opacity .5s var(--ease-glide)}
.deck-wait .deck__scene{opacity:0}
.deck:not(.is-3d) .icard--chapter .icard__print{margin-bottom:clamp(20px,2.6vw,32px)}
.icard[data-card="4"]{--tab-x:14%;--tab-bg:var(--tab-sage)}
.icard[data-card="5"]{--tab-x:40%;--tab-bg:var(--tab-ivory)}
.icard[data-card="6"]{--tab-x:62%;--tab-bg:var(--tab-cu)}
.icard[data-card="7"]{--tab-x:24%;--tab-bg:var(--tab-sage)}
.icard[data-card="8"]{--tab-x:50%;--tab-bg:var(--tab-cu)}
.icard[data-card="9"]{--tab-x:8%;--tab-bg:var(--tab-ivory)}
.icard[data-card="10"]{--tab-x:34%;--tab-bg:var(--tab-sage)}
.icard[data-card="11"]{--tab-x:58%;--tab-bg:var(--tab-cu)}
.icard--spare .icard__tab{width:96px}
.prose .tablewrap{overflow-x:auto;margin:0 0 1.4em;border:1px solid var(--ln);border-radius:var(--r-card)}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem}
.prose th,.prose td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--ln);color:var(--i2)}
.prose th{color:var(--i1);font-weight:700;background:var(--n2);width:9.5rem}
.prose tr:last-child th,.prose tr:last-child td{border-bottom:0}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;color:var(--cu-hi)}
.legalhead .standfirst{margin:0}
.cta-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-6);align-items:end;padding-top:var(--sp-7);border-top:1px solid var(--ln)}
.cta-line p{color:var(--i2);max-width:60ch;margin:var(--sp-3) 0 0}
.lookfor{list-style:none;margin-top:var(--sp-5);border-top:1px solid var(--ln)}
.lookfor li{padding:var(--sp-4) 0;border-bottom:1px solid var(--ln);color:var(--i2)}
.lookfor strong{display:block;color:var(--i1);font-weight:700;margin-bottom:2px}
.side-notes .print{margin-bottom:var(--sp-6)}
.side-notes h2{margin-bottom:var(--sp-3)}
@media (max-width:760px){.cta-line{grid-template-columns:minmax(0,1fr);align-items:start}}
.prose .related{padding-left:0}
.prose .related li{margin:0}
.consent label a,.form-foot a{color:var(--cu-hi);text-decoration:underline;text-decoration-color:var(--ln-cu)}
.pagelinks li{margin:0}
/* deck rail labels only where there is room beside the card */
@media (max-width:1199px){.deck__rail button span.lbl{display:none}}
/* keep the copper header rule clear of the first line of text */
.deck:not(.is-3d) .icard--chapter .icard__body{padding-top:88px}
@media (max-width:460px){
  .icard--lead{--rule:86px}
  .icard--lead .icard__kicker{margin-bottom:24px}
}
.errlist{list-style:none;margin:var(--sp-5) 0 var(--sp-6);border-top:1px solid var(--ln)}
.errlist li{position:relative;padding:var(--sp-3) 0 var(--sp-3) 32px;border-bottom:1px solid var(--ln);color:#F2D2C4}
.errlist li::before{content:"!";position:absolute;left:0;top:calc(var(--sp-3) + .2em);width:20px;height:20px;border-radius:50%;background:#B85C45;color:#fff;font-size:.75rem;font-weight:700;display:grid;place-items:center}
body.menu-open .notice{display:none}
