/* --------------------
   THEME VARIABLES
-------------------- */
:root {
  --bg: #ffffff;
  --text: #1e1e1e;
  --muted: #6b6b6b;
  --accent: #0078d7;
  --tile: #f4f4f4;

  --radius: 0px;
  --ease: cubic-bezier(.2, .0, 0, 1);
  --fast: 120ms;
  --medium: 220ms;
  --accent: #f4b5de; /* default */
  --accent-contrast: #fa58a7; /* default */
  --grid-offset: 10px;
  --columns: 4;
  --gap: 24px; /* ← exact requirement */
}

[data-accent="fluff"]   { --accent: #f4b5de; }
[data-accent="poison"] { --accent: #dff700; }
[data-accent="busy"]   { --accent: #fa58a7; }
[data-accent="zoom"]  { --accent: #3f22ec; }
[data-accent="meeting"] { --accent: #03e29d; }
[data-accent="giraffe"] { --accent: #efca62; }
[data-accent="valencia"] { --accent: #f26b2e; }
[data-accent="core"] { --accent: #9b8cff; }

[data-accent-contrast="fluff-accent"]   { --accent-contrast: #fa58a7; }
[data-accent-contrast="poison-accent"] { --accent-contrast: #03e29d; }
[data-accent-contrast="busy-accent"]   { --accent-contrast: #efca62; }
[data-accent-contrast="zoom-accent"]  { --accent-contrast: #fa58a7; }
[data-accent-contrast="meeting-accent"] { --accent-contrast: #3f22ec; }
[data-accent-contrast="giraffe-accent"] { --accent-contrast: #fa58a7; }
[data-accent-contrast="valencia-accent"] { --accent-contrast: #fff4e6; }
[data-accent-contrast="core-accent"] { --accent-contrast: #f8f7ff; }

/* --------------------
   BASE
-------------------- */
html, body {
  transition: background var(--medium) var(--ease),
              color var(--medium) var(--ease);
  padding: 0;
  margin: 0;
  width: 100%;
height: 100%;
overflow-x: visible;
}

h1, h2, h3, h4, h5, h6 {
letter-spacing: -0.02em;
margin: 0;
}

h6 {
  font-family: "Seed-Heavy", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  color: lightgray;
  margin-top: -0.5em;
}

/* --------------------
   FLUENT ENTRANCE
-------------------- */
.fluent-enter {
animation-name: metro-enter;
animation-duration: 260ms;
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
animation-fill-mode: both;
}
.delay-1 { animation-delay: 80ms; }
.delay-2 { animation-delay: 160ms; }

@keyframes metro-enter {
from {
opacity: 0;
transform: translateY(14px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

.page-stage {
  display: flex;
  gap: 24pt;
  flex-direction: row;
  flex-wrap: wrap;
  overflow: hidden;
  margin-left: 2.5em;
  margin-top: -4em;
}

.metro-stage {
  overflow: hidden;
  padding: 0;
  margin: 0;
}

.metro-page {
  transform: translate3d(0,0,0);
  opacity: 1;
  filter: blur(0);
  transition:
    opacity 0.4s ease,
    filter 0.4s ease;
  display: flex;
  flex-direction: column;
}

#metro-page.is-exiting {
  opacity: 0;
  filter: blur(60px);
  pointer-events: none;
}

.tiles.is-exiting .tile {
opacity: 0;
filter: blur(60px);
animation-delay: calc(var(--1) * 28ms);
pointer-events: none;
}

.tiles.is-exiting .tile:nth-child(1) { animation-delay: 0ms; }
.tiles.is-exiting .tile:nth-child(2) { animation-delay: 30ms; }
.tiles.is-exiting .tile:nth-child(3) { animation-delay: 60ms; }
.tiles.is-exiting .tile:nth-child(4) { animation-delay: 90ms; }
.tiles.is-exiting .tile:nth-child(5) { animation-delay: 120ms; }
.tiles.is-exiting .tile:nth-child(6) { animation-delay: 150ms; }
.tiles.is-exiting .tile:nth-child(7) { animation-delay: 180ms; }

.tiles.is-entering .tile {
animation-delay: calc(var(--ri) * 24ms);
}

.fluff {
  background: var(--accent);
  color: var(--accent-contrast);
}

/* --------------------
   METRO TILE LAYOUT
-------------------- */
.tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  z-index: 1000;
  padding-left: 0px;
  width: 100%;
  position: relative;
  top: -4em;
}

.tile {
  transform-origin: center center; /* default */
  aspect-ratio: 1 / 1;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  background: var(--accent);
  padding: 0.3em;
  font-weight: 900;
  font-size: 5em;
  cursor: pointer;
  position: relative;
  touch-action: manipulation;
  color: var(--accent-contrast);
  opacity: 1;
  filter: blur(0);
  font-family: "Seed-Heavy", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

  transition:
    transform 120ms ease,
    opacity 0.35s ease,
    filter 0.35s ease;

  will-change: transform;
}

.tile-small {
  transform-origin: center center; /* default */
  aspect-ratio: 1 / 1;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  background: var(--accent);
  padding: 0;
  position: relative;
  opacity: 1;
  max-width: 512pt;
  max-height: 512pt;

  transition:
    transform 120ms ease,
    opacity 0.35s ease,
    filter 0.35s ease;

  will-change: transform;
}

.tile-mini {
  transform-origin: center center; /* default */
  aspect-ratio: 1 / 1;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  background: var(--accent);
  padding: 0;
  position: relative;
  opacity: 1;
  width: 116pt;
  height: 116pt;

  transition:
    transform 120ms ease,
    opacity 0.35s ease,
    filter 0.35s ease;

  will-change: transform;
}

.tile-small img {
  width: 512pt;
  height: 512pt;
  object-fit: contain;
}

/* Hover = lift */
.tile:hover {
  transform: scale(0.98);
}

.tile.is-pressed {
transform: scale(0.92);
  filter: brightness(0.96);
}

.tile:not(:active) {
  transform: scale(1);
}

.page-header {
position: relative;
z-index: 0;

font-size: 6rem;
font-weight: 700;
letter-spacing: -0.04em;
margin-left: 0.4em;
pointer-events: none;
font-family: "Seed-Heavy", sans-serif !important;
height: var(--header-height);
line-height: var(--header-line-height);
overflow-x: visible; /* allow overflow to the right */
width: auto;
}

.container {
  position: relative;
}

.album-row h1 {
  font-weight: 900;
  letter-spacing: -0.04em;
  font-family: "Seed-Bold", sans-serif !important;
  font-size: clamp(34pt, 12vw, 38pt);
  margin-left: 0.9em;
  margin-right: 0.9em;
}

.album-row h2 {
  font-weight: 600;
  letter-spacing: -0.04em;
  color: darkgray;
  font-size: clamp(30pt, 8vw, 34pt);
  font-family: "Seed-Regular", sans-serif !important;
  margin-left: 0.9em;
  margin-right: 0.9em;
}

.album-row p {
line-height: 1.6;
font-weight: 300;
letter-spacing: -0.04em;
font-family: "Seed-Regular", sans-serif !important;
width: 100;
max-width: 1000px;
font-size: clamp(30pt, 8vw, 34pt);
margin-left: 0.9em;
margin-right: 0.9em;
}

.album-row p span {
line-height: 1.6;
font-weight: 600;
letter-spacing: -0.04em;
font-family: "Seed-Bold", sans-serif !important;
width: 100;
max-width: 1000px;
font-size: clamp(30pt, 8vw, 34pt);
}


.bio p,
.button-holder p {
line-height: 1.6;
font-size: 1rem;
font-weight: 500;
letter-spacing: -0.04em;
font-family: "Seed-Regular", sans-serif !important;
width: 100;
max-width: 1000px;
font-size: clamp(34pt, 12vw, 38pt);
margin-left: 0.9em;
margin-right: 0.9em;
}

.button-holder p {
  font-weight: 900;
letter-spacing: -0.04em;
font-family: "Seed-Bold", sans-serif !important;
}

.reviews p {
line-height: 1.6;
font-size: 1rem;
font-weight: 500;
letter-spacing: -0.04em;
font-family: "Seed-Regular", sans-serif !important;
width: 100;
max-width: 1000px;
font-size: clamp(34pt, 12vw, 38pt);
margin-left: 0.9em;
margin-right: 0.9em;
}

.reviews p span {
  line-height: 1.6;
font-size: 1rem;
font-weight: 800;
letter-spacing: -0.04em;
font-family: "Seed-Bold", sans-serif !important;
font-size: clamp(28pt, 8vw, 32pt);
}

.reviews p i {
  line-height: 1.6;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  font-family: "Seed-Bold", sans-serif !important;
  font-size: clamp(28pt, 8vw, 32pt);
  color: gray;
}

.bio p span {
  line-height: 1.6;
font-size: 1rem;
font-weight: 800;
letter-spacing: -0.04em;
font-family: "Seed-Bold", sans-serif !important;
font-size: clamp(28pt, 8vw, 32pt);
}

.copyright {
  display: flex;
  width: 100vw;
  text-align: center;
  font-family: "Seed-Regular", sans-serif !important;
  justify-content: center;
  align-items: center;
  font-size: 3em;
}

/* ---- ABSOLUTE TRANSFORM RESET (ANTI-FLIP) ---- */
#metro-stage,
#metro-page,
.tiles,
.tile {
transform: none !important;
perspective: none !important;
transform-style: flat !important;
backface-visibility: visible !important;
}

.ig {
  fill: var(--accent-contrast);
  width: 384pt;
  aspect-ratio: 1 / 1;
}

#footer {
  display: grid;
  grid-template-columns: repeat(1, minmax(640px, 320px));
  padding-top: 1.5em;
}

.button-holder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.wp8-button {
display: inline-flex;
align-items: center;
justify-content: center;

min-height: 3em;
padding: 0 2em;

border: 0.15em solid #000;
background: transparent;

color: #000;
font-weight: 700;
text-decoration: none;
text-transform: none;
letter-spacing: 0.02em;

cursor: pointer;
user-select: none;

transition:
background-color 120ms ease,
color 120ms ease;
font-family: "Seed-Regular", sans-serif !important;
font-size: clamp(18pt, 4vw, 22pt);
}

.wp8-button:hover,
.wp8-button:active {
background-color: #000;
color: #fff;
}

.wp8-button {
-webkit-tap-highlight-color: transparent;
}

.wp8-button.reset {
background-color: transparent !important;
color: #000 !important;
}

.bio .wp8-button {
  margin-left: 1.5em;
}

.home .wp8-back-button {
  margin-left: 4em;
  margin-top: 8em;
}

.wp8-back-button {
width: 120pt;
height: 120pt;
min-width: 120pt;
min-height: 120pt;

display: inline-flex;
align-items: center;
justify-content: center;

border: 8px solid #000;
border-radius: 50%;
background: transparent;

color: #000;
cursor: pointer;
user-select: none;
padding: 0;

transition:
background-color 120ms ease,
color 120ms ease;

-webkit-tap-highlight-color: transparent;
}

.wp8-back-button svg {
width: 64pt;
height: 64pt;

fill: none;
stroke: currentColor;
stroke-width: 3;
stroke-linecap: square;
stroke-linejoin: miter;
}

/* Hover + Tap */
.wp8-back-button:hover,
.wp8-back-button:active {
background-color: #000;
color: #fff;
}

.music-grid {
display: flex;
gap: var(--gap);
width: 100%;
padding-left: var(--gap);
padding-right: var(--gap);
padding-bottom: var(--gap);
box-sizing: border-box;
margin: 0;
}

.music-grid-row {
display: flex;
gap: var(--gap);
width: 100%;
}

.music-grid-row.mixed {
  aspect-ratio: 2 / 1; /* two columns side by side */
}

/* Columns */
.music-grid-column {
flex: 1;
height: 100%;
}

.music-grid-column.large {
display: flex;
}

.music-grid-column.small-grid {
display: flex;
flex-wrap: wrap;
gap: var(--gap);
overflow: hidden;
}

/* Tiles */
.music-grid-tile {
background-image: var(--img);
background-size: cover;
background-position: center;
}

.music-grid-tile.large {
width: 100%;
height: 100%;
}

.music-grid-tile.small {
width: calc((100% - var(--gap)) / 2);
height: calc((100% - var(--gap)) / 2);
}

.music-grid-row.four-up {
display: flex;
gap: var(--gap);
width: 100%;
align-items: flex-start; /* prevents stretching */
}

.music-grid-row.four-up .music-grid-tile {
flex: 1;
min-width: 0; /* 🔒 critical for flex sanity */
aspect-ratio: 1 / 1;

background-image: var(--img);
background-size: cover;
background-position: center;
}

.album-row {
  display: flex;
  align-items: flex-start;
  margin-left: 3em;
  border-left: 24pt;
  border-color: var(--accent);
  margin-bottom: 48pt;
}

.album-image {
  width: 240pt;
  height: 240pt;           /* makes it square */
  object-fit: cover;       /* crop nicely */
  flex-shrink: 0;          /* prevents image from shrinking */
  background-image: var(--img);
  background-size: cover;
  background-position: center;
}

.album-text {
  flex: 1;                 /* take remaining space */
}

.album-text p {
  flex: 1;
}

@font-face {
font-family: "Seed-Regular";
src:,
url("/assets/fonts/LINESeedSans_W_Rg.woff") format("woff"),
url("/assets/fonts/LINESeedSans_W_Rg.woff2") format("woff2"),
url("/assets/fonts/LINESeedJP_OTF_Rg.woff") format("woff"),
url("/assets/fonts/LINESeedJP_OTF_Rg.woff2") format("woff2");
font-style: normal;
font-display: swap;
}

@font-face {
font-family: "Seed-Bold";
src:
url("/assets/fonts/LINESeedSans_W_Bd.woff") format("woff"),
url("/assets/fonts/LINESeedSans_W_Bd.woff2") format("woff2"),
url("/assets/fonts/LINESeedJP_OTF_Bd.woff") format("woff"),
url("/assets/fonts/LINESeedJP_OTF_Bd.woff2") format("woff2");
font-style: normal;
font-display: swap;
}

@font-face {
font-family: "Seed-ExtraBold";
src:
url("/assets/fonts/LINESeedSans_W_XBd.woff") format("woff"),
url("/assets/fonts/LINESeedSans_W_XBd.woff2") format("woff2"),
url("/assets/fonts/LINESeedJP_OTF_Bd.woff") format("woff"),
url("/assets/fonts/LINESeedJP_OTF_Bd.woff2") format("woff2");
font-style: normal;
font-display: swap;
}

@font-face {
font-family: "Seed-Heavy";
src:
url("/assets/fonts/LINESeedSans_W_He.woff") format("woff"),
url("/assets/fonts/LINESeedSans_W_He.woff2") format("woff2"),
url("/assets/fonts/LINESeedJP_OTF_Eb.woff") format("woff"),
url("/assets/fonts/LINESeedJP_OTF_Eb.woff2") format("woff2");
font-style: normal;
font-display: swap;
}

@font-face {
font-family: "Seed-Thin";
src:
url("/assets/fonts/LINESeedSans_W_Th.woff") format("woff"),
url("/assets/fonts/LINESeedSans_W_Th.woff2") format("woff2"),
url("/assets/fonts/LINESeedJP_OTF_Th.woff") format("woff"),
url("/assets/fonts/LINESeedJP_OTF_Th.woff2") format("woff2");
font-style: normal;
font-display: swap;
}