/* the drive — getsurr.com/drive/. site.css comes first (fonts, tokens, band, veil, door, the scroll fade, the ticks).
   layout from the a3 mockup (sap-business/inspo/website-drive-page-a3-2026-10-09.html): every section on one two-column grid,
   what it is on the left, what you do on the right; one column under 520px. */
:root{--bg2:#0a0a0a;--line2:#333333;--redbg:#140306}
.fine{color:var(--grey);font-size:12px;line-height:1.4}
.ds h2{margin:0;font-family:var(--head);font-weight:700;font-size:27px;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
.ds h3{text-wrap:balance}
.ds .k{margin-bottom:0}
.ds .body{line-height:1.45;text-wrap:pretty}
/* the numbers are 10px: cherry is 4.05:1 on black, this brighter cherry is 4.58 (owner, 2026-10-10) */
.num{font-family:var(--mono);font-size:10px;color:#EA1C36;letter-spacing:.08em;display:block}

/* ————— desktop: the band stays veiled; the tiles under the veil go to the site; the fuse tile sits above it ————— */
.dsite .veil{pointer-events:none}
.dsite .band a.cell{text-decoration:none}
.dsite .cell.here{z-index:6;background:var(--bg);cursor:default}
.dsite .cell.here:hover .sym{opacity:0}.dsite .cell.here:hover .word{opacity:1}
.dbox{position:absolute;z-index:10;left:3%;right:19.6%;top:5%;bottom:max(5%,46px);background:var(--bg);border:1px solid var(--line);border-right:0;display:flex;flex-direction:column;container-type:inline-size}
.dwrap{flex:1;min-height:0}
.dwrap .fade{height:110px;top:auto;background:linear-gradient(rgba(5,5,5,0),var(--bg) 88%)}
.dwrap .more{right:24px;bottom:8px}

/* ————— phone: the top, the snap of screens, the marks on the right ————— */
.dphone{position:fixed;inset:0;height:calc(var(--vh) * 100);flex-direction:column;background:var(--bg)}
@media (max-width:720px){.dphone{display:flex}}
.dtop{position:relative;flex:none;height:calc(132px + env(safe-area-inset-top));display:flex;align-items:flex-end;padding:0 20px 8px;border-bottom:1px solid var(--line)}
.dtop .fuse{position:absolute;left:20px;right:20px;top:calc(38px + env(safe-area-inset-top));width:auto}
.dtop .home{position:absolute;left:20px;top:calc(16px + env(safe-area-inset-top));text-decoration:none}
.dtop .word{font-size:32px;position:relative}
.dsnap{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:y mandatory;scrollbar-width:none;container-type:inline-size}
.dsnap::-webkit-scrollbar{display:none}
.dscreen{height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--line)}
.dscreen:first-child{border-top:0}
.dscreen .scrollwrap{flex:1;min-height:0}
.dscreen .scroll:focus-visible{outline:1px solid var(--grey2);outline-offset:-2px}
.dscreen .scrollwrap .more{right:34px;bottom:6px}
.dsnap .dscreen .ds{padding-right:34px}
.dticks{top:calc(50% + 66px)}
.dphone .snapdoor{position:relative;flex:none}
.dphone .dpay:empty{display:none}

/* ————— the sections ————— */
.ds{padding:26px 24px;border-bottom:1px solid var(--line2);display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.5fr);gap:14px 30px;align-items:start}
.ds:last-child{border-bottom:0}
.dscreen .ds{border-bottom:0}
.ds>div{display:flex;flex-direction:column;gap:9px;min-width:0}
.ds.hero{padding-top:46px;align-items:end;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.count{font-family:var(--mono);font-size:11px;color:var(--grey2)}
.count b{color:var(--ink);font-weight:400}
.ds>div.know{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;border-top:1px solid var(--line);padding-top:16px;margin-top:6px}
.know>div{display:grid;gap:5px;align-content:start;min-width:0}

/* entry, backstage and the patron list */
.things{display:grid}
.thing{display:grid;gap:3px;padding:10px 0;border-top:1px solid var(--line)}
.thing:last-child{border-bottom:1px solid var(--line)}
.thing b{font-family:var(--head);font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.01em}
.thing p{font-size:12.5px;color:var(--grey2);line-height:1.4}
.gets{margin:2px 0 0;padding:0;list-style:none;display:grid;gap:5px;color:var(--grey2);font-size:13px;line-height:1.3}
.gets li{padding-left:14px;position:relative}
.gets li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;background:var(--grey)}

/* prices for: the visitor's country */
.where{display:flex;align-items:baseline;gap:10px;align-self:flex-start;margin-bottom:4px}
.where .k{white-space:nowrap}
.where .field{width:auto;font-size:16px;padding:4px 18px 4px 0;background:linear-gradient(45deg,transparent 50%,var(--grey2) 50%) right 4px center/5px 5px no-repeat,linear-gradient(-45deg,transparent 50%,var(--grey2) 50%) right 0 center/5px 5px no-repeat}

/* the patron menu: how long × list or backstage */
.pmenu{display:grid}
.mhead,.mrow{display:grid;grid-template-columns:minmax(0,1fr) auto 76px 92px;align-items:baseline;gap:2px 10px}
.mhead{padding-bottom:6px;font-family:var(--mono);font-size:10px;color:var(--grey);letter-spacing:.04em}
.mhead b{font-weight:400;text-align:right}
.mrow{padding:10px 0;border-top:1px solid var(--line)}
.mrow .nm{font-family:var(--head);font-weight:700;font-size:15px;letter-spacing:-.01em}
.mrow .b{font-family:var(--mono);font-size:11px;color:var(--grey2);white-space:nowrap}
.pc{text-align:right;font-family:var(--mono);font-size:12px;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.pick .pc{border:1px solid var(--line2);border-radius:999px;padding:5px 9px;justify-self:end}
.pick .pc:hover{border-color:var(--grey2)}
.pc[aria-pressed="true"]{border-color:var(--red)!important;box-shadow:inset 0 0 0 1px var(--red)}
.mrow .left{grid-column:3/-1;justify-self:start;font-family:var(--mono);font-size:10px;color:var(--grey2);white-space:nowrap;margin-top:4px}
.mrow .sub{grid-column:1/-1;color:var(--grey2);font-size:13px;line-height:1.35;margin-top:4px}
.mrow small{grid-column:1/-1;font-family:var(--mono);font-size:11px;color:var(--grey);letter-spacing:.02em;margin-top:4px;line-height:1.4}
.mrow.hero{padding:14px 0 16px}
.mrow.hero .nm{font-size:19px}
.mrow.hero .pc{font-size:14px}
.key{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:0 0 8px;font-size:12.5px;line-height:1.4}
.key dt{font-family:var(--head);font-weight:700;color:var(--ink)}
.key dd{margin:0;color:var(--grey2)}

/* the rows (patrons) */
.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:1px 14px;padding:10px 0;border-top:1px solid var(--line);width:100%}
.row:first-child{border-top:1px solid var(--line)}
.row .nm{font-family:var(--head);font-weight:700;font-size:15px;letter-spacing:-.01em}
.pick .row .nm::before,.pick .arow .nm::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;border:1px solid var(--grey);margin-right:9px;transform:translateY(-1px)}
.row[aria-pressed="true"] .nm::before,.arow[aria-pressed="true"] .nm::before{background:var(--red)!important;border-color:var(--red)!important}
.pick .row:hover .nm,.pick .arow:hover .nm{color:#fff}
.row .b{font-family:var(--mono);font-size:11px;color:var(--grey2);white-space:nowrap}
.row .p{font-family:var(--mono);font-size:12px;color:var(--ink);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.row .left{grid-column:2/-1;justify-self:end;font-family:var(--mono);font-size:10px;color:var(--grey2);white-space:nowrap}
.row .sub{grid-column:1/-1;color:var(--grey);font-size:12.5px;line-height:1.35}
.pick .row .sub{padding-left:17px}
.row .sub small{display:block;font-size:11px;font-family:var(--mono);color:var(--grey);margin-top:4px;letter-spacing:.02em}
.row.hero{padding:14px 0 16px}
.row.hero .nm{font-size:19px}
.row.hero .p{font-size:14px}
.row.hero .sub{color:var(--grey2);font-size:13px}
.ds>div.soli{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;border-block:1px solid var(--line2);padding:12px 0;margin-top:6px}
.soli b{font-family:var(--head);font-weight:700;font-size:15px}
.soli .p{font-family:var(--mono);font-size:12px;color:var(--ink);white-space:nowrap}
.soli .fine{color:var(--grey2)}
.link{font-family:var(--mono);font-size:11px;color:var(--ink);align-self:flex-start;text-decoration:none;white-space:nowrap}
.link:hover{color:#fff}

/* the allies' rows: a symbol column, the villa set larger, your amount quieter */
.ico{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;display:block}
.ico .r{stroke:var(--red)}.ico .rf{fill:var(--red);stroke:none}
.arows{display:grid}
.arow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:2px 14px;align-items:center;padding:11px 0;border-top:1px solid var(--line);width:100%}
.arows .arow:last-of-type{border-bottom:1px solid var(--line)}
.arow i{width:30px;height:30px;color:var(--grey2);grid-row:span 2;align-self:center}
.arow .nm{font-family:var(--head);font-weight:700;font-size:16px;letter-spacing:-.01em}
.arow[aria-pressed="true"] i{color:var(--ink)}
.arow .b{font-family:var(--mono);font-size:12px;color:var(--ink);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.arow .sub{color:var(--grey);font-size:12.5px;line-height:1.35;grid-column:2}
.pick .arow .sub{padding-left:17px}
.arow .left{grid-column:3;font-family:var(--mono);font-size:10px;color:var(--grey);text-align:right;white-space:nowrap}
.arow.top{grid-template-columns:38px minmax(0,1fr) auto}
.arow.top .nm{font-size:20px}
.arow.top i{width:38px;height:38px}
.arow.top .sub{color:var(--grey2)}
.arow.own .nm{color:var(--grey2);font-size:14px}
.gift{border-top:0;padding-top:4px}

/* the pieces */
.piece{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 10px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line)}
.piece:first-child{border-top:0;padding-top:0}
.piece .nm{font-family:var(--head);font-weight:700;font-size:15px}
.piece .p{font-family:var(--mono);font-size:12px;color:var(--ink);text-align:right}
.piece .sub{grid-column:1/-1;color:var(--grey);font-size:12.5px;line-height:1.35}

/* the city race */
.order{font-family:var(--mono);font-size:11px;color:var(--grey2);line-height:1.6}
.board{display:flex;flex-direction:column}
.brow{display:grid;grid-template-columns:22px 1fr auto;gap:2px 8px;align-items:baseline;padding:6px 0 8px}
.brow .rk{font-family:var(--mono);font-size:10px;color:var(--grey)}
.brow .cn{font-family:var(--head);font-weight:700;font-size:14px}
.brow .mv{font-family:var(--mono);font-size:10px;color:var(--grey);margin-left:6px}
.brow .bd{font-family:var(--mono);font-size:11px;color:var(--grey2);font-variant-numeric:tabular-nums}
.brow .bd em{font-style:normal;color:var(--red)}
.brow .bbar{grid-column:1/-1;height:2px;background:#161616;display:flex}
.brow .bbar i{background:#8a8a8a;height:100%}
.brow .bbar u{background:var(--red);height:100%}
.brow.on .cn{color:#fff}.brow.on .rk{color:var(--red)}.brow.on .bbar i{background:var(--ink)}

/* the list (the site's own form, two fields here) */
.ds form.list{margin-top:4px}
.ds form.list input{font-size:16px}
.ds .done{margin-top:4px}
.sfoot{margin-top:18px}

/* the pay bar */
.pay{flex:none;border-top:1px solid var(--line2);background:var(--bg2);padding:12px 24px 14px;display:grid;grid-template-columns:1fr 1fr auto;gap:8px 12px;align-items:end}
.pay .sum{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;color:var(--ink)}
.pay .fine{grid-column:1/-1}
.pay.three{grid-template-columns:1fr 1fr 1fr auto}
.field{background:none;border:0;border-bottom:1px solid var(--line2);border-radius:0;color:var(--ink);font-family:var(--mono);font-size:16px;padding:7px 0;min-width:0;width:100%;-webkit-appearance:none;appearance:none}
.field::placeholder{color:var(--grey)}
select.field{cursor:pointer}
select.field:invalid,select.field.empty{color:var(--grey)}
.go.solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.go[disabled]{opacity:.35;cursor:default}
.dphone .pay{padding:12px 20px calc(18px + env(safe-area-inset-bottom))}

/* after paying */
.after{padding:30px 24px;display:flex;flex-direction:column;gap:16px}
.after .big{font-size:clamp(30px,7cqw,46px)}
.mk{font-family:var(--mono);font-size:12px;color:var(--ink);border-block:1px solid var(--line2);padding:10px 0;display:flex;flex-wrap:wrap;gap:4px 10px}
.mk i{font-style:normal;color:var(--grey)}
.next{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.next li{color:var(--grey2);font-size:14px;max-width:56ch;text-wrap:pretty}
.next b{color:var(--ink);font-weight:500}
.card{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 18px}
.card canvas{display:block;width:220px;height:220px;border:1px solid var(--line2)}
.card .btns{display:flex;flex-wrap:wrap;gap:8px}
.after .link{margin-top:4px}

/* the soli sheet: one screen over the page */
.sheet{position:fixed;inset:0;z-index:40;background:rgba(5,5,5,.8);display:flex;align-items:center;justify-content:center}
.sheet .in{position:relative;width:min(520px,100%);max-height:100%;overflow-y:auto;background:var(--bg);border:1px solid var(--line);padding:30px 26px 26px;display:flex;flex-direction:column;gap:12px}
.sheet h3{padding-right:56px}
.sheet label.k{margin:8px 0 0}
.sheet .go{margin-top:6px;align-self:flex-start}
.sheet .sent{color:var(--ink);font-size:14px}

@container (max-width:520px){
  .ds,.ds.hero{grid-template-columns:minmax(0,1fr);padding:18px 20px;gap:12px}
  .ds h2{font-size:24px}
  .ds>div.know{grid-template-columns:minmax(0,1fr);gap:10px}
  .after{padding:22px 20px}
  .ds>div.soli{grid-template-columns:auto minmax(0,1fr) auto}
  .soli .fine{grid-column:1/-1;grid-row:2}
}
@media (max-width:720px){
  .pay,.pay.three{grid-template-columns:1fr 1fr}
  .pay .go{grid-column:1/-1;justify-self:start}
  .pay.three .field[name=amount]{grid-column:1/-1}
  .sheet{align-items:stretch}
  .sheet .in{width:100%;border:0;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}
}
.sheet .field::placeholder{font-size:13px}
@container (max-width:520px){.mhead,.mrow{grid-template-columns:minmax(0,1fr) auto 70px 84px;gap:2px 8px}}

/* phone: a compact pay bar, bigger tap areas, the marks step aside while the bar is up */
.field:focus-visible{outline:none;border-bottom-color:var(--grey2)}
.pay .sum span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pay .sum button{white-space:nowrap;padding:8px 0 8px 8px;margin:-8px 0}
.link{padding:8px 0;margin:-8px 0}
.drivepage .dtop .home,.drivepage .snapdoor a{padding:8px 0;margin:-8px 0}
.drivepage .sfoot a{padding:6px 0}
.dphone.paying .dticks{display:none}
@media (max-width:720px){
  .dphone .pay{gap:4px 12px;padding:8px 20px calc(10px + env(safe-area-inset-bottom))}
  .dphone .pay .field{padding:5px 0}
  .dphone .pay .go{padding:7px 12px}
  .dphone .pay .fine{font-size:11px}
  .pay.three .field[name=name]{grid-column:1/-1}
  .pay.three .field[name=amount]{grid-column:auto}
}

/* ————— the strip (allies, section 03): from the allies-tab ticker mockup, b · the strip ————— */
.ds>.stripw-slot{grid-column:1/-1;margin:-26px -24px 8px;display:block;min-width:0}
.ds>.stripw-slot:empty{display:none}
.stripw{min-width:0}
.strip{border-block:1px solid var(--line2);overflow:hidden;position:relative;height:46px;background:var(--bg2)}
.lane{display:flex;gap:34px;align-items:center;height:100%;width:max-content;animation:run 38s linear infinite;padding-left:20px}
.lane .it{display:flex;gap:9px;align-items:center;white-space:nowrap;font-size:14px}
.lane .it i{width:22px;height:22px;color:var(--grey2);flex:none}
.lane .it b{font-weight:500}
.lane .it em{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--grey)}
.lane .star{color:var(--red);font-size:11px}
@keyframes run{to{transform:translateX(-50%)}}
.take{position:absolute;inset:0;display:flex;align-items:center;gap:14px;padding-inline:20px;background:var(--redbg);border-block:1px solid var(--red);transform:translateX(102%);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.take.on{transform:none}
.take i{width:34px;height:34px;flex:none}
.take p{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.take b{font-weight:600}
.take em{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--grey2)}
/* reduced motion: no running, no takeover — the newest three stand still */
.stripw.still .strip{height:auto;min-height:46px}
.stripw.still .lane{animation:none;width:auto;flex-wrap:wrap;gap:6px 24px;padding:10px 20px}
@media (prefers-reduced-motion:reduce){.lane{animation:none}.take{display:none}}
/* phone: pinned along the bottom of the 03 screen, after the ladder */
.dscreen>.stripw{flex:none}
.dscreen>.stripw .strip{border-bottom:0}

/* ————— the allies' door: the slim patrons bar (desktop) and the ↑ patrons pill ————— */
.ds.slim{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:10px 92px 10px 24px}
.ds.slim h3{font-size:15px}
.up{font-family:var(--mono);font-size:10.5px;color:var(--grey2);border:1px solid var(--line2);border-radius:999px;padding:5px 10px;white-space:nowrap}
.up:hover{color:#fff;border-color:var(--grey2)}
.ds.allies{position:relative}
.ds.allies>.up{position:absolute;top:10px;right:34px;z-index:2;margin:0}

/* the name tick in the ally pay bar (opt-in, unticked) */
.pay .tick{grid-column:1/3;display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;color:var(--grey2);cursor:pointer;padding:6px 0}
.pay.three .tick{grid-column:1/4}
.pay .tick input{-webkit-appearance:none;appearance:none;flex:none;width:14px;height:14px;margin:0;border:1px solid var(--grey);border-radius:2px;background:none;cursor:pointer}
.pay .tick input:checked{background:var(--red);border-color:var(--red)}
.pay .tick input:focus-visible{outline:1px solid var(--grey2);outline-offset:2px}
@media (max-width:720px){.pay .tick,.pay.three .tick{grid-column:1/-1}}
@container (max-width:520px){.ds>.stripw-slot{margin:-18px -20px 4px}}
