diff --git a/docs/styles.css b/docs/styles.css index 5e8f217..010c070 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -3,6 +3,7 @@ --orange: #ff8424; --orange-soft: #ff8a3d; --orange-pale: #ffe3cc; + --orange-ink: #b34700; /* orange text on cream/white/pale: 4.9:1+ (same as island.css) */ --ink: #1f2130; --ink-2: #2b2e40; --muted: #6b6f80; @@ -52,7 +53,7 @@ section { padding: 96px 24px; } font: 600 .8rem/1 var(--body); letter-spacing: .08em; text-transform: uppercase; - color: var(--orange) !important; + color: var(--orange-ink) !important; margin: 0 0 14px !important; } h1, h2, h3 { font-family: var(--display); letter-spacing: -.02em; margin: 0; } @@ -70,7 +71,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .btn-sm { padding: 9px 18px; font-size: .92rem; } .btn-lg { padding: 16px 28px; font-size: 1.05rem; } .btn-primary { - color: #fff; + color: var(--ink); background: linear-gradient(180deg, #ff9a45 0%, var(--orange) 55%, #f2700e 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 2px 0 #c95a0a, 0 10px 24px -8px rgba(255, 132, 36, .7); } @@ -115,7 +116,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .hero h1 { font-size: clamp(2.6rem, 7vw, 5.6rem); line-height: .98; font-weight: 800; } .hl-point, .hl-do { position: relative; white-space: nowrap; } .hl-point { color: var(--muted); text-decoration: line-through; text-decoration-color: var(--orange); text-decoration-thickness: .08em; } -.hl-do { color: var(--orange); } +.hl-do { color: var(--orange-ink); } .hl-do::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.06em; height: .16em; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 Q 50 2 100 7 T 198 5' fill='none' stroke='%231f2130' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%; @@ -123,14 +124,14 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .lede { max-width: 680px; margin: 28px auto 34px; font-size: 1.18rem; color: #3d4052; } .cta-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; } .fineprint { color: var(--muted); font-size: .86rem; margin: 16px 0 0; } -.fineprint.light { color: rgba(255,255,255,.85); } +.fineprint.light, .fineprint.light a { color: var(--ink); } .proof { list-style: none; padding: 0; margin: 56px auto 0; display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; } .proof li { display: flex; align-items: center; gap: 12px; text-align: left; background: #fff; border: 1.5px solid var(--line); border-radius: 16px; padding: 12px 18px; box-shadow: 0 2px 0 var(--line); } -.proof b { font: 800 1.9rem/1 var(--display); color: var(--orange); } +.proof b { font: 800 1.9rem/1 var(--display); color: var(--orange-ink); } .proof span { font-size: .84rem; color: var(--muted); line-height: 1.3; } .stickers .sticker { position: absolute; font: 700 .85rem var(--display); @@ -201,7 +202,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .menu.open { opacity: 1; transform: none; } .menu div { display: flex; justify-content: space-between; padding: 6px 10px; border-radius: 4px; } .menu div.hot { background: #e8f0fe; outline: 2px solid var(--orange); outline-offset: -2px; } -.menu kbd { all: unset; color: #888; font-size: 11px; } +.menu kbd { all: unset; color: var(--muted); font-size: 12px; } .menu hr { border: 0; border-top: 1px solid #eee; margin: 4px 0; } .doc { height: 250px; padding: 10px 14px; font: 13px/1.55 Consolas, "Cascadia Mono", monospace; @@ -233,14 +234,14 @@ h3 { font-size: 1.2rem; line-height: 1.2; } opacity: 0; transform: scale(.9); pointer-events: none; transition: .2s; } .confirm.show { opacity: 1; transform: none; pointer-events: auto; } -.confirm-title { display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 12px; color: var(--orange); } +.confirm-title { display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 12px; color: var(--orange-ink); } .confirm-title img { width: 18px; height: 18px; } .confirm p { margin: 6px 0 10px; } .confirm-btns { display: flex; gap: 8px; } .cbtn { font: 600 12px "Segoe UI"; padding: 6px 14px; border-radius: 6px; border: 1px solid #dacbb8; background: #fff; cursor: pointer; } -.cbtn.yes { background: var(--orange-soft); border-color: var(--orange-soft); color: #fff; } +.cbtn.yes { background: var(--orange-soft); border-color: var(--orange-soft); color: var(--ink); } .confirm.show .cbtn { animation: nudge 1.6s ease-in-out infinite; } .confirm.show .cbtn + .cbtn { animation-delay: .2s; } @keyframes nudge { 50% { box-shadow: 0 0 0 4px rgba(255, 138, 61, .18); } } @@ -313,9 +314,9 @@ h3 { font-size: 1.2rem; line-height: 1.2; } border: 2px solid var(--ink); } .hotbar kbd { background: var(--ink-2); color: #cfd1dc; border-color: #44485e; box-shadow: 0 3px 0 #44485e; transition: .12s; } -.hotbar .keys.down kbd { background: var(--orange); color: #fff; border-color: #c95a0a; box-shadow: 0 0 0 #c95a0a; transform: translateY(3px); } +.hotbar .keys.down kbd { background: var(--orange); color: var(--ink); border-color: #c95a0a; box-shadow: 0 0 0 #c95a0a; transform: translateY(3px); } .said { flex: 1; display: flex; gap: 10px; align-items: center; min-width: 0; } -.you { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--orange); font-weight: 700; } +.you { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--orange-ink); font-weight: 700; } .said-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #e9e9f0; font-size: .95rem; } .said-text.idle { color: #8d90a3; } .status { display: flex; align-items: center; gap: 8px; font-size: .8rem; color: #b8bbcb; white-space: nowrap; } @@ -340,7 +341,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } transition: .12s; } .chip:hover { border-color: var(--orange); background: #fff; transform: translateY(-1px); } -.chip.running { background: var(--orange); border-color: var(--orange); color: #fff; } +.chip.running { background: var(--orange); border-color: var(--orange); color: var(--ink); } .followups { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; } .followups:empty { display: none; } .followups .chip { background: #fff4e9; border-color: var(--orange); animation: nudge 1.4s infinite; } @@ -356,7 +357,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .log li { display: flex; gap: 8px; animation: slidein .25s ease; } .log li.empty { color: #7d8096; } .log .t { color: #7d8096; } -.log .v { min-width: 44px; font-weight: 700; color: var(--orange); } +.log .v { min-width: 44px; font-weight: 700; color: var(--orange-ink); } .log .v.k-ask { color: #f5c242; } .log .v.k-no { color: #ff8080; } .log .v.k-ok { color: #61d394; } @@ -365,8 +366,8 @@ h3 { font-size: 1.2rem; line-height: 1.2; } /* ---------- marquee ---------- */ .marquee { padding: 22px 0; background: var(--orange); border-block: 2px solid var(--ink); overflow: hidden; transform: rotate(-1.2deg); margin: 30px -10px; } .marquee-track { display: flex; gap: 36px; width: max-content; animation: scroll 50s linear infinite; } -.marquee-track span { font: 700 1.35rem var(--display); color: #fff; white-space: nowrap; } -.marquee-track span::after { content: "✦"; margin-left: 36px; color: var(--ink); } +.marquee-track span { font: 700 1.35rem var(--display); color: var(--ink); white-space: nowrap; } +.marquee-track span::after { content: "✦"; margin-left: 36px; color: #fff; } @keyframes scroll { to { transform: translateX(-50%); } } /* ---------- how ---------- */ @@ -383,7 +384,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .art-arrow polygon { fill: var(--orange); stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; } @keyframes hop { 50% { transform: translate(-4px, -4px); } } .art-btn { order: -1; font: 600 .85rem "Segoe UI"; background: #fff; border: 2px solid var(--orange); border-radius: 6px; padding: 6px 14px; } -.mini-confirm { background: var(--orange-soft); color: #fff; font: 600 .85rem "Segoe UI"; padding: 7px 16px; border-radius: 6px; box-shadow: 0 0 0 6px rgba(255,138,61,.2); } +.mini-confirm { background: var(--orange-soft); color: var(--ink); font: 600 .85rem "Segoe UI"; padding: 7px 16px; border-radius: 6px; box-shadow: 0 0 0 6px rgba(255,138,61,.2); } /* ---------- features ---------- */ .bento { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; } @@ -394,7 +395,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } } .card:hover { transform: translateY(-4px) rotate(-.3deg); } .card p { color: var(--muted); font-size: .94rem; margin: 10px 0 0; } -.tag { display: inline-block; font: 700 .7rem var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--orange); background: var(--orange-pale); border-radius: 999px; padding: 4px 10px; margin-bottom: 14px; } +.tag { display: inline-block; font: 700 .7rem var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--orange-ink); background: var(--orange-pale); border-radius: 999px; padding: 4px 10px; margin-bottom: 14px; } .c-wide { grid-column: span 2; } .c-full { grid-column: 1 / -1; } .c-full p { max-width: 72ch; } @@ -404,23 +405,23 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .c-dark h3 { font-size: 1.8rem; } .verbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; } .verbs span { font: 600 .85rem "Cascadia Code", Consolas, monospace; padding: 6px 10px; border-radius: 8px; background: var(--ink-2); border: 1px solid #44485e; color: var(--orange); } -.c-orange { background: linear-gradient(160deg, #ff9a45, var(--orange)); border-color: #f2700e; color: #fff; } -.c-orange p { color: #fff3e8; } -.c-orange .tag { background: rgba(255,255,255,.25); color: #fff; } -.mini-link { display: inline-block; margin-top: 12px; font-weight: 600; font-size: .9rem; text-decoration: none; color: var(--orange); } -.c-orange .mini-link { color: #fff; } +.c-orange { background: linear-gradient(160deg, #ff9a45, var(--orange)); border-color: #f2700e; color: var(--ink); } +.c-orange p { color: var(--ink); } +.c-orange .tag { background: rgba(255,255,255,.35); color: var(--ink); } +.mini-link { display: inline-block; margin-top: 12px; font-weight: 600; font-size: .9rem; text-decoration: none; color: var(--orange-ink); } +.c-orange .mini-link { color: var(--ink); } .c-pets { grid-column: span 2; grid-row: span 2; display: flex; flex-direction: column; background: #fbf8f1; } .c-pets .tag { align-self: flex-start; } .c-pets img { display: block; width: 100%; flex: 1 1 auto; min-height: 180px; max-height: 340px; object-fit: contain; margin-top: 16px; border-radius: 12px; mix-blend-mode: multiply; } .clack-pad { margin-top: 14px; width: 100%; padding: 12px; border-radius: 10px; border: 1.5px dashed var(--line); background: var(--cream); font: 500 .85rem var(--body); color: var(--muted); cursor: text; } -.clack-pad.hit { border-color: var(--orange); color: var(--orange); } +.clack-pad.hit { border-color: var(--orange); color: var(--orange-ink); } .cli { display: block; margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: var(--ink); color: var(--orange); font-size: .82rem; } /* ---------- safety ---------- */ .safety { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; } .rules { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 12px; } .rules li { position: relative; padding-left: 34px; color: #474a5c; } -.rules li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--orange); color: #fff; font-size: .75rem; font-weight: 700; } +.rules li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--orange); color: var(--ink); font-size: .75rem; font-weight: 700; } .rules b { color: var(--ink); } .safety-art { position: relative; min-height: 360px; } .confirm.static { position: relative; opacity: 1; transform: rotate(-2deg); width: 330px; pointer-events: none; margin: 0 0 0 auto; box-shadow: 6px 6px 0 var(--ink); border-color: var(--ink); font-size: 14px; } @@ -446,7 +447,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .voice.playing .play { background: var(--orange); } .voice .meta { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; } .voice .meta > span { display: block; } -.voice .lang { font: 700 .72rem var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--orange); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.voice .lang { font: 700 .72rem var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--orange-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .voice .name { font: 700 1.05rem var(--display); } .voice .line { font-size: .84rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .voice .eq { display: flex; gap: 2px; align-items: center; height: 22px; } @@ -468,7 +469,7 @@ h3 { font-size: 1.2rem; line-height: 1.2; } .racer.go { animation: race var(--race, 1.5s) cubic-bezier(.4,0,.6,1) forwards; } @keyframes race { to { left: calc(100% - 48px); } } .speed-label { margin-top: 12px; } -.speed-label b { display: block; font: 800 2.4rem/1 var(--display); color: var(--orange); } +.speed-label b { display: block; font: 800 2.4rem/1 var(--display); color: var(--orange-ink); } .speed-label span { color: var(--muted); font-size: .85rem; } .brain-facts { margin: 0; display: grid; gap: 12px; } .brain-facts div { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--line); } @@ -483,7 +484,7 @@ table { width: 100%; border-collapse: collapse; font-size: .95rem; } th, td { padding: 14px 18px; text-align: left; border-bottom: 1px solid #f1e6d8; vertical-align: top; } tbody tr:last-child td { border-bottom: 0; } thead th { font: 700 1rem var(--display); background: var(--cream); } -th.us { display: flex; align-items: center; gap: 8px; color: var(--orange); } +th.us { display: flex; align-items: center; gap: 8px; color: var(--orange-ink); } th.us img { width: 24px; height: 24px; } td:first-child { font-weight: 600; width: 32%; } td.us { background: #fff9f2; font-weight: 500; } @@ -498,14 +499,14 @@ details { background: #fff; border: 1.5px solid var(--line); border-radius: 16px details[open] { border-color: var(--orange); box-shadow: 0 2px 0 var(--orange-pale); } summary { cursor: pointer; list-style: none; padding: 16px 0; font: 700 1.08rem var(--display); display: flex; justify-content: space-between; gap: 12px; } summary::-webkit-details-marker { display: none; } -summary::after { content: "+"; font: 400 1.5rem/1 var(--body); color: var(--orange); transition: transform .2s; } +summary::after { content: "+"; font: 400 1.5rem/1 var(--body); color: var(--orange-ink); transition: transform .2s; } details[open] summary::after { transform: rotate(45deg); } details p { margin: 0 0 18px; color: #4a4d5f; } details code { background: var(--cream); padding: 1px 6px; border-radius: 5px; } /* ---------- final ---------- */ .final { - text-align: center; color: #fff; margin: 40px 24px 0; border-radius: 32px; + text-align: center; color: var(--ink); margin: 40px 24px 0; border-radius: 32px; background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 40%), linear-gradient(160deg, #ff9a45, var(--orange) 50%, #ef6a08); @@ -513,14 +514,14 @@ details code { background: var(--cream); padding: 1px 6px; border-radius: 5px; } max-width: 1180px; margin-inline: auto; } .final h2 { font-size: clamp(2.4rem, 6vw, 4.4rem); } -.final > p { font-size: 1.15rem; margin: 0 0 28px; color: #fff3e8; } +.final > p { font-size: 1.15rem; margin: 0 0 28px; color: var(--ink); } .final-logo { margin: 0 auto 18px; animation: bob 3s ease-in-out infinite; filter: drop-shadow(0 10px 16px rgba(0,0,0,.25)); } .footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; max-width: 1180px; margin: 0 auto; padding: 40px 24px 60px; color: var(--muted); font-size: .9rem; } .footer div:first-child { display: flex; align-items: center; gap: 8px; } .foot-links { display: flex; gap: 18px; } .foot-links a { text-decoration: none; } -.foot-links a:hover { color: var(--orange); } +.foot-links a:hover { color: var(--orange-ink); } /* ---------- the page buddy (follows your mouse) ---------- */ .page-buddy { position: fixed; left: 0; top: 0; z-index: 100; pointer-events: none; will-change: transform; transition: opacity .2s; }