/* HK Cover Desk - "the Gallery": a dark room, ivory type, one emerald light.
   Colour rule: ivory = content and the main action. Emerald = alive / done / the one accent.
   Amber = needs your eye. Red = problem. Nothing else is coloured. */
:root{
  --ink:#060908; --s1:#0b0f0d; --s2:#101513; --s3:#161c19; --s4:#1e2622;
  --hair:rgba(228,255,244,.07); --hair2:rgba(228,255,244,.12); --hair3:rgba(228,255,244,.22);
  --paper:#f3f5ef; --text:#f0f3ed; --soft:#c2cac4; --muted:#87918a; --dim:#58615b;
  --acc:#5fe6b3; --acc2:#1fb287; --accbg:rgba(95,230,179,.1); --accline:rgba(95,230,179,.38);
  --good:#5fe6b3; --bad:#f2776c; --warn:#e8c26a;
  --goodbg:rgba(95,230,179,.1); --badbg:rgba(242,119,108,.11); --ybg:rgba(232,194,106,.1);
  /* legacy names used across the sheets, all mapped onto the one accent family */
  --c:#a9d8c6; --m:var(--acc); --y:var(--warn); --k:#070a09; --cbg:rgba(169,216,198,.08); --mbg:var(--accbg);
  --grad:linear-gradient(180deg,#fbfcf8,#dfe6dd);
  --gradacc:linear-gradient(180deg,#8df3cd,#3fcf9b);
  --rim:linear-gradient(150deg,rgba(236,255,247,.26),rgba(255,255,255,.04) 32%,rgba(255,255,255,.02) 64%,rgba(95,230,179,.26));
  --surf:linear-gradient(180deg,rgba(20,26,23,.86),rgba(10,14,12,.9));
  --raise:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px var(--hair),0 2px 4px rgba(0,0,0,.35),0 18px 40px -20px rgba(0,0,0,.8);
  --sink:inset 0 1px 3px rgba(0,0,0,.6),inset 0 -1px 0 rgba(255,255,255,.03),0 0 0 1px var(--hair);
  --r:20px; --r2:13px; --bar:66px;
  --ease:cubic-bezier(.16,1,.3,1); --spring:cubic-bezier(.2,.9,.15,1.2);
  --display:"Bodoni Moda","Playfair Display",Didot,Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Martian Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--ink);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;background:var(--ink);color:var(--text);font:400 14.500px/1.55 var(--sans);
  letter-spacing:-.003em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:-20%;z-index:-2;pointer-events:none;
  background:radial-gradient(42% 36% at 78% 8%,rgba(46,160,120,.16),transparent 70%),radial-gradient(40% 40% at 8% 88%,rgba(30,110,90,.13),transparent 70%),radial-gradient(30% 30% at 50% 50%,rgba(255,255,255,.02),transparent 70%);
  animation:aurora 46s ease-in-out infinite alternate}
@keyframes aurora{to{transform:translate3d(3%,-2%,0) scale(1.06)}}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
.hidden{display:none!important}
::selection{background:rgba(95,230,179,.3)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:8px}
#bg{display:none}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}

/* icons */
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.500;stroke-linecap:round;stroke-linejoin:round}
.ic .du{fill:currentColor;stroke:none;opacity:.14}
.ic .fi{fill:currentColor;stroke:none}
.ic.sm{width:16px;height:16px}.ic.big{width:26px;height:26px}

/* the mark: two stacked cover frames */
.mark{position:relative;width:30px;height:36px;flex:none;display:inline-block}
.mark i{position:absolute;border-radius:6px;transition:transform .6s var(--spring)}
.mark i:nth-child(1){inset:5px 9px 3px 1px;box-shadow:inset 0 0 0 1.500px rgba(240,243,237,.4);transform:rotate(-9deg)}
.mark i:nth-child(2){inset:2px 3px 4px 7px;background:linear-gradient(160deg,#8df3cd,#178f6c);box-shadow:0 6px 16px -4px rgba(95,230,179,.55),inset 0 1px 0 rgba(255,255,255,.5);transform:rotate(7deg)}
.mark i:nth-child(3){left:13px;top:9px;width:7px;height:2px;border-radius:2px;background:#062a1e;transform:rotate(7deg)}
.brand:hover .mark i:nth-child(1){transform:rotate(-16deg) translateX(-2px)}
.brand:hover .mark i:nth-child(2){transform:rotate(12deg) translateX(2px)}
.mark.busy{animation:markbob 1.300s ease-in-out infinite}
.mark.lg{transform:scale(1.5);margin:8px}
@keyframes markbob{50%{transform:translateY(-4px) rotate(4deg)}}
@keyframes markspin{to{transform:rotate(360deg)}}

/* shell */
.top{position:sticky;top:0;z-index:30;height:var(--bar);display:flex;align-items:center;gap:18px;
  padding:0 24px;padding-top:env(safe-area-inset-top,0);background:rgba(6,9,8,.7);backdrop-filter:blur(20px) saturate(150%);
  box-shadow:0 1px 0 var(--hair)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand-t{display:flex;flex-direction:column;line-height:1.05}
.brand-t b{font:500 italic 21px/1 var(--display);letter-spacing:-.01em}
.brand-t small{white-space:nowrap;font:400 8.500px/1.6 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.nav{position:relative;display:flex;gap:2px;margin:0 auto;padding:4px;border-radius:999px;background:rgba(255,255,255,.03);box-shadow:var(--sink)}
.nav button{white-space:nowrap;position:relative;z-index:1;display:flex;align-items:center;gap:8px;padding:8px 17px;border-radius:999px;
  color:var(--muted);font-weight:600;font-size:13.500px;transition:color .25s}
.nav button:hover{color:var(--text)}
.nav button.on{color:#0a100d}
.glide{position:absolute;z-index:0;top:4px;left:0;height:calc(100% - 8px);border-radius:999px;background:var(--grad);
  box-shadow:0 8px 24px -10px rgba(240,243,237,.6),inset 0 1px 0 #fff;transition:transform .45s var(--spring),width .45s var(--spring)}
.top-r{display:flex;align-items:center;gap:10px}
.pill-switch{white-space:nowrap;display:flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 12px;border-radius:999px;font-weight:600;font-size:13px;
  color:var(--muted);background:rgba(255,255,255,.035);box-shadow:0 0 0 1px var(--hair);transition:color .25s,box-shadow .25s,background .25s}
.pill-switch .sw{position:relative;width:34px;height:22px;border-radius:999px;background:rgba(255,255,255,.1);transition:background .25s}
.pill-switch .sw::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#7f8a83;transition:transform .35s var(--spring),background .25s}
.pill-switch.on{color:var(--text);background:var(--accbg);box-shadow:0 0 0 1px var(--accline),0 0 26px -10px var(--acc)}
.pill-switch.on .sw{background:var(--acc2)}
.pill-switch.on .sw::after{transform:translateX(12px);background:#fff}
.pill-switch.on .ic{color:var(--acc)}
.mode{white-space:nowrap;display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border-radius:999px;font:500 9px/1 var(--mono);
  letter-spacing:.14em;text-transform:uppercase;color:var(--warn);background:var(--ybg);box-shadow:0 0 0 1px rgba(232,194,106,.28)}
.mode::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.mode.live{color:var(--good);background:var(--goodbg);box-shadow:0 0 0 1px var(--accline)}
.mode.live::before{animation:breathe 2.400s ease-in-out infinite}
.me{display:flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:999px;color:var(--soft);font-weight:600;font-size:13px;background:rgba(255,255,255,.035);box-shadow:0 0 0 1px var(--hair)}
#page{max-width:1520px;margin:0 auto;padding:22px 28px 120px;animation:arrive .6s var(--ease)}
@keyframes arrive{from{opacity:0;transform:translateY(12px)}}
@keyframes breathe{50%{opacity:.35}}
.tabbar{display:none}

/* type */
.eyebrow{font:400 9.500px/1.5 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.h-display{font:400 clamp(40px,5.200vw,78px)/.94 var(--display);letter-spacing:-.025em}
.h-display em{font-style:italic;font-weight:400;color:var(--acc);background:linear-gradient(100deg,#c9ffe9,#5fe6b3 60%,#22b98b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.h2{font:500 italic 25px/1.1 var(--display);letter-spacing:-.01em}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}.soft{color:var(--soft)}

/* buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:9px;height:42px;padding:0 18px;border-radius:999px;
  font-weight:600;font-size:13.500px;white-space:nowrap;color:var(--text);background:rgba(255,255,255,.05);box-shadow:0 0 0 1px var(--hair2),inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .2s var(--ease),box-shadow .25s,background .25s,filter .2s,color .2s}
.btn:hover{background:rgba(255,255,255,.09);box-shadow:0 0 0 1px var(--hair3),inset 0 1px 0 rgba(255,255,255,.06)}
.btn:active{transform:scale(.97)}
.btn.primary,.btn.cyan{color:#0a100d;background:var(--grad);box-shadow:0 12px 30px -14px rgba(240,243,237,.7),inset 0 1px 0 #fff}
.btn.primary:hover,.btn.cyan:hover{filter:brightness(1.06)}
.btn.good{color:#04201a;background:var(--gradacc);box-shadow:0 12px 34px -12px rgba(95,230,179,.75),inset 0 1px 0 rgba(255,255,255,.55)}
.btn.good:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent}
.btn.danger{color:var(--bad);box-shadow:0 0 0 1px rgba(242,119,108,.35)}
.btn.sm{height:34px;padding:0 14px;font-size:12.500px}
.btn.wide{width:100%}
.btn[disabled]{opacity:.36;pointer-events:none}
.btn .n{font:500 10px/1 var(--mono);font-style:normal;padding:4px 7px;border-radius:999px;background:rgba(0,0,0,.16)}
.btn.busy{pointer-events:none}
.btn.busy::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);animation:sweep 1.100s linear infinite}
@keyframes sweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.icon-btn{position:relative;overflow:hidden;width:36px;height:36px;display:inline-grid;place-items:center;border-radius:50%;color:var(--soft);
  background:rgba(255,255,255,.045);box-shadow:0 0 0 1px var(--hair);transition:transform .2s var(--ease),color .2s,background .2s,box-shadow .2s}
.icon-btn:hover{color:var(--text);background:rgba(255,255,255,.1)}
.icon-btn:active{transform:scale(.93)}
.icon-btn.on{color:var(--acc);background:var(--accbg);box-shadow:0 0 0 1px var(--accline)}
.icon-btn[disabled]{opacity:.35;pointer-events:none}
.fx-ripple{position:absolute;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.24);transform:scale(0);animation:rip .6s var(--ease) forwards}
@keyframes rip{to{transform:scale(1);opacity:0}}

/* inputs */
.field{display:flex;flex-direction:column;gap:7px}
.field>span{font:400 9px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
input[type=text],input[type=password],input[type=search],input:not([type]),textarea,select{
  width:100%;padding:11px 14px;border-radius:13px;border:0;background:rgba(255,255,255,.04);box-shadow:var(--sink);outline:none;
  transition:box-shadow .2s,background .2s}
textarea{resize:vertical;min-height:74px;line-height:1.45}
input:focus,textarea:focus,select:focus{background:rgba(255,255,255,.06);box-shadow:0 0 0 1px var(--acc),0 0 0 4px rgba(95,230,179,.13)}
input::placeholder,textarea::placeholder{color:var(--dim)}

/* chips, segs, tags */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:999px;font-weight:600;font-size:12.500px;color:var(--muted);
  background:rgba(255,255,255,.035);box-shadow:0 0 0 1px var(--hair);transition:color .2s,background .2s,box-shadow .2s}
.chip:hover{color:var(--text)}
.chip b{font:400 9.500px/1 var(--mono);opacity:.8}
.chip.on{color:#0a100d;background:var(--grad);box-shadow:none}
.seg{position:relative;display:inline-flex;padding:3px;border-radius:999px;background:rgba(0,0,0,.3);box-shadow:var(--sink)}
.seg button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-weight:600;font-size:12.500px;color:var(--muted);transition:color .2s}
.seg button.on{color:#0a100d}
.seg .glide{top:3px;height:calc(100% - 6px)}
.tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font:400 8.500px/1 var(--mono);font-style:normal;letter-spacing:.14em;text-transform:uppercase;
  color:var(--soft);background:rgba(255,255,255,.07)}
.tag.c,.tag.m,.tag.g{color:var(--acc);background:var(--accbg)}.tag.y{color:var(--warn);background:var(--ybg)}
.tag.r{color:var(--bad);background:var(--badbg)}

/* panels */
.panel{position:relative;border-radius:var(--r);background:var(--surf) padding-box,var(--rim) border-box;border:1px solid transparent;
  box-shadow:0 30px 70px -40px #000,inset 0 1px 0 rgba(255,255,255,.04)}
.well{border-radius:var(--r2);background:rgba(0,0,0,.26);box-shadow:var(--sink)}

/* overlay: dialogs + side sheets */
.overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;background:rgba(3,5,4,.7);backdrop-filter:blur(10px);animation:fade .25s}
@keyframes fade{from{opacity:0}}
.dialog{width:min(470px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:26px;border-radius:26px;animation:pop .32s var(--spring)}
.dialog.wide{width:min(760px,100%)}
.dialog h3{font:500 italic 30px/1.05 var(--display);letter-spacing:-.015em;margin-bottom:8px}
.dialog .sub{color:var(--muted);margin-bottom:18px}
.dialog .row{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}
@keyframes pop{from{opacity:0;transform:scale(.95) translateY(10px)}}
.sheet{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(580px,100vw);display:flex;flex-direction:column;background:#0a0e0c;
  box-shadow:-1px 0 0 var(--hair2),-40px 0 80px -30px #000;animation:slide .4s var(--ease)}
@keyframes slide{from{transform:translateX(40px);opacity:0}}
.sheet-h{display:flex;align-items:center;gap:12px;padding:20px 22px;box-shadow:0 1px 0 var(--hair)}
.sheet-h h3{font:500 italic 28px/1.1 var(--display);letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet-b{flex:1;overflow:auto;padding:22px;overscroll-behavior:contain}

/* menu */
.menu{position:fixed;z-index:70;min-width:220px;padding:6px;border-radius:16px;background:#131916;box-shadow:0 0 0 1px var(--hair2),0 24px 60px -18px #000;animation:pop .22s var(--spring)}
.menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:10px;text-align:left;font-weight:500;font-size:13.500px;color:var(--soft)}
.menu button:hover{background:rgba(255,255,255,.07);color:var(--text)}
.menu button.danger{color:var(--bad)}
.menu hr{border:0;height:1px;background:var(--hair);margin:5px 4px}

/* toasts + tooltip */
.toasts{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom,0px));z-index:90;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;max-width:min(560px,92vw);padding:11px 18px;border-radius:999px;font-weight:500;background:#141a17;
  box-shadow:0 0 0 1px var(--hair2),0 20px 50px -18px #000;animation:toastin .4s var(--spring)}
.toast.ok{box-shadow:0 0 0 1px var(--accline),0 20px 50px -18px #000}.toast.ok .ic{color:var(--good)}
.toast.bad{box-shadow:0 0 0 1px rgba(242,119,108,.5),0 20px 50px -18px #000;border-radius:18px}.toast.bad .ic{color:var(--bad)}
.toast.out{opacity:0;transform:translateY(8px);transition:.3s}
@keyframes toastin{from{opacity:0;transform:translateY(14px) scale(.96)}}
.tip{position:fixed;z-index:95;pointer-events:none;padding:6px 10px;border-radius:9px;font-size:12px;font-weight:500;background:#1c2420;color:var(--text);
  box-shadow:0 0 0 1px var(--hair2),0 10px 30px -10px #000;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s;max-width:260px}
.tip.on{opacity:1;transform:none}

/* sign in */
.gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.gate-card{width:min(430px,100%);display:flex;flex-direction:column;gap:14px;padding:34px;border-radius:28px;background:var(--surf) padding-box,var(--rim) border-box;border:1px solid transparent;box-shadow:0 40px 100px -40px #000}
.gate-card h1{font:400 50px/.96 var(--display);letter-spacing:-.025em;margin:6px 0 10px}
.gate-card h1 em{font-style:italic;color:var(--acc)}
.gate-card input{font-size:16px}
.gate-err{min-height:20px;color:var(--bad);font-weight:500}

/* skeleton + number bump */
.skel{position:relative;overflow:hidden;background:rgba(255,255,255,.04)}
.skel::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.06) 50%,transparent 70%);animation:sweep 1.500s linear infinite}
.fx-bump{animation:bump .8s var(--ease)}
@keyframes bump{30%{color:var(--acc);text-shadow:0 0 22px rgba(95,230,179,.8)}}

/* phones + tablets */
@media (max-width:860px){
  .nav{display:none}
  .top{padding:0 14px;gap:10px}
  .pill-switch span,.me span,.brand-t small{display:none}
  #page{padding:14px 14px calc(110px + env(safe-area-inset-bottom,0px))}
  .tabbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:40;display:grid;grid-template-columns:repeat(4,1fr);
    padding:6px;border-radius:26px;background:rgba(13,18,16,.97);box-shadow:0 0 0 1px var(--hair2),0 20px 50px -16px #000}
  .tabbar button{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:20px;font-size:10.500px;font-weight:600;color:var(--muted)}
  .tabbar button.on{color:#0a100d}
  .tabbar .glide{top:6px;height:calc(100% - 12px);border-radius:20px}
  .sheet{width:100vw}
  .toasts{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
@media (pointer:coarse){
  .top{backdrop-filter:none;background:rgba(6,9,8,.97)}
  .overlay{backdrop-filter:none;background:rgba(3,5,4,.88)}
  input,textarea,select{font-size:16px}
  body::before{animation:none}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
