
@font-face{font-family:"Bree Serif";src:url("/static/font/qy-display-400.woff2")format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Red Hat Text";src:url("/static/font/qy-body-400.woff2")format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Red Hat Text";src:url("/static/font/qy-body-500.woff2")format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Red Hat Text";src:url("/static/font/qy-body-700.woff2")format("woff2");font-weight:700;font-display:swap}

:root{
  --qy-ground:#333f38; --qy-raise:#3c4a42; --qy-pane:#46554c;
  --qy-ink:#f2efe6; --qy-soft:#bcc7bf; --qy-rule:#5b6d62;
  --qy-mark:#f0821e; --qy-lit:#ffb454; --qy-markink:#1a1a17;
  --qy-second:#c3492f; --qy-secondlit:#ff9878;
  --qy-display:"Bree Serif",Georgia,"Times New Roman",serif;
  --qy-body:"Red Hat Text","Helvetica Neue",Arial,sans-serif;
  --qy-hold:min(1220px,100% - 2.6rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--qy-ground);color:var(--qy-ink);
  font-family:var(--qy-body);font-size:17.5px;line-height:1.68;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--qy-lit);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--qy-ink)}
:focus-visible{outline:3px solid var(--qy-lit);outline-offset:3px}
.qy-skip{position:absolute;left:-9999px}
.qy-skip:focus{left:1rem;top:1rem;z-index:99;background:var(--qy-mark);color:var(--qy-markink);padding:.7rem 1.1rem}
.qy-hold{width:var(--qy-hold);margin-inline:auto}
h1,h2,h3{font-family:var(--qy-display);font-weight:400;line-height:1.18;letter-spacing:-.004em}
h1{font-size:clamp(1.85rem,1.15rem + 1.9vw,2.75rem);margin:0}
h2{font-size:clamp(1.45rem,1.05rem + 1.5vw,2.15rem);margin:3rem 0 1rem;max-width:26ch}
h3{font-size:1.14rem;margin:2rem 0 .55rem;font-family:var(--qy-body);font-weight:700;letter-spacing:.012em}
p{margin:0 0 1.05rem}
strong{font-weight:700;color:#fff}

/* ---- masthead */
.qy-top{background:var(--qy-raise);border-bottom:1px solid var(--qy-rule)}
.qy-topin{width:var(--qy-hold);margin-inline:auto;display:flex;flex-wrap:wrap;gap:.85rem 1.6rem;
  align-items:baseline;justify-content:space-between;padding:.95rem 0}
.qy-mast{font-family:var(--qy-display);font-size:1.42rem;color:var(--qy-ink);text-decoration:none}
.qy-mast:hover{color:var(--qy-lit)}
.qy-nav{display:flex;flex-wrap:wrap;gap:.35rem 1.15rem;font-size:.9rem;letter-spacing:.015em}
.qy-nav a{color:var(--qy-soft);text-decoration:none}
.qy-nav a:hover,.qy-nav a[aria-current]{color:var(--qy-lit);text-decoration:underline}
.qy-tel{color:var(--qy-ink);font-weight:500;text-decoration:none;white-space:nowrap}

/* ---- hero. ⚠️ ARCHETYPE: THE OVERLAP. The copy panel does not sit ON the picture and does not
   sit BESIDE it; it hangs off the bottom edge and crosses into the section below, so the boundary
   between two grounds runs THROUGH a block. Nothing in this workspace overlaps; everything stacks. */
.qy-hero{position:relative;background:var(--qy-raise)}
.qy-heroshot{position:relative;height:clamp(340px,52vh,560px);overflow:hidden}
.qy-heroshot img{width:100%;height:100%;object-fit:cover}
.qy-heroshot::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(51,63,56,.30) 0%,rgba(51,63,56,.10) 40%,rgba(51,63,56,.72) 100%)}
.qy-heroin{width:var(--qy-hold);margin:-5.5rem auto 0;position:relative;z-index:2}
.qy-panel{background:var(--qy-ground);border:1px solid var(--qy-rule);border-top:5px solid var(--qy-mark);
  padding:1.5rem 1.8rem 1.4rem;max-width:min(70ch,80%);box-shadow:0 18px 40px rgba(0,0,0,.28)}
@media(max-width:760px){.qy-panel{max-width:100%;padding:1.4rem 1.2rem} .qy-heroin{margin-top:-3rem}}
.qy-brow{font-size:.79rem;letter-spacing:.16em;text-transform:uppercase;color:var(--qy-lit);
  margin:0 0 .8rem;font-weight:700}
.qy-stand{font-size:1.13rem;margin:1.1rem 0 0;max-width:58ch}
.qy-floor{margin:1rem 0 0;color:var(--qy-soft)}
.qy-mech{margin:.9rem 0 0;font-size:.9rem;line-height:1.55;color:var(--qy-soft);max-width:62ch;
  border-top:1px solid var(--qy-rule);padding-top:.8rem}

/* ---- sections */
.qy-sec{padding:3.2rem 0}
.qy-sec--raise{background:var(--qy-raise);border-block:1px solid var(--qy-rule)}
.qy-sec--pane{background:var(--qy-pane);border-block:1px solid var(--qy-rule)}
.qy-sec--mark{background:var(--qy-mark);color:var(--qy-markink)}
.qy-sec--mark a{color:var(--qy-markink)}
.qy-sec--mark h2,.qy-sec--mark h3,.qy-sec--mark strong{color:var(--qy-markink)}
.qy-sec--second{background:var(--qy-second);color:#fff}
.qy-sec--second a,.qy-sec--second h2,.qy-sec--second h3,.qy-sec--second strong{color:#fff}
.qy-body>p,.qy-body>ul,.qy-body>h2,.qy-body>h3{max-width:74ch}
.qy-list{margin:0 0 1.1rem;padding-left:1.15rem}
.qy-list li{margin:0 0 .42rem}

/* ---- THE MARK: a six cell strip read as a SET, several cells filled at once.
   ⚠️ Seventeen encodings are spent in this workspace and every one is a magnitude standing for a
   rank. This catalogue has no ranks. The mark carries more than one value, which is new here, and
   it is the data rather than a picture of it. Decorative: every cell is named in words beside it. */
.qy-mk{display:inline-flex;gap:2px;vertical-align:-2px}
.qy-mk i{display:block;width:9px;height:16px;border:1px solid var(--qy-rule);background:transparent}
.qy-mk i.on{background:var(--qy-mark);border-color:var(--qy-mark)}
.qy-mkbig i{width:14px;height:22px}

/* ---- the grid: twenty rows, six columns, read across AND down */
.qy-gridwrap{overflow-x:auto;border:1px solid var(--qy-rule);background:var(--qy-raise)}
table.qy-grid{border-collapse:collapse;width:100%;min-width:760px;font-size:.9rem}
.qy-grid th,.qy-grid td{border:1px solid var(--qy-rule);padding:.55rem .6rem;text-align:center;vertical-align:middle}
.qy-grid thead th{background:var(--qy-pane);font-family:var(--qy-body);font-weight:700;
  font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:var(--qy-lit);line-height:1.3}
.qy-grid th[scope="row"]{text-align:left;font-weight:400;font-family:var(--qy-display);font-size:1.02rem;
  min-width:14rem}
.qy-grid th[scope="row"] a{color:var(--qy-ink);text-decoration:none}
.qy-grid th[scope="row"] a:hover{color:var(--qy-lit);text-decoration:underline}
.qy-grid td.on{background:var(--qy-mark)}
.qy-grid td.on span{color:var(--qy-markink);font-weight:700;font-size:.8rem;letter-spacing:.04em}
.qy-grid td.off span{color:var(--qy-soft);opacity:.5}
.qy-grid .qy-cost{font-family:var(--qy-display);color:var(--qy-lit);white-space:nowrap;text-align:right}

/* ---- overlapping cards: the tile hangs across the section boundary */
.qy-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.4rem;
  margin:1.6rem 0 -4rem;position:relative;z-index:2}
.qy-tile{background:var(--qy-ground);border:1px solid var(--qy-rule);
  box-shadow:0 14px 30px rgba(0,0,0,.24);display:flex;flex-direction:column}
.qy-tile img{width:100%;aspect-ratio:16/9;object-fit:cover}
.qy-tilein{padding:1.05rem 1.15rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.qy-tilename{margin:0;font-family:var(--qy-display);font-weight:400;font-size:1.2rem;line-height:1.25}
.qy-tilename a{color:var(--qy-ink);text-decoration:none}
.qy-tilename a:hover{color:var(--qy-lit);text-decoration:underline}
.qy-tile p{margin:0;font-size:.92rem;color:var(--qy-soft)}
.qy-cost{font-family:var(--qy-display);font-size:1.35rem;color:var(--qy-lit);margin-top:auto;padding-top:.5rem}
.qy-sec--overlap{padding-top:5.4rem}

/* ---- label/value rows */
.qy-rows{border-top:2px solid var(--qy-rule);margin:1.4rem 0 0}
.qy-rows>div{display:grid;grid-template-columns:minmax(9rem,16rem) 1fr;gap:.3rem 1.6rem;
  border-bottom:1px solid var(--qy-rule);padding:.92rem 0}
.qy-rows dt{font-weight:700;font-size:.86rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--qy-lit);margin:0}
.qy-rows dd{margin:0}
@media(max-width:640px){.qy-rows>div{grid-template-columns:1fr}}

/* ---- two column pane */
.qy-two{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--qy-rule);
  background:var(--qy-raise);margin:1.5rem 0}
.qy-two>div{padding:1.5rem 1.6rem}
.qy-two>div+div{border-left:1px solid var(--qy-rule)}
@media(max-width:800px){.qy-two{grid-template-columns:1fr}.qy-two>div+div{border-left:0;border-top:1px solid var(--qy-rule)}}

/* ---- picture bands, with an overhanging caption plate */
.qy-band{position:relative;border-block:1px solid var(--qy-rule)}
.qy-band img{width:100%;height:clamp(240px,34vw,460px);object-fit:cover}
.qy-cap{width:var(--qy-hold);margin:-3.2rem auto 0;position:relative;z-index:2;
  background:var(--qy-mark);color:var(--qy-markink);padding:1.1rem 1.4rem;max-width:min(62ch,80%);
  border-left:6px solid var(--qy-second)}
.qy-cap p{margin:0;font-weight:500}
.qy-fig{margin:1.9rem 0}
.qy-fig img{border:1px solid var(--qy-rule);width:100%;height:clamp(220px,30vw,400px);object-fit:cover}
.qy-fig figcaption{font-size:.88rem;color:var(--qy-soft);margin-top:.6rem;max-width:62ch}

/* ---- form */
.qy-form{background:var(--qy-raise);border:1px solid var(--qy-rule);border-left:6px solid var(--qy-mark);
  padding:1.7rem 1.6rem;margin-top:1.5rem}
.qy-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem 1.4rem}
.qy-form label{display:block;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;
  font-weight:700;color:var(--qy-lit);margin:0 0 .35rem}
.qy-form input,.qy-form select,.qy-form textarea{width:100%;font:inherit;font-size:.98rem;
  padding:.62rem .7rem;background:var(--qy-ground);color:var(--qy-ink);
  border:1px solid var(--qy-rule);border-radius:0}
.qy-form textarea{min-height:8.5rem;resize:vertical}
.qy-wide{grid-column:1/-1}
.qy-btn{display:inline-block;background:var(--qy-mark);color:var(--qy-markink);border:0;font:inherit;
  font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.9rem;
  padding:.85rem 1.7rem;cursor:pointer;text-decoration:none;margin-top:1.2rem}
.qy-btn:hover{background:var(--qy-second);color:#fff}
.qy-fine{font-size:.87rem;color:var(--qy-soft);margin-top:.9rem;max-width:64ch}
.qy-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.qy-slot{border:1px dashed var(--qy-rule);background:var(--qy-raise);padding:1.5rem 1.6rem;margin-top:1.4rem}
.qy-fb{margin:0 0 1.1rem}
.qy-fb-head{margin:0 0 .9rem;font-weight:700;font-size:1.02rem;color:var(--qy-ink)}
.qy-fb-grid{display:grid;gap:.85rem}
.qy-fb-set{border:1px solid var(--qy-rule);border-radius:4px;padding:.7rem .85rem .85rem;
 margin:0;background:var(--qy-pane)}
.qy-fb-set legend{padding:0 .35rem;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;
 color:var(--qy-soft);font-weight:700}
.qy-fb-row{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr))}
.qy-fb-box{position:relative;display:flex;flex-direction:column;gap:.3rem;min-width:0}
.qy-fb-box label{font-size:.85rem;font-weight:600;color:var(--qy-ink)}
.qy-fb-aside{font-weight:400;color:var(--qy-soft)}
.qy-fb-box input,.qy-fb-box select{font:inherit;font-size:.95rem;padding:.65rem .7rem;
 border:1px solid var(--qy-rule);border-radius:3px;background:var(--qy-ground);
 color:var(--qy-ink);width:100%}
.qy-fb-box input:focus,.qy-fb-box select:focus{outline:2px solid var(--qy-lit);outline-offset:1px}
.qy-fb-box.is-short input{border-color:var(--qy-lit)}
.qy-fb-say{margin:0;font-size:.8rem;color:var(--qy-lit);font-weight:600}
.qy-fb-offer{position:absolute;top:100%;left:0;right:0;z-index:30;margin:.2rem 0 0;padding:0;
 list-style:none;background:var(--qy-ground);border:1px solid var(--qy-rule);border-radius:3px;
 max-height:17rem;overflow:auto;box-shadow:0 .5rem 1.2rem rgba(0,0,0,.4)}
.qy-fb-offer li{margin:0}
.qy-fb-offer button{display:block;width:100%;text-align:left;font:inherit;font-size:.88rem;
 padding:.55rem .7rem;border:0;background:none;color:var(--qy-ink);cursor:pointer}
.qy-fb-offer button:hover,.qy-fb-offer [aria-selected="true"] button{background:var(--qy-raise)}
.qy-fb-code{font-weight:700;color:var(--qy-secondlit)}
.qy-fb-reach{margin:.9rem 0 0;padding:.7rem .85rem;font-size:.88rem;line-height:1.55;
 color:var(--qy-ink);background:var(--qy-pane);border-left:3px solid var(--qy-secondlit);
 border-radius:0 3px 3px 0}
.qy-fb-reach a{color:var(--qy-secondlit)}
.qy-fb-go{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:1rem}
.qy-fb-go button{font:inherit;font-weight:700;font-size:.95rem;padding:.7rem 1.3rem;border:0;
 border-radius:3px;background:var(--qy-mark);color:var(--qy-markink);cursor:pointer}
.qy-fb-go button[disabled]{opacity:.45;cursor:not-allowed}
.qy-fb-status{margin:0;font-size:.85rem;color:var(--qy-lit);font-weight:600}
.qy-fb-note{margin:1.1rem 0 0;font-size:.86rem;line-height:1.6;color:var(--qy-soft)}
.qy-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;
 background:var(--qy-pane);border:1px solid var(--qy-rule);border-radius:3px;padding:0 .3rem;
 white-space:nowrap}
.qy-slot p{margin:0;color:var(--qy-soft);font-size:.95rem}

/* ---- footer: A CENTRED STAMP. None of the shapes already spent here: not three <ul> columns
   (eight siblings, four of them one stylesheet renamed), not the ruled <table> ledger, not the
   right-flush <dl>, not the two-cell bordered grid. And every sibling footer is left aligned or
   flush right; this one is centred, which is itself unused. */
.qy-foot{background:var(--qy-raise);border-top:5px solid var(--qy-mark);margin-top:3.4rem;padding:2.8rem 0 3rem}
.qy-stamp{width:min(52rem,100% - 2.6rem);margin-inline:auto;text-align:center;
  border:2px solid var(--qy-rule);background:var(--qy-ground);padding:1.8rem 1.6rem}
.qy-stamp address{font-style:normal;font-family:var(--qy-display);font-size:1.18rem;line-height:1.55}
.qy-stamp address a{color:var(--qy-ink);text-decoration:none}
.qy-stamp address a:hover{color:var(--qy-lit);text-decoration:underline}
.qy-flinks{width:min(60rem,100% - 2.6rem);margin:1.4rem auto 0;text-align:center;
  font-size:.9rem;color:var(--qy-soft);line-height:2.1}
.qy-flinks a{color:var(--qy-soft);text-decoration:none;border-bottom:1px solid var(--qy-rule)}
.qy-flinks a:hover{color:var(--qy-lit);border-color:var(--qy-lit)}
.qy-sep{color:var(--qy-rule);padding:0 .36rem}
.qy-legal{width:min(86ch,100% - 2.6rem);margin:1.5rem auto 0;font-size:.85rem;
  color:var(--qy-soft);text-align:center}

/* ---- reveal: movement only, never opacity. A faded block stays invisible in a background tab
   because the timer that would finish the fade is throttled. */
.qy-rise{transform:translateY(12px);transition:transform .5s ease}
.qy-rise.qy-in{transform:none}
@media(prefers-reduced-motion:reduce){.qy-rise{transform:none;transition:none}}
