/* =====================================================================
   RestWorkandPlay.com.au — shared styles (all pages)
   Fluid background, nav, mobile menu, footer, back link, reveals.
   Page-specific styles stay inside each page.
   Shared parts use px so the nav/footer look identical on every page.
   ===================================================================== */
:root{
  --base:#060810;
  --cyan:#00c8f0; --red:#ff3d5a; --gold:#ffbe00;
  --heading:#eef0f6; --muted:#b9becf;
  --ease:cubic-bezier(.2,0,0,1);
  /* page accent (nav pill, logo glow, back link). Pages override these. */
  --accent:var(--red); --accent-rgb:255,61,90;
}
body[data-theme="rest"]{--accent:var(--cyan);--accent-rgb:0,200,240}
body[data-theme="work"]{--accent:var(--red);--accent-rgb:255,61,90}
body[data-theme="play"]{--accent:var(--gold);--accent-rgb:255,190,0}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{background:var(--base);color:#fff;overflow-x:hidden;-webkit-font-smoothing:antialiased}

/* ---------- background layers ---------- */
#fluid{position:fixed;inset:0;width:100%;height:100vh;height:100lvh;z-index:0;pointer-events:none;display:block}
.scrim{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(115% 95% at 50% 46%,rgba(6,8,16,.68) 0%,rgba(6,8,16,.68) 24%,rgba(6,8,16,.46) 52%,rgba(6,8,16,.12) 100%);
}
/* inner pages carry more text, so the ink sits a little further back */
body.inner .scrim{background:radial-gradient(120% 100% at 50% 40%,rgba(6,8,16,.78) 0%,rgba(6,8,16,.62) 55%,rgba(6,8,16,.4) 100%)}
#particles{position:fixed;inset:0;z-index:2;pointer-events:none;display:block}

/* orbs: only shown when WebGL isn't available (or data saver is on) */
.orbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;display:none}
body.no-gl .orbs{display:block}
.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.35;animation:drift 18s ease-in-out infinite alternate;will-change:transform}
.orb-1{width:520px;height:520px;background:radial-gradient(circle,var(--red) 0%,transparent 70%);top:-120px;left:-100px;animation-duration:20s}
.orb-2{width:480px;height:480px;background:radial-gradient(circle,var(--cyan) 0%,transparent 70%);top:10%;right:-120px;animation-duration:16s;animation-delay:-6s}
.orb-3{width:400px;height:400px;background:radial-gradient(circle,var(--gold) 0%,transparent 70%);bottom:0;left:40%;opacity:.2;animation-duration:22s;animation-delay:-11s}
@keyframes drift{0%{translate:0 0;scale:1}33%{translate:40px 30px;scale:1.05}66%{translate:-20px 50px;scale:.97}100%{translate:30px -20px;scale:1.03}}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  height:66px;padding:0 20px;
  background:rgba(6,8,16,.5);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(255,255,255,.07);
  font-family:"Inter","Onest",system-ui,sans-serif;
  transition:background .4s,opacity .7s var(--ease),transform .7s var(--ease);
}
.nav.scrolled{background:rgba(6,8,16,.88)}
.brand{display:flex;align-items:center;color:#fff;text-decoration:none;font-weight:600;font-size:17px}
.brand img{height:36px;width:auto;display:block;filter:drop-shadow(0 2px 12px rgba(var(--accent-rgb),.5))}
.brand-text .r{color:var(--cyan)} .brand-text .w{color:var(--red)} .brand-text .p{color:var(--gold)}
.nav-links{display:none;gap:40px;list-style:none;position:absolute;left:50%;transform:translateX(-50%)}
.nav-links a{
  font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  color:rgba(255,255,255,.55);transition:color .2s;position:relative;padding-bottom:3px;
}
.nav-links a::after{content:"";position:absolute;bottom:0;left:0;width:0;height:1.5px;border-radius:2px;transition:width .3s ease}
.lnk-rest a::after{background:var(--cyan)} .lnk-work a::after{background:var(--red)} .lnk-play a::after{background:var(--gold)}
.lnk-rest a:hover,.lnk-rest.active a{color:var(--cyan)}
.lnk-work a:hover,.lnk-work.active a{color:var(--red)}
.lnk-play a:hover,.lnk-play.active a{color:var(--gold)}
.nav-links a:hover::after,.nav-links a:focus-visible::after,.nav-links .active a::after{width:100%}
.nav-pill{
  display:none;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;text-decoration:none;
  background:rgba(var(--accent-rgb),.18);border:1px solid rgba(var(--accent-rgb),.4);padding:7px 18px;border-radius:100px;
  transition:background .25s,box-shadow .25s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.nav-pill:hover{background:rgba(var(--accent-rgb),.35);box-shadow:0 0 20px rgba(var(--accent-rgb),.3)}
.hamburger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin-right:-8px}
.hamburger span{display:block;width:22px;height:2px;background:rgba(255,255,255,.7);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.nav.open .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .hamburger span:nth-child(2){opacity:0}
.nav.open .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{
  position:absolute;top:100%;left:0;right:0;display:grid;gap:4px;padding:12px 20px 20px;
  background:rgba(6,8,16,.94);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(255,255,255,.07);
  opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);
}
.nav.open .mobile-menu{opacity:1;transform:none;pointer-events:auto}
.mobile-menu a{display:flex;align-items:center;gap:11px;padding:12px 0;font-size:14px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.75);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.05)}
.mobile-menu a:last-child{border-bottom:0}
.mobile-menu a[aria-current="page"]{color:#fff}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.dot.c{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.dot.r{background:var(--red);box-shadow:0 0 10px var(--red)}
.dot.g{background:var(--gold);box-shadow:0 0 10px var(--gold)}
.nav a:focus-visible,.hamburger:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(255,255,255,.7);border-radius:6px}
@media (min-width:701px){
  .nav{padding:0 40px}
  .nav-links{display:flex}
  .nav-pill{display:inline-block}
  .hamburger,.mobile-menu{display:none}
}

/* ---------- back link ---------- */
.back-wrap{position:relative;z-index:10;padding:0 24px 48px;max-width:1000px;margin:0 auto}
.back-btn{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.back-btn:hover{color:var(--accent)}
.back-btn svg{width:16px;height:16px}

/* ---------- footer ---------- */
.foot{
  position:relative;z-index:20;display:flex;flex-direction:column;align-items:center;gap:16px;
  padding:32px 20px;text-align:center;font-family:"Inter","Onest",system-ui,sans-serif;
  border-top:1px solid rgba(255,255,255,.06);
  background:rgba(6,8,16,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.footer-copy{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.04em}
.footer-links{display:flex;gap:24px;list-style:none}
.footer-links a{font-size:11px;color:rgba(255,255,255,.4);text-decoration:none;letter-spacing:.06em;text-transform:uppercase;transition:color .2s}
.footer-links a:hover{color:rgba(255,255,255,.8)}
@media (min-width:701px){.foot{flex-direction:row;justify-content:space-between;padding:32px 40px}}

/* ---------- reveals ---------- */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0ms)}
.nav.rv{transform:translateY(-100%)}
.in .rv,.rv.in{opacity:1;transform:none}
.wd{display:inline-block;opacity:0;transform:translateY(var(--y,26px));
  transition:opacity var(--dur,720ms) cubic-bezier(.33,1,.68,1),transform var(--dur,720ms) cubic-bezier(.33,1,.68,1);
  transition-delay:var(--d,0ms)}
.in .wd{opacity:1;transform:none}
.no-js .rv,.no-js .wd{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv,.wd{transition:opacity .4s linear!important;transform:none!important;transition-delay:0ms!important}
  .orb{animation:none}
}
