/* SPDX-License-Identifier: AGPL-3.0-only */ :root { color-scheme: dark; --ink: #fff9eb; --muted: #c9c2dd; --night: #100a25; --deep: #251849; --panel: #30235a; --panel-light: #453476; --pink: #ff74b8; --cyan: #70e6e1; --yellow: #ffe38a; --line: #8e75c4; --shadow: #090617; --focus: #fff3a8; font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: 16px; } * { box-sizing: border-box; } html { min-width: 20rem; background: var(--night); scroll-behavior: smooth; } body { margin: 0; color: var(--ink); background-color: var(--night); background-image: linear-gradient(45deg, rgb(112 230 225 / 4%) 25%, transparent 25%), linear-gradient(-45deg, rgb(255 116 184 / 4%) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgb(112 230 225 / 4%) 75%), linear-gradient(-45deg, transparent 75%, rgb(255 116 184 / 4%) 75%); background-position: 0 0, 0 8px, 8px -8px, -8px 0; background-size: 16px 16px; line-height: 1.65; } a { color: var(--cyan); text-underline-offset: 0.18em; text-decoration-thickness: 0.1em; } a:hover { color: var(--yellow); } a:focus-visible { color: var(--night); background: var(--focus); outline: 0.2rem solid var(--focus); outline-offset: 0.2rem; } code, pre { font-family: "Courier New", Courier, monospace; } code { color: var(--yellow); } .skip-link { position: fixed; z-index: 10; top: 0.8rem; left: 0.8rem; padding: 0.65rem 0.9rem; color: var(--night); background: var(--focus); transform: translateY(-180%); } .skip-link:focus { transform: translateY(0); } .masthead { border-bottom: 0.3rem ridge var(--pink); background: radial-gradient(circle at 20% 20%, rgb(112 230 225 / 16%), transparent 28rem), linear-gradient(180deg, var(--deep), var(--night)); text-align: center; } .status-strip { padding: 0.45rem 1rem; color: var(--night); background: repeating-linear-gradient( -45deg, var(--yellow), var(--yellow) 0.7rem, #ffd35a 0.7rem, #ffd35a 1.4rem ); border-bottom: 0.15rem solid #6c5414; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; } .masthead-inner, main, footer { width: min(70rem, calc(100% - 2rem)); margin-inline: auto; } .masthead-inner { padding: 4rem 0 4.5rem; } .compact .masthead-inner { padding-block: 3rem; } .eyebrow { margin: 0 0 0.8rem; color: var(--pink); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; } .wordmark { width: fit-content; max-width: 100%; margin: 0 auto 1.5rem; overflow: hidden; color: var(--cyan); font-size: clamp(0.72rem, 2.8vw, 1.05rem); font-weight: 700; line-height: 1.15; text-align: left; text-shadow: 0.12rem 0.12rem 0 var(--pink); } h1, h2, h3, p { overflow-wrap: anywhere; } h1 { max-width: 19ch; margin: 0 auto; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 7vw, 4.8rem); line-height: 1.02; text-wrap: balance; text-shadow: 0.18rem 0.18rem 0 var(--shadow); } .compact h1 { font-size: clamp(2rem, 6vw, 3.8rem); } .lede { max-width: 47rem; margin: 1.5rem auto 0; color: var(--muted); font-size: clamp(1.05rem, 2.5vw, 1.28rem); } .button-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.8rem; margin-top: 2rem; } .button-row a { padding: 0.7rem 1rem; color: var(--night); background: var(--cyan); border: 0.15rem outset #c6ffff; box-shadow: 0.18rem 0.18rem 0 var(--shadow); font-weight: 700; text-decoration: none; } .button-row a:nth-child(2) { background: var(--pink); border-color: #ffc2df; } .button-row a:active { border-style: inset; box-shadow: none; transform: translate(0.12rem, 0.12rem); } .mirror-note { margin: 1rem auto 0; color: var(--muted); font-size: 0.85rem; } main { display: grid; gap: 1.5rem; padding-block: 2rem 4rem; } .panel { position: relative; padding: clamp(1.25rem, 4vw, 2.5rem); background: linear-gradient(135deg, var(--panel), #271c4a); border: 0.2rem ridge var(--line); box-shadow: 0.35rem 0.35rem 0 var(--shadow); } .panel h2 { margin: 0 0 1rem; color: var(--yellow); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.55rem, 4vw, 2.35rem); line-height: 1.15; } .panel h3 { margin-top: 0; font-size: 1.15rem; } .panel p:last-child { margin-bottom: 0; } .code-panel { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(20rem, 1.2fr); gap: 2rem; align-items: center; } .sticker { display: inline-block; margin: 0 0 1rem; padding: 0.25rem 0.55rem; color: var(--night); background: var(--pink); border: 0.12rem outset #ffd2e8; font: 700 0.72rem/1 Verdana, sans-serif; text-transform: uppercase; transform: rotate(-2deg); } .code { margin: 0; padding: 1.25rem; overflow-x: auto; color: var(--ink); background: #0c0919; border: 0.15rem inset var(--line); font-size: clamp(0.78rem, 1.8vw, 0.96rem); line-height: 1.5; tab-size: 2; } .code code { color: inherit; } .cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .cards article { padding: 1rem; background: rgb(16 10 37 / 55%); border: 0.1rem solid var(--line); } .origin { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.5rem; align-items: center; } .pixel-heart { color: var(--pink); font-family: "Courier New", monospace; font-size: clamp(4rem, 12vw, 7rem); line-height: 1; text-shadow: 0.16rem 0 var(--pink), -0.16rem 0 var(--pink), 0 0.16rem var(--pink), 0.3rem 0.3rem 0 var(--shadow); } .checklist { display: grid; gap: 0.55rem; padding: 0; list-style: none; } .checklist span { margin-right: 0.5rem; color: var(--cyan); } .honesty-box { padding: 1rem; color: var(--night); background: var(--yellow); border: 0.18rem outset #fff0b9; font-weight: 700; } .names dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; } .names dl div { padding: 0.8rem; background: rgb(16 10 37 / 55%); border-left: 0.3rem solid var(--pink); } .names dt { color: var(--cyan); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .names dd { margin: 0.2rem 0 0; } footer { padding-block: 2rem 3rem; color: var(--muted); border-top: 0.1rem dashed var(--line); text-align: center; } .fine-print { font-size: 0.78rem; } @media (max-width: 48rem) { .code-panel, .cards, .names dl { grid-template-columns: 1fr; } .origin { grid-template-columns: 1fr; text-align: center; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; } } @media (forced-colors: active) { .panel, .cards article, .names dl div, .button-row a, .honesty-box { border: 0.12rem solid CanvasText; box-shadow: none; } }