/* AUTHENTIC VOLVELLE WHEEL CHART DESIGN */
/* Inspired by vintage paper wheel charts and translation devices */

@import url('https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&family=Special+Elite&family=Cutive+Mono&display=swap');

:root {
  /* Vintage Paper Colors */
  --paper-cream: #F5E6D3;
  --paper-aged: #E8D7C3;
  --paper-shadow: #D4C4B0;
  --ink-black: #1a1a1a;
  --ink-blue: #2B4C8C;
  --ink-red: #B22222;
  --gold-foil: #D4AF37;
  
  /* Volvelle Dimensions */
  --volvelle-size: min(600px, 85vw);
  --window-size: calc(var(--volvelle-size) * 0.15);
}

/* Override body for paper texture */
body {
  background: 
    radial-gradient(ellipse at center, var(--paper-cream) 0%, var(--paper-aged) 100%),
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><filter id="paper"><feTurbulence baseFrequency="0.04" numOctaves="5" result="noise"/><feDiffuseLighting in="noise" lighting-color="white" surfaceScale="2"><feDistantLight azimuth="45" elevation="60"/></feDiffuseLighting></filter><rect width="100" height="100" filter="url(%23paper)" opacity="0.3"/></svg>');
  color: var(--ink-black);
  font-family: 'Courier Prime', monospace;
}

/* Volvelle Container */
.volvelle-container {
  width: var(--volvelle-size);
  height: var(--volvelle-size);
  margin: 3rem auto;
  position: relative;
  filter: drop-shadow(0 10px 30px rgba(0,0,0,0.3));
}

/* Base Wheel (Bottom Layer) */
.volvelle-base {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  position: absolute;
  background: var(--paper-cream);
  box-shadow: 
    inset 0 0 100px rgba(139, 69, 19, 0.1),
    0 3px 10px rgba(0,0,0,0.2);
  border: 3px solid var(--ink-black);
  overflow: hidden;
}

/* Paper Texture Overlay */
.volvelle-base::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: 
    repeating-radial-gradient(
      circle at center,
      transparent 0,
      transparent 20px,
      rgba(139, 69, 19, 0.03) 20px,
      rgba(139, 69, 19, 0.03) 21px
    ),
    radial-gradient(
      circle at 30% 80%,
      rgba(139, 69, 19, 0.05) 0%,
      transparent 50%
    );
  opacity: 0.5;
}

/* Printed Sections */
.volvelle-section {
  position: absolute;
  width: 50%;
  height: 50%;
  transform-origin: 100% 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Special Elite', cursive;
  font-size: 0.9rem;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-black);
  text-align: center;
  border-right: 2px solid var(--ink-black);
  border-bottom: 2px solid var(--ink-black);
}

/* Generation Colors - Vintage Style */
.volvelle-section:nth-child(1) {
  transform: rotate(0deg);
  background: linear-gradient(135deg, transparent 70%, rgba(139, 69, 19, 0.1));
}

.volvelle-section:nth-child(2) {
  transform: rotate(72deg);
  background: linear-gradient(135deg, transparent 70%, rgba(43, 76, 140, 0.1));
}

.volvelle-section:nth-child(3) {
  transform: rotate(144deg);
  background: linear-gradient(135deg, transparent 70%, rgba(178, 34, 34, 0.1));
}

.volvelle-section:nth-child(4) {
  transform: rotate(216deg);
  background: linear-gradient(135deg, transparent 70%, rgba(212, 175, 55, 0.1));
}

.volvelle-section:nth-child(5) {
  transform: rotate(288deg);
  background: linear-gradient(135deg, transparent 70%, rgba(46, 125, 50, 0.1));
}

/* Section Labels */
.section-label {
  transform: rotate(-45deg) translateY(-20px);
  padding: 0.5rem;
  background: var(--paper-cream);
  border: 1px solid var(--ink-black);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}

/* Top Rotating Wheel */
.volvelle-wheel {
  width: 85%;
  height: 85%;
  position: absolute;
  top: 7.5%;
  left: 7.5%;
  border-radius: 50%;
  background: 
    radial-gradient(circle at center, var(--paper-cream) 0%, var(--paper-aged) 100%);
  border: 2px solid var(--ink-black);
  box-shadow: 
    0 2px 8px rgba(0,0,0,0.3),
    inset 0 0 50px rgba(0,0,0,0.1);
  cursor: grab;
  transition: transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
  will-change: transform;
}

.volvelle-wheel:active {
  cursor: grabbing;
}

/* Window Cutout */
.volvelle-window {
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: calc(var(--volvelle-size) * 0.25);
  height: calc(var(--volvelle-size) * 0.15);
  background: var(--paper-cream);
  border: 3px solid var(--ink-black);
  border-radius: 10px;
  box-shadow: 
    inset 0 2px 8px rgba(0,0,0,0.3),
    0 4px 12px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cutive Mono', monospace;
  font-size: 1.2rem;
  font-weight: bold;
  overflow: hidden;
  z-index: 10;
}

/* Window Content */
.window-content {
  padding: 1rem;
  text-align: center;
  background: linear-gradient(135deg, var(--paper-cream), var(--paper-aged));
}

.window-term {
  font-size: 1.4rem;
  color: var(--ink-blue);
  margin-bottom: 0.5rem;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}

.window-definition {
  font-size: 0.9rem;
  color: var(--ink-black);
  font-style: italic;
}

/* Center Hub */
.volvelle-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 25%;
  height: 25%;
  border-radius: 50%;
  background: 
    radial-gradient(circle at 30% 30%, var(--gold-foil), var(--ink-black));
  border: 3px solid var(--ink-black);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  box-shadow: 
    0 4px 15px rgba(0,0,0,0.4),
    inset 0 -2px 5px rgba(0,0,0,0.3),
    inset 0 2px 5px rgba(255,255,255,0.3);
  cursor: pointer;
  z-index: 20;
  transition: transform 0.2s ease;
}

.volvelle-center:hover {
  transform: translate(-50%, -50%) scale(1.05);
}

.volvelle-center:active {
  transform: translate(-50%, -50%) scale(0.95);
}

/* Center Rivet Effect */
.volvelle-center::before {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ink-black);
  box-shadow: 
    inset 0 1px 2px rgba(255,255,255,0.3),
    0 1px 2px rgba(0,0,0,0.5);
}

.center-text {
  font-family: 'Special Elite', cursive;
  font-size: 0.8rem;
  color: var(--paper-cream);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  margin-top: 1rem;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

/* Concentric Rings */
.ring-outer,
.ring-middle,
.ring-inner {
  position: absolute;
  border-radius: 50%;
  border: 1px solid var(--ink-black);
  opacity: 0.3;
  pointer-events: none;
}

.ring-outer {
  width: 95%;
  height: 95%;
  top: 2.5%;
  left: 2.5%;
  border-style: dashed;
}

.ring-middle {
  width: 65%;
  height: 65%;
  top: 17.5%;
  left: 17.5%;
  border-width: 2px;
}

.ring-inner {
  width: 35%;
  height: 35%;
  top: 32.5%;
  left: 32.5%;
  border-style: dotted;
}

/* Scale Markings */
.volvelle-scale {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.scale-mark {
  position: absolute;
  width: 2px;
  height: 10px;
  background: var(--ink-black);
  top: 5px;
  left: 50%;
  transform-origin: center calc(var(--volvelle-size) / 2 - 5px);
  opacity: 0.5;
}

/* Generate 36 scale marks (every 10 degrees) */
.scale-mark:nth-child(1) { transform: translateX(-50%) rotate(0deg); }
.scale-mark:nth-child(2) { transform: translateX(-50%) rotate(10deg); }
.scale-mark:nth-child(3) { transform: translateX(-50%) rotate(20deg); }
.scale-mark:nth-child(4) { transform: translateX(-50%) rotate(30deg); }
.scale-mark:nth-child(5) { transform: translateX(-50%) rotate(40deg); height: 15px; background: var(--ink-red); }
/* ... continue for all 36 marks */

/* Slang Terms Around the Wheel */
.slang-ring {
  position: absolute;
  width: 80%;
  height: 80%;
  top: 10%;
  left: 10%;
  pointer-events: none;
}

.slang-item {
  position: absolute;
  font-family: 'Courier Prime', monospace;
  font-size: 0.7rem;
  color: var(--ink-black);
  transform-origin: center center;
  width: 100px;
  text-align: center;
}

/* Vintage Typography for Headers */
.volvelle-title {
  font-family: 'Special Elite', cursive;
  font-size: 2.5rem;
  text-align: center;
  color: var(--ink-black);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  margin: 2rem 0;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
  position: relative;
}

.volvelle-title::before,
.volvelle-title::after {
  content: '※';
  position: absolute;
  font-size: 1.5rem;
  color: var(--ink-red);
  top: 50%;
  transform: translateY(-50%);
}

.volvelle-title::before {
  left: -3rem;
}

.volvelle-title::after {
  right: -3rem;
}

/* Instructions Panel */
.volvelle-instructions {
  background: var(--paper-aged);
  border: 2px solid var(--ink-black);
  border-radius: 10px;
  padding: 1.5rem;
  margin: 2rem auto;
  max-width: 600px;
  box-shadow: 
    0 4px 10px rgba(0,0,0,0.2),
    inset 0 0 30px rgba(139, 69, 19, 0.1);
  font-family: 'Courier Prime', monospace;
  position: relative;
}

.volvelle-instructions::before {
  content: 'INSTRUCTIONS';
  position: absolute;
  top: -15px;
  left: 30px;
  background: var(--paper-aged);
  padding: 0 1rem;
  font-family: 'Special Elite', cursive;
  font-weight: bold;
  letter-spacing: 0.2em;
}

/* Aged Paper Effect */
.aged-effect {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.3;
  background: 
    radial-gradient(ellipse at 20% 30%, rgba(139, 69, 19, 0.2) 0%, transparent 40%),
    radial-gradient(ellipse at 80% 70%, rgba(139, 69, 19, 0.15) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 50%, rgba(139, 69, 19, 0.1) 0%, transparent 60%);
}

/* Responsive Design */
@media (max-width: 768px) {
  :root {
    --volvelle-size: 90vw;
  }
  
  .volvelle-title {
    font-size: 1.8rem;
  }
  
  .window-term {
    font-size: 1rem;
  }
  
  .section-label {
    font-size: 0.7rem;
  }
}