/*
Theme Name: Ikuisuus
Theme URI: https://www.ikuisuus.net/
Author: Ikuisuus Archive
Description: Discography-ledger archive theme for ikuisuus.net — a reference on the Finnish experimental-music label IKUISUUS. Swiss typographic ledger, hand-built, no framework.
Version: 1.0.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ikn
Tags: custom-post-types, editorial, translation-ready
*/

/* ============================================================
   Self-hosted fonts (no CDN footprint) — Schibsted Grotesk + Martian Mono
   ============================================================ */
@font-face{font-family:'Schibsted Grotesk';src:url('assets/fonts/schibsted-grotesk-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Schibsted Grotesk';src:url('assets/fonts/schibsted-grotesk-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Schibsted Grotesk';src:url('assets/fonts/schibsted-grotesk-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Schibsted Grotesk';src:url('assets/fonts/schibsted-grotesk-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:'Martian Mono';src:url('assets/fonts/martian-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Martian Mono';src:url('assets/fonts/martian-mono-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

/* ============================================================
   Tokens
   ============================================================ */
:root{
  --ikn-paper:#ffffff;
  --ikn-ink:#111111;
  --ikn-ink-2:#4a4a4a;
  --ikn-ink-3:#8a8a8a;
  --ikn-rule:#111111;
  --ikn-rule-soft:#d9d9d9;
  --ikn-violet:#5B2AE0;
  --ikn-violet-dk:#4a1fc0;
  --ikn-violet-tint:#f1ecfd;
  --ikn-display:'Schibsted Grotesk',system-ui,sans-serif;
  --ikn-body:'Schibsted Grotesk',system-ui,sans-serif;
  --ikn-mono:'Martian Mono',ui-monospace,'Courier New',monospace;
  --ikn-ease:cubic-bezier(.2,.8,.2,1);   /* signature motion: "index" — crisp, decisive, no bounce */
  --ikn-dur:.16s;
  --ikn-maxw:1440px;
  --ikn-pad:clamp(1.25rem,4vw,4rem);
}

/* ============================================================
   Reset / base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--ikn-paper);color:var(--ikn-ink);
  font-family:var(--ikn-body);font-weight:400;font-size:1.0625rem;line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--ikn-violet);color:#fff;}
h1,h2,h3,h4,h5,p,figure,ul,ol{margin:0;}
ul,ol{padding:0;list-style:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
:focus-visible{outline:2px solid var(--ikn-violet);outline-offset:2px;}

.ikn-wrap{max-width:var(--ikn-maxw);margin:0 auto;}
.ikn-pad{padding-left:var(--ikn-pad);padding-right:var(--ikn-pad);}
.ikn-kicker{font-family:var(--ikn-mono);font-size:.625rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ikn-violet);}
.ikn-mono{font-family:var(--ikn-mono);}
.ikn-tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}
.ikn-skip{position:absolute;left:-9999px;top:0;background:var(--ikn-ink);color:#fff;padding:.6em 1em;z-index:200;}
.ikn-skip:focus{left:0;}

/* ============================================================
   Header / nav — bordered ledger bar
   ============================================================ */
.ikn-head{position:sticky;top:0;z-index:100;background:var(--ikn-paper);border-bottom:1px solid var(--ikn-rule);}
.ikn-head__bar{display:flex;align-items:stretch;min-height:64px;}
.ikn-head__brand{display:flex;align-items:center;padding:0 clamp(1rem,3vw,2rem);border-right:1px solid var(--ikn-rule);}
.ikn-logo{display:inline-flex;align-items:center;gap:.55rem;color:var(--ikn-ink);}
.ikn-emblem{display:block;flex:none;}
.ikn-word{font-family:var(--ikn-display);font-weight:800;letter-spacing:.02em;text-transform:uppercase;font-size:1.15rem;line-height:1;}
.ikn-foot .ikn-logo{color:var(--ikn-ink);}
.ikn-nav{display:flex;align-items:stretch;flex:1 1 auto;}
.ikn-nav a{
  display:flex;align-items:center;padding:0 clamp(1rem,2.4vw,2.6rem);
  font-family:var(--ikn-mono);font-size:.6875rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  border-right:1px solid var(--ikn-rule);position:relative;transition:background var(--ikn-dur) var(--ikn-ease),color var(--ikn-dur) var(--ikn-ease);
}
.ikn-nav a[aria-current="page"]{color:var(--ikn-violet);}
.ikn-nav a:hover,.ikn-nav a:focus-visible{background:var(--ikn-ink);color:#fff;}
.ikn-head__tools{display:flex;align-items:center;margin-left:auto;padding:0 clamp(1rem,3vw,2rem);gap:1rem;}
.ikn-head__search{display:flex;align-items:center;gap:.5rem;font-family:var(--ikn-mono);font-size:.625rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;}
.ikn-head__search svg{width:15px;height:15px;}
.ikn-burger{display:none;width:26px;height:26px;}
.ikn-burger span{display:block;height:2px;background:var(--ikn-ink);margin:5px 0;transition:transform var(--ikn-dur) var(--ikn-ease),opacity var(--ikn-dur);}

/* ============================================================
   Crop-mark link treatment (signature) — nav/roster/index/buttons
   ============================================================ */
.ikn-cm{position:relative;}
.ikn-cm::before,.ikn-cm::after{content:"";position:absolute;width:8px;height:8px;border:1.5px solid var(--ikn-violet);opacity:0;transition:opacity var(--ikn-dur) var(--ikn-ease),transform var(--ikn-dur) var(--ikn-ease);pointer-events:none;}
.ikn-cm::before{top:-4px;left:-4px;border-right:0;border-bottom:0;transform:translate(3px,3px);}
.ikn-cm::after{bottom:-4px;right:-4px;border-left:0;border-top:0;transform:translate(-3px,-3px);}
.ikn-cm:hover::before,.ikn-cm:focus-visible::before,.ikn-cm:hover::after,.ikn-cm:focus-visible::after{opacity:1;transform:translate(0,0);}

/* ============================================================
   Sections & rules
   ============================================================ */
.ikn-section{border-bottom:1px solid var(--ikn-rule);padding-top:clamp(3rem,7vw,6rem);padding-bottom:clamp(3rem,7vw,6rem);}
.ikn-section--dark{background:var(--ikn-ink);color:var(--ikn-paper);}
.ikn-section--dark .ikn-kicker{color:#b79cff;}
.ikn-sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(1.5rem,4vw,3rem);}
.ikn-h2{font-family:var(--ikn-display);font-weight:800;letter-spacing:-.03em;text-transform:uppercase;line-height:.9;font-size:clamp(2.2rem,6vw,4.5rem);}
.ikn-note{font-family:var(--ikn-mono);font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ikn-violet);}

/* ============================================================
   Masthead
   ============================================================ */
.ikn-mast{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,5vw,3.5rem);}
@media(min-width:960px){.ikn-mast{grid-template-columns:2fr minmax(0,1fr);align-items:end;}}
.ikn-mast__h1{margin-bottom:clamp(1.5rem,4vw,2.5rem);}
.ikn-mast__title{display:block;font-family:var(--ikn-display);font-weight:800;text-transform:uppercase;letter-spacing:-.05em;line-height:.8;font-size:clamp(3.5rem,15vw,12rem);}
.ikn-mast__sub{display:block;font-family:var(--ikn-display);font-weight:700;letter-spacing:-.02em;line-height:1;font-size:clamp(1.1rem,2.4vw,2rem);margin-top:clamp(.6rem,1.5vw,1.1rem);max-width:20ch;}
.ikn-mast__lead{font-family:var(--ikn-display);font-weight:500;letter-spacing:-.02em;line-height:1.02;font-size:clamp(1.5rem,3.6vw,3rem);max-width:22ch;}
.ikn-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ikn-rule);border:1px solid var(--ikn-rule);}
.ikn-fact{background:var(--ikn-paper);padding:clamp(1rem,2vw,1.5rem);min-width:0;}
.ikn-fact__k{display:block;font-family:var(--ikn-mono);font-size:.5625rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ikn-violet);margin-bottom:.75rem;}
.ikn-fact__v{display:block;font-family:var(--ikn-display);font-weight:800;font-size:clamp(1.3rem,2.4vw,2.3rem);line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere;}

/* ============================================================
   Hero band + intro plates (abstract sleeve art)
   ============================================================ */
.ikn-hero{border-bottom:1px solid var(--ikn-rule);background:var(--ikn-ink);}
.ikn-hero img{display:block;width:100%;height:clamp(240px,42vh,460px);object-fit:cover;}
.ikn-introplate{border:1px solid var(--ikn-rule);margin-top:clamp(1.5rem,3vw,2.5rem);}
.ikn-introplate img{display:block;width:100%;height:clamp(200px,32vh,360px);object-fit:cover;}

/* ============================================================
   Ledger table (discography index)
   ============================================================ */
.ikn-ledger{width:100%;overflow-x:auto;}
.ikn-ledger table{width:100%;border-collapse:collapse;min-width:640px;}
.ikn-ledger thead th{
  font-family:var(--ikn-mono);font-size:.625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  text-align:left;padding:.85rem 1rem;border-top:1px solid var(--ikn-rule);border-bottom:1px solid var(--ikn-rule);color:var(--ikn-ink-2);
}
.ikn-ledger thead th.ikn-r{text-align:right;}
.ikn-ledger tbody tr{border-bottom:1px solid var(--ikn-rule-soft);transition:background var(--ikn-dur) var(--ikn-ease),color var(--ikn-dur) var(--ikn-ease);}
.ikn-ledger tbody tr:hover,.ikn-ledger tbody tr:focus-within{background:var(--ikn-violet);color:#fff;}
.ikn-ledger tbody tr:hover .ikn-c-ref,.ikn-ledger tbody tr:focus-within .ikn-c-ref{color:#fff;}
.ikn-ledger td{padding:1.15rem 1rem;vertical-align:baseline;}
.ikn-ledger a{display:block;}
.ikn-c-ref{font-family:var(--ikn-mono);font-weight:700;font-size:.9rem;color:var(--ikn-violet);white-space:nowrap;}
.ikn-c-artist{font-family:var(--ikn-display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.05rem,1.8vw,1.5rem);}
.ikn-c-title{font-family:var(--ikn-display);font-weight:400;font-size:clamp(1rem,1.7vw,1.4rem);}
.ikn-c-fmt{font-family:var(--ikn-mono);font-weight:700;font-size:.75rem;white-space:nowrap;}
.ikn-c-year{font-family:var(--ikn-mono);font-size:.85rem;text-align:right;white-space:nowrap;}

/* Mobile: the ledger stops being a scroll container and becomes Label:Value
   cards (no sideways drag to read a row). td carries data-label. */
@media(max-width:640px){
  .ikn-ledger{overflow-x:visible;}
  .ikn-ledger table{min-width:0;display:block;}
  .ikn-ledger thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .ikn-ledger tbody{display:block;}
  .ikn-ledger tbody tr{display:block;border:1px solid var(--ikn-rule);margin-bottom:-1px;padding:.35rem 0;}
  .ikn-ledger td{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:.55rem clamp(1rem,4vw,1.25rem);text-align:right;}
  .ikn-ledger td::before{content:attr(data-label);font-family:var(--ikn-mono);font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ikn-violet);text-align:left;flex:none;}
  .ikn-ledger tbody tr:hover td::before,.ikn-ledger tbody tr:focus-within td::before{color:#fff;}
  .ikn-ledger td:empty{display:none;}
  .ikn-ledger a{display:inline;}
  .ikn-c-ref,.ikn-c-year{text-align:right;white-space:normal;}
  .ikn-c-artist,.ikn-c-title{font-size:1.15rem;line-height:1.2;text-align:right;}
}

/* ============================================================
   Roster — bordered name cells
   ============================================================ */
.ikn-roster{display:flex;flex-wrap:wrap;border-top:1px solid var(--ikn-rule);border-left:1px solid var(--ikn-rule);}
.ikn-roster a{
  padding:clamp(.6rem,1.4vw,1rem) clamp(1rem,2vw,1.5rem);border-right:1px solid var(--ikn-rule);border-bottom:1px solid var(--ikn-rule);
  font-family:var(--ikn-display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(1.4rem,3.2vw,2.6rem);line-height:1;
  transition:background var(--ikn-dur) var(--ikn-ease),color var(--ikn-dur) var(--ikn-ease);
}
.ikn-roster a:hover,.ikn-roster a:focus-visible{background:var(--ikn-violet);color:#fff;}

/* ============================================================
   Edition stamp (signature moment) — hand-numbered micro-edition mark
   ============================================================ */
.ikn-edition{display:inline-flex;align-items:center;gap:.5ch;font-family:var(--ikn-mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ikn-violet);border:1.5px solid var(--ikn-violet);border-radius:2px;padding:.35em .6em;transform:rotate(-4deg);transform-origin:center;}
.ikn-section--dark .ikn-edition{color:#b79cff;border-color:#b79cff;}

/* ============================================================
   Prose / page body
   ============================================================ */
.ikn-prose{max-width:68ch;font-size:1.125rem;line-height:1.65;}
.ikn-prose.ikn-prose--wide{max-width:82ch;}
.ikn-prose p{margin:0 0 1.25em;}
.ikn-prose h2{font-family:var(--ikn-display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:1;font-size:clamp(1.6rem,3.4vw,2.4rem);margin:2em 0 .6em;}
.ikn-prose h3{font-family:var(--ikn-display);font-weight:700;letter-spacing:-.01em;font-size:clamp(1.25rem,2.2vw,1.6rem);margin:1.6em 0 .5em;}
.ikn-prose a{color:var(--ikn-violet-dk);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-thickness var(--ikn-dur) var(--ikn-ease);}
.ikn-prose a:hover,.ikn-prose a:focus-visible{text-decoration-thickness:3px;}
.ikn-prose ul{margin:0 0 1.25em;padding-left:0;}
.ikn-prose ul li{position:relative;padding-left:1.5em;margin-bottom:.5em;}
.ikn-prose ul li::before{content:"";position:absolute;left:0;top:.62em;width:.6em;height:.6em;background:var(--ikn-violet);}
.ikn-prose blockquote{border-left:3px solid var(--ikn-violet);margin:1.5em 0;padding:.2em 0 .2em 1.2em;font-family:var(--ikn-display);font-weight:500;font-size:1.2em;}
.ikn-prose img{margin:1.5em 0;border:1px solid var(--ikn-rule);}

.ikn-pagehead{padding-top:clamp(2.5rem,6vw,5rem);padding-bottom:clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid var(--ikn-rule);}
.ikn-pagehead h1{font-family:var(--ikn-display);font-weight:800;text-transform:uppercase;letter-spacing:-.03em;line-height:.9;font-size:clamp(2.4rem,7vw,5.5rem);}
.ikn-pagehead .ikn-crumbs{margin-bottom:1rem;}
.ikn-crumbs{font-family:var(--ikn-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ikn-ink-3);}
.ikn-crumbs a{color:var(--ikn-violet);}
.ikn-body-area{padding-top:clamp(2rem,5vw,3.5rem);padding-bottom:clamp(3rem,7vw,6rem);}

/* meta line for release/artist singles */
.ikn-specs{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--ikn-rule);margin:0 0 2rem;}
.ikn-specs div{flex:1 1 120px;padding:1rem 1.2rem;border-right:1px solid var(--ikn-rule);}
.ikn-specs div:last-child{border-right:0;}
.ikn-specs dt{font-family:var(--ikn-mono);font-size:.5625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ikn-violet);margin-bottom:.4rem;}
.ikn-specs dd{margin:0;font-family:var(--ikn-display);font-weight:700;font-size:1.05rem;}

/* buttons */
.ikn-btn{display:inline-flex;align-items:center;gap:.6ch;font-family:var(--ikn-mono);font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1.5px solid var(--ikn-ink);padding:.75em 1.2em;transition:background var(--ikn-dur) var(--ikn-ease),color var(--ikn-dur) var(--ikn-ease),border-color var(--ikn-dur) var(--ikn-ease);}
.ikn-btn:hover,.ikn-btn:focus-visible{background:var(--ikn-violet);border-color:var(--ikn-violet);color:#fff;}
.ikn-section--dark .ikn-btn{border-color:#fff;color:#fff;}
.ikn-section--dark .ikn-btn:hover{background:#fff;color:var(--ikn-ink);}

/* ============================================================
   Footer
   ============================================================ */
.ikn-foot{background:var(--ikn-paper);border-top:1px solid var(--ikn-rule);padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:2.5rem;}
.ikn-foot__top{display:grid;grid-template-columns:1fr;gap:2.5rem;margin-bottom:2.5rem;}
@media(min-width:760px){.ikn-foot__top{grid-template-columns:1.4fr 1fr 1fr;}}
.ikn-foot svg{height:24px;width:auto;margin-bottom:1rem;}
.ikn-foot__blurb{font-size:.95rem;line-height:1.5;color:var(--ikn-ink-2);max-width:40ch;}
.ikn-foot__col h5{font-family:var(--ikn-mono);font-size:.625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ikn-violet);margin-bottom:1rem;}
.ikn-foot__col a{display:block;padding:.3rem 0;font-family:var(--ikn-display);font-weight:500;}
.ikn-foot__col a:hover{color:var(--ikn-violet);}
.ikn-foot__base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--ikn-rule-soft);
  font-family:var(--ikn-mono);font-size:.625rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ikn-ink-3);}

/* ============================================================
   Cards (featured releases / secondary grids where used)
   ============================================================ */
.ikn-grid{display:grid;gap:1px;background:var(--ikn-rule);border:1px solid var(--ikn-rule);}
.ikn-grid--3{grid-template-columns:1fr;}
@media(min-width:720px){.ikn-grid--3{grid-template-columns:repeat(3,1fr);}}
.ikn-cell{background:var(--ikn-paper);padding:clamp(1.25rem,2.5vw,2rem);display:flex;flex-direction:column;gap:.75rem;}
.ikn-cell__ref{font-family:var(--ikn-mono);font-size:.7rem;font-weight:700;color:var(--ikn-violet);letter-spacing:.1em;}
.ikn-cell__artist{font-family:var(--ikn-display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:1.4rem;line-height:1;}
.ikn-cell__title{font-family:var(--ikn-display);font-weight:400;font-size:1.15rem;}
.ikn-cell__meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-family:var(--ikn-mono);font-size:.7rem;font-weight:700;}

/* pagination */
.ikn-pager{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:2.5rem;font-family:var(--ikn-mono);font-size:.75rem;font-weight:700;}
.ikn-pager .page-numbers{padding:.5em .85em;border:1px solid var(--ikn-rule);}
.ikn-pager .page-numbers.current{background:var(--ikn-violet);border-color:var(--ikn-violet);color:#fff;}
.ikn-pager a.page-numbers:hover{background:var(--ikn-ink);color:#fff;}

/* ============================================================
   FAQ (details/summary) — site-specific treatment (no stock callout)
   ============================================================ */
.ikn-faq-sec{border-top:1px solid var(--ikn-rule);}
.ikn-faq{border-top:1px solid var(--ikn-rule);}
.ikn-faq details{border-bottom:1px solid var(--ikn-rule);}
.ikn-faq summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:1rem;padding:1.25rem 0;}
.ikn-faq summary::-webkit-details-marker{display:none;}
.ikn-faq summary::before{content:"+";font-family:var(--ikn-mono);color:var(--ikn-violet);font-weight:700;font-size:1.1rem;transition:transform var(--ikn-dur) var(--ikn-ease);}
.ikn-faq details[open] summary::before{content:"\2212";}
.ikn-faq h3{font-family:var(--ikn-display);font-weight:700;letter-spacing:-.01em;font-size:clamp(1.1rem,2vw,1.4rem);margin:0;}
.ikn-faq__a{padding:0 0 1.5rem 1.9rem;max-width:70ch;color:var(--ikn-ink-2);}

/* ============================================================
   Signature — "register" reveal (JS-gated; content visible without JS)
   ============================================================ */
html.ikn-js .ikn-reg{opacity:0;transform:translateY(10px);transition:opacity .34s var(--ikn-ease),transform .34s var(--ikn-ease);transition-delay:calc(var(--i,0)*45ms);}
html.ikn-js .ikn-reg.ikn-in{opacity:1;transform:none;}
/* edition-stamp: stamps in when registered into view */
html.ikn-js .ikn-edition{opacity:0;transform:rotate(-4deg) scale(1.5);transition:opacity .28s var(--ikn-ease),transform .28s var(--ikn-ease);}
html.ikn-js .ikn-edition.ikn-in{opacity:1;transform:rotate(-4deg) scale(1);}

/* ============================================================
   Signature MOMENT — "The Eternal Platter" (interactive spinning disc)
   No-JS: CSS eternal spin + hover-accelerate + press-to-read.
   JS-live: grab & flick with momentum easing back to eternal idle.
   ============================================================ */
@keyframes ikn-rev{to{transform:rotate(1turn);}}
.ikn-disc{position:relative;width:min(340px,80vw);aspect-ratio:1;margin:0 auto;
  touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;}
.ikn-disc.is-grab{cursor:grabbing;}
.ikn-disc__platter{position:absolute;inset:0;border-radius:50%;transform-origin:50% 50%;
  background:
    radial-gradient(circle at 50% 50%, #201830 0 32%, transparent 32.4%),
    repeating-radial-gradient(circle at 50% 50%, rgba(91,42,224,.16) 0 1px, transparent 1px 4px),
    radial-gradient(circle at 38% 34%, rgba(255,255,255,.10) 0 6%, transparent 42%),
    radial-gradient(circle at 50% 50%, #16111f 0 70%, #0d0a14 100%);
  box-shadow:0 22px 50px -22px rgba(13,10,20,.75), inset 0 0 0 1px rgba(255,255,255,.05);
  animation:ikn-rev 15s linear infinite;will-change:transform;}
/* no-JS delight */
.ikn-disc:hover .ikn-disc__platter{animation-duration:4.5s;}
.ikn-disc:active .ikn-disc__platter{animation-play-state:paused;}
/* JS drives transform → suppress the keyframe + hover speed changes */
.ikn-disc.is-live .ikn-disc__platter,
.ikn-disc.is-live:hover .ikn-disc__platter{animation:none;}
.ikn-disc__label{position:absolute;top:50%;left:50%;width:33%;height:33%;transform:translate(-50%,-50%);
  border-radius:50%;background:var(--ikn-violet);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15em;
  box-shadow:0 0 0 3px #0d0a14, inset 0 0 0 1px rgba(255,255,255,.18);text-align:center;padding:6%;}
.ikn-disc__label .ikn-emblem{opacity:.95;}
.ikn-disc__ref{font-size:clamp(.62rem,1.9vw,.82rem);font-weight:700;letter-spacing:.02em;line-height:1;}
.ikn-disc__sub{font-size:clamp(.5rem,1.4vw,.62rem);opacity:.8;line-height:1;}
.ikn-disc__label::after{content:"";position:absolute;top:50%;left:50%;width:7%;height:7%;
  transform:translate(-50%,-50%);border-radius:50%;background:#0d0a14;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15);}
.ikn-disc__cap{position:absolute;left:0;right:0;bottom:-1.9em;text-align:center;
  font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ikn-ink-2);opacity:.7;}
/* release-page pairing: disc beside the specs */
.ikn-relmeta{display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start;margin-bottom:2.5rem;}
@media(min-width:720px){.ikn-relmeta{grid-template-columns:auto 1fr;}}
/* homepage showcase band */
.ikn-turn{display:grid;grid-template-columns:1fr;gap:clamp(1.75rem,5vw,3.5rem);align-items:center;}
@media(min-width:820px){.ikn-turn{grid-template-columns:340px 1fr;}}
.ikn-turn__copy p{max-width:52ch;}

/* ============================================================
   Responsive: mobile nav
   ============================================================ */
@media(max-width:820px){
  .ikn-burger{display:block;margin-left:auto;}
  .ikn-head__tools{margin-left:0;}
  .ikn-nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--ikn-paper);border-bottom:1px solid var(--ikn-rule);
    max-height:0;overflow:hidden;transition:max-height var(--ikn-dur) var(--ikn-ease);}
  .ikn-nav.ikn-nav--open{max-height:60vh;}
  .ikn-nav a{border-right:0;border-bottom:1px solid var(--ikn-rule);padding:1rem var(--ikn-pad);}
  .ikn-mast__title{font-size:clamp(3rem,18vw,6rem);}
}

/* ============================================================
   Reduced motion
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;}
  html.ikn-js .ikn-reg,html.ikn-js .ikn-edition{opacity:1!important;transform:none!important;transition:none!important;}
  html.ikn-js .ikn-edition{transform:rotate(-4deg)!important;}
  .ikn-cm::before,.ikn-cm::after{transition:none;}
  /* the platter is served static & readable — no spin */
  .ikn-disc__platter,.ikn-disc:hover .ikn-disc__platter{animation:none!important;}
}
