/* -----------------------------
   1) SELF-HOSTED WEBFONTS
------------------------------ */

/* CHIVO */
@font-face {
  font-family: "Chivo";
  src: url("../fonts/Chivo-Black.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Chivo";
  src: url("../fonts/Chivo-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* FIRA SANS */
@font-face {
  font-family: "Fira Sans";
  src: url("../fonts/FiraSans-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Fira Sans";
  src: url("../fonts/FiraSans-SemiBoldItalic.woff") format("woff");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

/* MANROPE */
@font-face {
  font-family: "Manrope";
  src: url("../fonts/Manrope-ExtraBold.woff") format("woff");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* -----------------------------
   2) DESIGN TOKENS
------------------------------ */
:root{
  --bg: #0b0b0b;
  --paper: #fff1cd;
  --ink: #0b0b0b;

  --text: #e9e1cf;
  --muted: #b9b2a6;

  --panel-w: 560px;
  --max-w: 1400px;

  --leading: 1.35;
  --text-col: 38ch;

  /* ONLY knobs you tune */
  --wheel-shift: -48%; /* moves whole wheel left/right (try -12%..-28%) */
  --svg-nudge-x: 0%;   /* only if the SVG has empty canvas (try -10%..-30%) */
	
  --portrait-size: 34%;
  --portrait-zoom: 1.25;
}

/* -----------------------------
   3) BASE / RESET
------------------------------ */
* { box-sizing: border-box; }
html, body { height: 100%; }

body{
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Manrope", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height: var(--leading);
}

img{ max-width: 100%; display:block; }

/* -----------------------------
   4) PAGE LAYOUT
------------------------------ */

.page{
  min-height: 100vh;
  max-width: 1400px;              /* hard set (same as your var) */
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 64px);
  display: grid;
  grid-template-columns: var(--panel-w) 1fr;
  align-items: center;            /* keeps wheel vertically stable */
}

/* LEFT PANEL */
.panel{
  padding: 42px 40px 24px;
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  gap: 22px;
  border-right: 1px solid rgba(255,255,255,0.06);
}

.topnav{
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.brand{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.brand img{
  height: 44px;
  width: auto;
  display: block;
}

.crumbs{
  font-size: 14px;
  opacity: 0.9;
  font-style: italic;
}

/* NAME BLOCK */
.name .line{ display: block; }

.name{
  margin: 0;
  font-family: "Chivo", sans-serif;
  font-weight: 900;
  font-size: clamp(56px, 4.8vw, 70px);
  line-height: 0.84;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  max-width: var(--text-col);
}

.bio{
  font-family: "Chivo", sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.5;
  max-width: var(--text-col);
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.journal{
  display: grid;
  gap: 6px;
}
.journal-title{
  font-family: "Chivo", sans-serif;
  font-weight: 900;
  font-size: 44px;
}
.journal-sub{
  font-family: "Fira Sans", sans-serif;
  font-weight: 400;
  font-size: 18px;
  font-style: italic;
}

.credits{
  font-family: "Manrope", sans-serif;
  font-weight: 800;
  font-size: 10px;
}

/* -----------------------------
   5) RIGHT STAGE + WHEEL
------------------------------ */

/* keep the wheel vertically stable (like the comp) */
.stage{
  position: relative;
  overflow: visible;
  display: grid;
  place-items: center;
  padding: 24px;
}

/* WHEEL WRAPPER (SIZE SET DIRECTLY, NOT VIA VAR) */
.wheel{
  position: relative;
  width: min(820px, 85vmin);
  height: min(820px, 85vmin);

  /* move wheel toward the divider */
  transform: translateX(var(--wheel-shift));
}

/* Base + Hit overlay */
.wheel-base,
.wheel-hit{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;

  /* optional nudge for empty SVG canvas */
  transform: translateX(var(--svg-nudge-x));
  transform-origin: 50% 50%;
}

.wheel-base{ z-index: 1; }
.wheel-hit { z-index: 2; }

/* Center photo (RESTORE WRAPPER + USE VARIABLE SIZE) */
.wheel-center{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 3;
  pointer-events: none;
}

.wheel-center img{
  width: var(--portrait-size);
  height: var(--portrait-size);
  border-radius: 999px;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05);
}
/* Clickable slices */
.wheel-hit path{
  fill: transparent;
  pointer-events: all;
  cursor: pointer;
}

/* -----------------------------
   6) RESPONSIVE
------------------------------ */
@media (max-width: 980px){
  .page{
    grid-template-columns: 1fr;
  }
  .panel{
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }
  .stage{
    padding: 24px;
  }
  .wheel{
    transform: none;
  }
  .wheel-base,
  .wheel-hit{
    transform: none;
  }
}