/* Lampwright: warm workshop at night. No external fonts or requests (GDPR: LG München I, 3 O 17493/20). */
:root {
  --ink: #15120e;
  --ink-2: #1e1a15;
  --paper: #efe6d6;
  --muted: #a99b84;
  --brass: #c9a46a;
  --amber: #f3a83b;
  --line: rgba(239, 230, 214, 0.14);
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  color: var(--paper);
  background:
    radial-gradient(900px 620px at 82% -8%, rgba(243, 168, 59, 0.20), transparent 62%),
    radial-gradient(700px 500px at -10% 110%, rgba(201, 164, 106, 0.08), transparent 60%),
    var(--ink);
  font: 18px/1.65 var(--serif);
  min-height: 100vh;
  overflow-x: hidden;
}
body::before { /* film grain */
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

a { color: var(--paper); text-decoration-color: var(--brass); text-underline-offset: 0.2em; }
a:hover { color: var(--amber); }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; border-radius: 2px; }

.wrap { max-width: 1120px; margin: 0 auto; padding: 0 24px; }

/* header */
.top { display: flex; align-items: center; justify-content: space-between; padding: 28px 0; }
.mark { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; letter-spacing: 0.02em; font-size: 1.15rem; }
.mark svg { width: 26px; height: 26px; }
.top nav a { font: 0.78rem/1 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); text-decoration: none; margin-left: 22px; }
.top nav a:hover { color: var(--paper); }

/* hero */
.hero { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 40px; align-items: center; padding: 72px 0 96px; }
.label { font: 0.75rem/1.4 var(--mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--brass); margin: 0 0 22px; }
h1 { font-weight: 400; font-size: clamp(2.7rem, 7vw, 5.6rem); line-height: 1.02; letter-spacing: -0.015em; margin: 0 0 30px; }
h1 em { color: var(--amber); }
.lede { font-size: clamp(1.1rem, 2vw, 1.3rem); color: #d9cfbd; max-width: 34em; margin: 0; }
.lamp { width: 100%; max-width: 340px; justify-self: center; }
.lamp .glow { animation: flicker 6s ease-in-out infinite; transform-origin: 170px 214px; }
@keyframes flicker {
  0%, 100% { opacity: 0.92; transform: scale(1); }
  42% { opacity: 1; transform: scale(1.03); }
  47% { opacity: 0.84; transform: scale(0.99); }
  70% { opacity: 0.97; transform: scale(1.02); }
}

/* sections */
section { border-top: 1px solid var(--line); padding: 72px 0; }
h2 { font-weight: 400; font-size: clamp(1.9rem, 4vw, 2.8rem); line-height: 1.1; margin: 0 0 28px; }

.bench { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 48px; }
.bench h3 { font-weight: 400; font-style: italic; font-size: 1.6rem; margin: 0 0 6px; color: var(--amber); }
.bench .gloss { font: 0.8rem/1.4 var(--mono); color: var(--muted); letter-spacing: 0.06em; margin: 0 0 20px; }
.bench p { margin: 0 0 16px; max-width: 36em; }
.facts { margin: 0; padding: 22px 24px; background: var(--ink-2); border: 1px solid var(--line); border-radius: 4px; }
.facts dt { font: 0.72rem/1.4 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--brass); }
.facts dd { margin: 4px 0 18px; }
.facts dd:last-child { margin-bottom: 0; }

.ways { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; counter-reset: way; }
.ways li { counter-increment: way; border-top: 1px solid var(--brass); padding-top: 18px; }
.ways li::before { content: "0" counter(way); display: block; font: 0.75rem/1 var(--mono); color: var(--brass); letter-spacing: 0.14em; margin-bottom: 14px; }
.ways strong { display: block; font-weight: 400; font-size: 1.35rem; margin-bottom: 8px; }
.ways span { color: #d2c7b3; }

.contact p:not(.label) { font-size: clamp(1.4rem, 3.4vw, 2.2rem); line-height: 1.3; margin: 0; overflow-wrap: anywhere; }
.contact a { text-decoration-thickness: 1px; }

footer { border-top: 1px solid var(--line); padding: 28px 0 40px; font: 0.78rem/1.6 var(--mono); color: var(--muted); letter-spacing: 0.06em; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }
footer a { color: var(--muted); }

/* legal pages */
.legal { padding: 40px 0 80px; max-width: 46em; }
.legal h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); margin-bottom: 36px; }
.legal h2 { font-size: 1.35rem; margin: 36px 0 10px; }
.legal p, .legal li { color: #ddd3c1; }
.todo { background: rgba(243, 168, 59, 0.18); color: var(--amber); padding: 0 4px; }

/* load reveal */
.rise { opacity: 0; transform: translateY(14px); animation: rise 0.9s cubic-bezier(.2, .7, .2, 1) forwards; }
.d1 { animation-delay: 0.08s; } .d2 { animation-delay: 0.2s; } .d3 { animation-delay: 0.34s; } .d4 { animation-delay: 0.5s; }
@keyframes rise { to { opacity: 1; transform: none; } }

@media (max-width: 820px) {
  body { font-size: 17px; }
  .wrap { padding: 0 16px; }
  .hero { grid-template-columns: 1fr; padding: 40px 0 64px; }
  .lamp { max-width: 220px; order: -1; justify-self: start; }
  .bench, .ways { grid-template-columns: 1fr; }
  .top nav a { margin-left: 14px; }
  section { padding: 56px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .rise { opacity: 1; transform: none; animation: none; }
  .lamp .glow { animation: none; }
}
