Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 31 additions & 30 deletions docs/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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; }
Expand All @@ -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);
}
Expand Down Expand Up @@ -115,22 +116,22 @@ 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%;
}
.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);
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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); } }
Expand Down Expand Up @@ -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; }
Expand All @@ -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; }
Expand All @@ -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; }
Expand All @@ -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 ---------- */
Expand All @@ -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; }
Expand All @@ -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; }
Expand All @@ -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; }
Expand All @@ -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; }
Expand All @@ -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); }
Expand All @@ -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; }
Expand All @@ -498,29 +499,29 @@ 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);
border: 2px solid var(--ink); box-shadow: 8px 8px 0 var(--ink);
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; }
Expand Down
Loading