/* The Keep: the member area (members/index.html, members/rsa-press/, rsa-press/welcome/).
   One set of k- components drawn from tokens. The service pages use the navy defaults below;
   the hub (members/index.html, `.keep.hub` + `html.k-day`) re-points the same tokens to daylight:
   parchment, warm gold and navy ink. Everything is scoped under .keep so the site chrome is untouched. */
.keep{--k-gold:#f2b344;--k-gold-2:#ffd27a;--k-gold-ink:var(--k-gold);--k-num:var(--k-gold-2);--k-mint:#6fe3b4;--k-mint-ink:var(--k-mint);--k-red:#ff7a6b;
  --k-ink:#e9e4d8;--k-head:#fff;--k-mut:#a9b8ce;--k-dim:#7d8ba1;--k-deep:#0b111c;--k-field:#0a111c;--k-scheme:dark;
  --k-card:rgba(13,21,36,.86);--k-card-2:rgba(18,29,48,.92);--k-glass:rgba(8,13,22,.72);--k-line:rgba(242,179,68,.18);--k-line-2:rgba(242,179,68,.34);
  --k-mono:'JetBrains Mono','IBM Plex Mono',ui-monospace,monospace;--k-fell:'IM Fell English',Georgia,serif;--k-sans:'IBM Plex Sans',Inter,system-ui,sans-serif;
  position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:6.5rem 1.25rem 4rem;color:var(--k-ink);font-family:var(--k-sans)}
.keep *{box-sizing:border-box}
.keep [hidden]{display:none!important}
.keep a{color:var(--k-gold-ink)}
.keep button{font:inherit}
.keep :focus-visible{outline:2px solid var(--k-gold-ink);outline-offset:2px}
.k-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* hero (service pages) */
.k-hero{position:relative;overflow:hidden;border:1px solid var(--k-line-2);border-radius:18px;min-height:250px;padding:2rem 2rem 1.6rem;
  display:flex;flex-direction:column;justify-content:flex-end;background:var(--k-deep)}
.k-hero .plate{position:absolute;inset:0;background-size:cover;background-position:center 40%;opacity:.95}
.k-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,13,22,.92) 0%,rgba(8,13,22,.62) 48%,rgba(8,13,22,.12) 100%),linear-gradient(0deg,rgba(8,13,22,.85),transparent 60%)}
.k-hero>*:not(.plate){position:relative;z-index:1}
.k-eyebrow{font:500 .72rem/1 var(--k-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--k-mint-ink)}
.k-hero h1{font:400 clamp(2rem,4.6vw,3.1rem)/1.05 var(--k-fell);margin:.55rem 0 .35rem;color:var(--k-head)}
.k-hero h1 em{color:var(--k-gold);font-style:italic}
.k-date{font:400 .8rem var(--k-mono);color:var(--k-mut);letter-spacing:.08em}
.k-stats{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.1rem}
.k-stat{min-width:150px;padding:.7rem .95rem;border:1px solid var(--k-line);border-radius:12px;background:var(--k-glass);backdrop-filter:blur(4px)}
.k-stat b{display:block;font:400 1.7rem/1.1 var(--k-fell);color:var(--k-num)}
.k-stat span{font:500 .66rem var(--k-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--k-mut)}
.k-ring{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;float:right;margin-left:.6rem;
  background:conic-gradient(var(--k-gold) calc(var(--p,0)*1%),rgba(242,179,68,.14) 0);font:700 .7rem var(--k-mono);color:var(--k-head)}
.k-ring i{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--k-deep);font-style:normal}

/* layout */
.k-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:1rem;align-items:start}
.k-grid>*{min-width:0}
.k-card{border:1px solid var(--k-line);border-radius:16px;background:var(--k-card);padding:1.15rem 1.2rem}
.k-card+.k-card{margin-top:1rem}
.k-card h2,.k-card h3{font:400 1.45rem/1.15 var(--k-fell);margin:0;color:var(--k-head)}
.k-card-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.9rem;flex-wrap:wrap}
.k-sub{color:var(--k-mut);font-size:.9rem;line-height:1.55;margin:.25rem 0 0}
.k-label{font:600 .66rem var(--k-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim)}
.k-num{color:var(--k-num)}
.k-err{color:var(--k-red)}

/* buttons */
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:40px;padding:.55rem 1rem;border-radius:10px;cursor:pointer;
  border:1px solid var(--k-gold);background:var(--k-gold);color:#14100a;font:700 .74rem var(--k-mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.k-btn:hover{background:var(--k-gold-2)}
.k-btn.ghost{background:transparent;color:var(--k-gold-ink);border-color:var(--k-line-2)}
.k-btn.ghost:hover{border-color:var(--k-gold);background:rgba(242,179,68,.08)}
.k-btn.sm{min-height:34px;padding:.35rem .7rem;font-size:.66rem}
.k-btn.danger{background:transparent;border-color:rgba(255,122,107,.45);color:var(--k-red)}
.k-btn[disabled]{opacity:.5;cursor:not-allowed}

/* progress */
.k-bar{height:8px;border-radius:99px;background:rgba(242,179,68,.14);overflow:hidden;margin:.2rem 0 1rem}
.k-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--k-gold),var(--k-mint));transition:width .5s ease}

/* run list */
.k-run{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.k-row{display:grid;grid-template-columns:auto 44px minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.6rem .7rem;border:1px solid var(--k-line);
  border-radius:12px;background:var(--k-card-2);transition:border-color .2s,opacity .2s}
.k-row.done{opacity:.6;border-color:rgba(111,227,180,.45)}
.k-row.done .k-name{text-decoration:line-through;text-decoration-color:var(--k-mint)}
.k-check{appearance:none;width:24px;height:24px;margin:0;border-radius:7px;border:1.5px solid var(--k-line-2);background:transparent;cursor:pointer;display:grid;place-items:center}
.k-check:checked{background:var(--k-mint);border-color:var(--k-mint)}
.k-check:checked::after{content:"";width:6px;height:11px;border:solid #0b1a14;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}
.k-logo{width:44px;height:44px;border-radius:10px;object-fit:cover;background:var(--k-deep);border:1px solid var(--k-line)}
.k-name,.k-chip-name{font-weight:700;color:var(--k-head);display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.k-meta{font-size:.8rem;color:var(--k-mut);margin-top:.15rem;line-height:1.4}
.k-tier{font:700 .6rem var(--k-mono);letter-spacing:.1em;padding:.15rem .4rem;border-radius:5px;border:1px solid var(--k-line-2);color:var(--k-gold-ink)}
.k-tier.t-S{background:rgba(242,179,68,.16)}
.k-tier.t-NEW{color:var(--k-mint-ink);border-color:rgba(111,227,180,.5)}
.k-flag{font:600 .6rem var(--k-mono);letter-spacing:.06em;padding:.15rem .4rem;border-radius:5px;background:rgba(255,122,107,.12);color:var(--k-red);border:1px solid rgba(255,122,107,.4)}
.k-acts{display:flex;gap:.35rem;align-items:center}

/* drops + alerts */
.k-drops{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.k-drop{display:flex;align-items:center;gap:.6rem;justify-content:space-between;padding:.55rem .65rem;border-radius:10px;border:1px dashed var(--k-line-2);font-size:.86rem}
.k-drop.mine{border-style:solid;border-color:rgba(111,227,180,.55);background:rgba(111,227,180,.08)}
.k-drop small{display:block;color:var(--k-dim);font:500 .66rem var(--k-mono);letter-spacing:.06em;margin-top:.15rem}
.k-alert{display:flex;gap:.75rem;align-items:flex-start;padding:.8rem .9rem;border-radius:12px;border:1px solid var(--k-line);background:var(--k-card-2)}
.k-alert+.k-alert{margin-top:.5rem}
.k-alert .dot{flex:0 0 10px;height:10px;margin-top:.35rem;border-radius:50%;background:var(--k-gold)}
.k-alert.bad .dot{background:var(--k-red)}
.k-alert.good .dot{background:var(--k-mint)}
.k-alert b{color:var(--k-head)}
.k-alert p{margin:.15rem 0 0;color:var(--k-mut);font-size:.86rem;line-height:1.5}

/* ledger */
.k-sums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}
.k-sum{padding:.75rem .85rem;border-radius:12px;border:1px solid var(--k-line);background:var(--k-card-2)}
.k-sum b{display:block;font:400 1.45rem/1.1 var(--k-fell);color:var(--k-num)}
.k-sum.pos b{color:var(--k-mint-ink)}
.k-sum.neg b{color:var(--k-red)}
.k-form{display:grid;grid-template-columns:1.4fr .9fr .8fr .9fr .9fr auto;gap:.5rem;align-items:end}
.k-field{display:grid;gap:.3rem}
.k-field input,.k-field select,.k-input{width:100%;min-height:40px;padding:.5rem .65rem;border-radius:9px;border:1px solid var(--k-line-2);
  background:var(--k-field);color:var(--k-ink);font:500 .9rem var(--k-sans);color-scheme:var(--k-scheme)}
.k-table-wrap{overflow-x:auto;margin-top:1rem}
.k-table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:620px}
.k-table th{text-align:left;font:600 .62rem var(--k-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--k-dim);padding:.5rem .55rem;border-bottom:1px solid var(--k-line)}
.k-table td{padding:.6rem .55rem;border-bottom:1px solid var(--k-line);vertical-align:middle}
.k-pill{font:600 .62rem var(--k-mono);letter-spacing:.08em;text-transform:uppercase;padding:.2rem .45rem;border-radius:99px}
.k-pill.pending{background:rgba(242,179,68,.16);color:var(--k-gold-ink)}
.k-pill.paid{background:rgba(111,227,180,.16);color:var(--k-mint-ink)}
.k-pill.buy{background:rgba(169,184,206,.18);color:var(--k-mut)}
.k-bal{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem}
.k-bal label{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:10px;border:1px solid var(--k-line);background:var(--k-card-2);font-size:.85rem}
.k-bal label span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-bal input{width:84px;min-height:34px;padding:.3rem .45rem;border-radius:8px;border:1px solid var(--k-line-2);background:var(--k-field);color:var(--k-ink);text-align:right;color-scheme:var(--k-scheme)}
.k-bal label.ready{border-color:rgba(111,227,180,.6)}
.k-bal label.ready::after{content:"READY";font:700 .55rem var(--k-mono);color:var(--k-mint-ink);letter-spacing:.1em}

/* picker */
.k-picker{display:grid;gap:.6rem;margin-bottom:1rem}
.k-picker-tools{display:flex;gap:.5rem;flex-wrap:wrap}
.k-picker-tools .k-input{flex:1 1 220px}
.k-picker-tools select.k-input{flex:0 0 150px}
.k-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.45rem;max-height:430px;overflow:auto;padding-right:.2rem}
.k-chip{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;border-radius:10px;border:1px solid var(--k-line);background:var(--k-card-2);cursor:pointer;font-size:.85rem}
.k-chip img{width:30px;height:30px;border-radius:7px}
.k-chip.on{border-color:var(--k-gold);background:rgba(242,179,68,.14)}
.k-chip.off{opacity:.5}
.k-chip input{position:absolute;opacity:0;width:1px;height:1px}
.k-chip:focus-within{outline:2px solid var(--k-gold-ink);outline-offset:2px}

/* onboarding + misc */
.k-welcome{display:grid;grid-template-columns:1.1fr 1fr;gap:1rem}
.k-steps{counter-reset:k;display:grid;gap:.9rem;margin:1rem 0 0;padding:0;list-style:none}
.k-steps li{counter-increment:k;display:grid;grid-template-columns:34px 1fr;gap:.7rem;align-items:start}
.k-steps li>div{display:grid;gap:.4rem;min-width:0}
.k-steps li::before{content:counter(k);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--k-line-2);font:400 1.1rem var(--k-fell);color:var(--k-gold-ink)}
.k-empty{color:var(--k-mut);font-size:.9rem;padding:.8rem 0}
.k-note{font-size:.8rem;color:var(--k-dim);line-height:1.55;margin:.9rem 0 0}
.k-steps .k-note{margin:0}
.k-toast{position:fixed;left:50%;bottom:1.4rem;transform:translate(-50%,140%);z-index:9999;display:flex;gap:.8rem;align-items:center;padding:.7rem .9rem .7rem 1.1rem;
  border-radius:12px;border:1px solid rgba(242,179,68,.34);background:#13213a;color:#fff;font-size:.88rem;box-shadow:0 12px 40px rgba(0,0,0,.35);transition:transform .3s ease,visibility .3s;visibility:hidden}
.k-toast.show{transform:translate(-50%,0);visibility:visible}
.k-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.k-split>.k-card+.k-card{margin-top:0}
.k-row-settings{display:grid;gap:.9rem;max-width:520px;margin-top:1rem}
.k-check-line{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--k-mut)}
.k-check-line input{margin-top:.2rem;accent-color:var(--k-gold)}
.k-count{display:inline-block;min-width:1.4em;margin-left:.4em;padding:0 .35em;border-radius:99px;background:var(--k-red);color:#fff;font:700 .68rem/1.5 var(--k-mono);text-align:center}

@media (max-width:900px){.k-grid,.k-welcome,.k-split{grid-template-columns:1fr}.k-split>.k-card+.k-card{margin-top:0}.k-sums{grid-template-columns:1fr 1fr}.k-form{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.keep{padding-top:5.2rem}.k-hero{padding:1.4rem 1.1rem 1.1rem;min-height:220px}.k-stat{min-width:0;flex:1 1 40%}
  .k-row{grid-template-columns:auto 38px minmax(0,1fr);}.k-row .k-acts{grid-column:2/-1;justify-content:flex-start}.k-logo{width:38px;height:38px}}
@media (prefers-reduced-motion:reduce){.k-bar i,.k-toast,.k-row{transition:none}}
/* the site's global a[class*="btn"] rule paints every button gold with !important; keep the Keep's variants */
.keep .k-btn{border-radius:10px!important}
.keep .k-btn.ghost{background:transparent!important;color:var(--k-gold-ink)!important;border:1px solid var(--k-line-2)!important;box-shadow:none!important}
.keep .k-btn.ghost:hover{background:rgba(242,179,68,.12)!important;border-color:var(--k-gold)!important}
.keep .k-btn.danger{background:transparent!important;color:var(--k-red)!important;border:1px solid rgba(255,122,107,.5)!important;box-shadow:none!important}
.keep.hub [class*="label"]:not(label){color:var(--k-dim)}

/* services: the paid tools a member runs with us (js/osh-services.js) */
.k-svc-head{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem 1rem;margin:1.6rem 0 .7rem;flex-wrap:wrap}
.k-svc-head h2,.k-svc-head h3{font:400 1.45rem var(--k-fell);margin:0;color:var(--k-head)}
.k-svcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem;margin-bottom:1.4rem}
.k-svc{display:flex;flex-direction:column;gap:.55rem;padding:1.1rem 1.15rem;border:1px solid var(--k-line);border-radius:14px;background:var(--k-card);text-decoration:none;color:var(--k-ink);transition:border-color .2s,transform .2s}
a.k-svc:hover{border-color:var(--k-line-2);transform:translateY(-2px)}
.k-svc h3{font:400 1.25rem var(--k-fell);margin:0;color:var(--k-head)}
.k-svc p{margin:0;font-size:.9rem;line-height:1.5;color:var(--k-mut)}
.k-svc .k-svc-status{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font:500 .7rem var(--k-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--k-mut)}
.k-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.4rem;background:var(--k-dim);vertical-align:1px}
.k-dot.ok{background:var(--k-mint);box-shadow:0 0 8px rgba(111,227,180,.6)}
.k-dot.bad{background:var(--k-red)}
.k-dot.warn{background:var(--k-gold)}
.k-svc .k-svc-go{margin-top:auto;font:600 .72rem var(--k-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-gold-ink)}

/* RSA Press service page (members/rsa-press/, js/rsa-service.js) */
.r-steps li.done::before{content:"\2713";background:rgba(111,227,180,.14);border-color:var(--k-mint);color:var(--k-mint)}
.r-steps li.done .k-acts{display:none}
.r-steps .k-acts{margin-top:.5rem}
.r-list{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:.45rem}
.r-list li{display:flex;justify-content:space-between;gap:.8rem;padding:.55rem .7rem;border:1px solid rgba(242,179,68,.1);border-radius:10px;background:rgba(8,13,22,.5);font-size:.88rem}
.r-list li small{font:500 .68rem var(--k-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--k-mut)}
.r-side-buy{color:var(--k-mint)}.r-side-sell{color:var(--k-gold-2)}
.k-signin{display:grid;grid-template-columns:1fr 1.2fr;gap:1.2rem;align-items:center;margin-bottom:1.4rem}
.k-signin .k-form{grid-template-columns:1fr 1fr auto;align-items:end}
.k-link{all:unset;cursor:pointer;color:var(--k-gold-ink)}
.k-link:hover,.k-link:focus-visible{text-decoration:underline}
@media (max-width:760px){.k-signin,.k-signin .k-form{grid-template-columns:1fr}}


/* ==================================================================
   THE HUB IN DAYLIGHT (members/index.html)
   A sunlit great hall: parchment ground, warm gold, navy ink for text. The site's dark nav and
   footer frame it. Gold is a fill colour here; text that needs gold uses the deeper --k-gold-ink
   so it passes AA on parchment.
   ================================================================== */
html.k-day{background-color:#f3e7cc!important}
html.k-day body{color:#1d2a40}
html.k-day body::before{content:""!important;position:fixed;inset:0;z-index:-2!important;pointer-events:none;filter:none!important;
  background:radial-gradient(70% 45% at 78% -6%,rgba(255,226,150,.85),rgba(255,226,150,0) 70%),
             radial-gradient(60% 40% at 0% 0%,rgba(255,244,214,.9),rgba(255,244,214,0) 70%),
             linear-gradient(180deg,#fbf3e1 0%,#f5e9cf 55%,#efdfbd 100%)!important}
html.k-day body::after{content:""!important;position:fixed;inset:0;z-index:-1!important;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(115deg,rgba(150,105,30,.035) 0 2px,transparent 2px 9px)!important;background-size:auto!important}
html.k-day footer.hp-foot{background:#0f1c30!important;margin-top:0}

.keep.hub{--k-gold:#f2b344;--k-gold-2:#f7c867;--k-gold-ink:#7f520a;--k-num:#13213a;--k-mint:#45c896;--k-mint-ink:#16694a;--k-red:#a8382b;
  --k-ink:#1d2a40;--k-head:#13213a;--k-mut:#46536a;--k-dim:#5e6879;--k-deep:#f3e5c4;--k-field:#fffdf7;--k-scheme:light;
  --k-card:#fffaf0;--k-card-2:#fdf5e4;--k-glass:rgba(255,250,238,.9);--k-line:rgba(127,82,10,.18);--k-line-2:rgba(127,82,10,.36);
  max-width:1180px;padding:1.6rem 1.25rem 4.5rem}
.keep.hub h1,.keep.hub h2,.keep.hub h3{text-shadow:none!important;letter-spacing:0!important}
.keep.hub [class*="card"]:hover{box-shadow:0 18px 40px -26px rgba(127,82,10,.45)}
.keep.hub .k-card{border-radius:4px!important;box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 14px 34px -28px rgba(80,52,10,.5)}
.keep.hub .k-card h3{font-size:1.4rem}
.keep.hub .k-btn{border-radius:4px!important;color:#13213a!important;background:var(--k-gold)!important;border-color:#d9962a!important}
.keep.hub a.k-btn:hover,.keep.hub button.k-btn:hover{background:#ffd27a!important}
.keep.hub .k-btn.ghost{background:rgba(255,253,247,.7)!important;color:var(--k-gold-ink)!important}
.keep.hub .k-btn.danger{background:transparent!important}
.keep.hub .k-check:checked::after{border-color:#fff}
.keep.hub .k-drop{background:var(--k-card-2)}

/* hero */
.h-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:1.25rem;align-items:end;min-height:440px;padding:1.4rem;
  border:1px solid var(--k-line-2);outline:1px solid rgba(127,82,10,.14);outline-offset:5px;overflow:hidden;isolation:isolate;
  background:url(/images/heliopulp/hub-dawn-hall.webp) center 35%/cover no-repeat,
             radial-gradient(60% 80% at 82% 18%,#fff6d6 0%,#ffe2a0 22%,rgba(255,226,160,0) 60%),
             linear-gradient(160deg,#f9e2ab 0%,#f1c477 38%,#dd9f62 70%,#9fb2c9 100%);
  box-shadow:0 40px 70px -40px rgba(100,64,10,.55);animation:h-rise .7s ease both}
.h-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(251,243,225,.55) 0%,rgba(251,243,225,.15) 55%,rgba(251,243,225,0) 100%)}
.h-hero-copy{background:var(--k-glass);backdrop-filter:blur(6px);border:1px solid var(--k-line);padding:1.5rem 1.5rem 1.35rem;max-width:560px;animation:h-rise .7s .1s ease both}
.h-hero h1{font:400 clamp(2.1rem,5vw,3.4rem)/1.02 var(--k-fell)!important;margin:.6rem 0 .35rem;color:var(--k-head)!important}
.h-hero h1 em{color:var(--k-gold-ink)!important;font-style:italic}
.h-hero h1 span{color:var(--k-head)!important;font-style:normal}
.h-next{display:grid;gap:.35rem;margin-top:1.1rem;padding:1rem 1.05rem;border-left:3px solid var(--k-gold);background:linear-gradient(90deg,rgba(242,179,68,.16),rgba(242,179,68,.03))}
.h-next b{font:400 1.45rem/1.15 var(--k-fell);color:var(--k-head)}
.h-next p{margin:0;color:var(--k-mut);font-size:.92rem;line-height:1.5}
.h-next .k-btn{justify-self:start;margin-top:.35rem}
.h-next.done{border-left-color:var(--k-mint)}
.h-hero-side{display:grid;gap:.7rem;justify-items:end;animation:h-rise .7s .2s ease both}
.h-hero-side .k-stats{margin:0;justify-content:flex-end}
.keep.hub .k-stat{border-radius:4px;min-width:150px;border-color:var(--k-line-2)}
.keep.hub .k-stat b{font-size:1.85rem}
.keep.hub .k-ring{width:50px;height:50px;background:conic-gradient(var(--k-mint) calc(var(--p,0)*1%),rgba(127,82,10,.15) 0)}
.keep.hub .k-ring i{width:40px;height:40px;background:#fffaf0}
.h-week{background:var(--k-glass);border:1px solid var(--k-line-2);padding:.65rem .8rem;backdrop-filter:blur(6px)}
.h-week ol{display:flex;gap:.4rem;list-style:none;margin:.45rem 0 0;padding:0}
.h-day{display:grid;justify-items:center;gap:.25rem;font:600 .6rem var(--k-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--k-dim)}
.h-day i{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--k-line-2);background:#fffdf7}
.h-day.part i{background:conic-gradient(var(--k-gold) 50%,#fffdf7 0)}
.h-day.full i{background:var(--k-gold);border-color:#c98a1c;box-shadow:0 0 10px rgba(242,179,68,.55)}
.h-day.today i{outline:2px solid var(--k-head);outline-offset:2px}
.h-day.today span:not(.k-sr){color:var(--k-head)}
@keyframes h-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* section nav */
.keep.hub .h-jump{position:sticky;top:58px;z-index:30;display:flex;gap:.25rem;margin:1.6rem 0 0;padding:.35rem;overflow-x:auto;scrollbar-width:none;
  background:rgba(255,250,238,.94)!important;backdrop-filter:blur(8px);border:1px solid var(--k-line-2)!important;box-shadow:0 10px 24px -20px rgba(80,52,10,.6)}
.h-jump::-webkit-scrollbar{display:none}
.h-jump a{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.4rem .9rem;text-decoration:none;white-space:nowrap;
  font:600 .7rem var(--k-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--k-mut)!important}
.h-jump a:hover{color:var(--k-head)!important;background:rgba(242,179,68,.12)}
.h-jump a[aria-current]{color:var(--k-head)!important;background:linear-gradient(180deg,rgba(242,179,68,.4),rgba(242,179,68,.2));box-shadow:inset 0 -2px 0 var(--k-gold)}

/* sections */
.h-sec{padding-top:2.6rem;scroll-margin-top:120px}
.h-sec-head{margin-bottom:1.1rem;max-width:760px}
.h-sec-head h2{font:400 clamp(1.9rem,3.6vw,2.6rem)/1.08 var(--k-fell)!important;margin:.45rem 0 .2rem;color:var(--k-head)!important}
.h-sec-head .k-sub{font-size:.98rem}
.h-sec-art{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:1.4rem;align-items:center;max-width:none}
.h-art{min-height:150px;border:1px solid var(--k-line-2);outline:1px solid rgba(127,82,10,.12);outline-offset:4px;background-size:cover;background-position:center;
  box-shadow:0 20px 40px -30px rgba(100,64,10,.6)}
.h-art-daily{min-height:280px;background-image:url(/images/heliopulp/hub-dawn-hall.webp),linear-gradient(170deg,#fbe7b8,#f0c27a 45%,#d99a5c 80%,#b9c3cf)}
.h-art-crossroads{background-image:url(/images/heliopulp/hub-crossroads-day.webp),radial-gradient(50% 70% at 70% 10%,#fff4cf,rgba(255,244,207,0) 70%),linear-gradient(180deg,#bcd7ee 0%,#f3dca6 55%,#c9a46a 100%)}
.h-art-market{background-image:url(/images/heliopulp/hub-market-day.webp),radial-gradient(40% 60% at 20% 0%,#fff2c8,rgba(255,242,200,0) 70%),linear-gradient(180deg,#cfe1ef 0%,#f6dfa9 50%,#d6905a 100%)}
.h-art-workshop{background-image:url(/images/heliopulp/hub-workshop-day.webp),radial-gradient(45% 65% at 85% 15%,#fff3cf,rgba(255,243,207,0) 70%),linear-gradient(160deg,#f6e2b6 0%,#e4b979 55%,#a7744a 100%)}
.h-setup .k-sub{max-width:52ch}
.h-setup-acts{flex-wrap:wrap}
.h-aside .k-card+.k-card{margin-top:1rem}
.h-smart{border-left:3px solid var(--k-mint)!important}

/* tools */
.h-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}
.h-tool{position:relative;display:flex;flex-direction:column;gap:.45rem;padding:1.05rem 1.1rem 1rem;text-decoration:none;color:var(--k-ink)!important;
  background:var(--k-card);border:1px solid var(--k-line);border-top:3px solid var(--k-gold);transition:transform .2s,box-shadow .2s,border-color .2s}
.h-tool:hover{transform:translateY(-2px);border-color:var(--k-line-2);box-shadow:0 18px 34px -24px rgba(100,64,10,.6)}
.h-tool-tag{font:600 .6rem var(--k-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim)}
.h-tool h3{font:400 1.35rem/1.1 var(--k-fell)!important;margin:0;color:var(--k-head)!important}
.h-tool p{margin:0;font-size:.88rem;line-height:1.5;color:var(--k-mut)}
.h-tool-stat{font:600 .7rem var(--k-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--k-head)}
.h-tool-go{margin-top:auto;padding-top:.35rem;font:700 .68rem var(--k-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--k-gold-ink)}
.h-tool-go::after{content:" \2192"}
.keep.hub .k-svc{border-radius:0;border-top:3px solid #13213a;background:var(--k-card)}
.keep.hub .k-svc .k-svc-status{color:var(--k-head)}
.keep.hub .k-signin{border-left:3px solid var(--k-gold)!important}

/* explore */
.h-foryou{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-bottom:1.2rem}
.h-foryou:empty{display:none}
.h-pick{display:grid;gap:.3rem;align-content:start;padding:1rem 1.05rem;text-decoration:none;color:var(--k-mut)!important;font-size:.88rem;line-height:1.45;
  background:linear-gradient(160deg,#fff6dc,#fdeec8);border:1px solid rgba(201,138,28,.45);transition:transform .2s,box-shadow .2s}
.h-pick:hover{transform:translateY(-2px);box-shadow:0 18px 34px -24px rgba(100,64,10,.6)}
.h-pick b{font:400 1.25rem/1.15 var(--k-fell);color:var(--k-head)}
.h-explore{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:start}
.h-group{background:var(--k-card);border:1px solid var(--k-line);padding:1rem 1rem .6rem}
.h-group h3{display:flex;align-items:center;gap:.5rem;font:400 1.3rem/1.1 var(--k-fell)!important;margin:0 0 .6rem;color:var(--k-head)!important}
.h-group svg{flex:0 0 22px;width:22px;height:22px;fill:none;stroke:var(--k-gold-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.h-group ul{list-style:none;margin:0;padding:0}
.h-group li+li{border-top:1px solid var(--k-line)}
.h-group a{display:grid;gap:.1rem;padding:.55rem .35rem;margin:0 -.35rem;text-decoration:none;color:var(--k-mut)!important;font-size:.84rem;line-height:1.4}
.h-group a b{font-weight:600;font-size:.94rem;color:var(--k-head)}
.h-group a:hover{background:rgba(242,179,68,.12)}
.h-group a:hover b{text-decoration:underline;text-decoration-color:var(--k-gold);text-underline-offset:3px}

/* account */
.h-data-acts{flex-wrap:wrap;margin-top:1rem}
.h-file{position:relative;cursor:pointer}
.h-file input{position:absolute;opacity:0;width:1px;height:1px}
.h-file:focus-within{outline:2px solid var(--k-gold-ink);outline-offset:2px}

@media (max-width:1040px){.h-explore{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .h-hero{grid-template-columns:1fr;min-height:0;padding:1rem;padding-top:180px;background-position:center top,center,center}
  .h-hero-side{justify-items:stretch}.h-hero-side .k-stats{justify-content:stretch}
  .h-sec-art{grid-template-columns:1fr;gap:.9rem}.h-art{min-height:120px}.h-art-daily{min-height:160px}}
@media (max-width:560px){
  .keep.hub{padding:1rem 1rem 3.5rem}
  .h-hero{padding:.75rem;padding-top:150px;outline-offset:3px}
  .h-hero-copy{padding:1.1rem 1rem}
  .keep.hub .k-stat{min-width:0;flex:1 1 30%;padding:.55rem .6rem}
  .keep.hub .k-stat b{font-size:1.35rem}
  .keep.hub .k-stat span{font-size:.56rem;letter-spacing:.08em}
  .keep.hub .k-ring{display:none}
  .h-week ol{justify-content:space-between}
  .keep.hub .h-jump{top:56px;margin-left:-1rem;margin-right:-1rem;border-left:0!important;border-right:0!important}
  .h-jump a{padding:.4rem .7rem;font-size:.64rem;letter-spacing:.1em}
  .h-explore{grid-template-columns:1fr}
  .k-sums{grid-template-columns:1fr 1fr}
  .k-sum b{font-size:1.2rem}}
@media (prefers-reduced-motion:reduce){.h-hero,.h-hero-copy,.h-hero-side{animation:none}.h-tool,.h-pick{transition:none}}
