:root { color-scheme: light; --animal-primary: #19c8b9; --animal-primary-hover: #3dd4c6; --animal-primary-active: #11a89b; --animal-primary-bg: #e6f9f6; --animal-success: #6fba2c; --animal-warning: #f5c31c; --animal-error: #e05a5a; --animal-text: #794f27; --animal-text-body: #725d42; --animal-text-muted: #8a7b66; --animal-text-secondary: #9f927d; --animal-border: #c4b89e; --animal-border-strong: #9f927d; --animal-border-hover: #a89878; --animal-bg: #f8f8f0; --animal-bg-content: #f7f3df; --animal-bg-soft: #fffaf0; --animal-shadow-btn: #bdaea0; --animal-shadow-input: #d4c9b4; --animal-focus: #ffcc00; --trail-sky: #7db7d8; --trail-blue: #4c78a8; --trail-leaf: #7cb342; --trail-coral: #e05a5a; --trail-ink: #2f4b4a; --surface: rgba(255, 252, 244, 0.94); --surface-solid: #fffaf0; --line: rgba(159, 146, 125, 0.48); --radius-sm: 12px; --radius-md: 18px; --radius-lg: 24px; --radius-pill: 50px; --ease: cubic-bezier(0.4, 0, 0.2, 1); --esp-tools-button-color: var(--animal-primary); --esp-tools-button-text-color: #0f3e38; --esp-tools-button-border-radius: 24px; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; min-height: 100vh; color: var(--animal-text-body); font-family: Nunito, "Noto Sans SC", "Zen Maru Gothic", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-weight: 500; background: repeating-linear-gradient( 90deg, rgba(25, 200, 185, 0.05) 0 1px, transparent 1px 56px ), repeating-linear-gradient( 0deg, rgba(124, 179, 66, 0.045) 0 1px, transparent 1px 56px ), linear-gradient(180deg, #e6f9f6 0, var(--animal-bg) 280px, #fff8e7 100%); } body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(135deg, rgba(245, 195, 28, 0.2), transparent 32%), linear-gradient(315deg, rgba(125, 183, 216, 0.18), transparent 36%); } a { color: inherit; text-decoration: none; } button { font: inherit; } .page-shell { width: min(1320px, calc(100% - 32px)); margin: 0 auto; padding: 18px 0 64px; } .topbar { position: sticky; top: 10px; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 16px; border: 2px solid rgba(159, 146, 125, 0.5); border-radius: var(--radius-lg); background: rgba(255, 252, 244, 0.9); box-shadow: 0 5px 0 0 rgba(189, 174, 160, 0.8); backdrop-filter: blur(14px); } .brand { display: inline-flex; align-items: center; gap: 12px; min-width: max-content; color: var(--animal-text); font-weight: 900; } .brand-logo { display: block; width: 58px; height: 38px; object-fit: contain; filter: drop-shadow(0 4px 0 rgba(189, 174, 160, 0.55)); } .brand-text { color: var(--animal-text); font-size: 1rem; } .top-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; } .top-link, .lang-button { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 2px solid transparent; border-radius: var(--radius-pill); color: var(--animal-text-muted); font-weight: 900; line-height: 1; transition: background-color 160ms var(--ease), border-color 160ms var(--ease), box-shadow 160ms var(--ease), color 160ms var(--ease), transform 160ms var(--ease); } .top-link:hover, .lang-button:hover { color: var(--trail-ink); background: rgba(25, 200, 185, 0.12); transform: translateY(-1px); } .top-link-strong { color: #083d37; background: var(--animal-primary); border-color: #4de2da; box-shadow: 0 3px 0 0 #0a9189; } .language-toggle { display: inline-flex; gap: 4px; padding: 4px; border: 2px solid rgba(159, 146, 125, 0.32); border-radius: var(--radius-pill); background: rgba(255, 250, 240, 0.86); } .lang-button { min-height: 30px; padding: 0 12px; border: 0; background: transparent; cursor: pointer; } .lang-button.is-active { color: var(--animal-text); background: rgba(245, 195, 28, 0.26); box-shadow: inset 0 -2px 0 rgba(219, 169, 14, 0.35); } .content-shell { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 28px; align-items: start; margin-top: 26px; min-width: 0; } .sidebar { position: sticky; top: 94px; max-height: calc(100vh - 112px); overflow: auto; padding: 18px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: var(--radius-lg); background: rgba(255, 252, 244, 0.82); box-shadow: 0 5px 0 0 rgba(212, 201, 180, 0.72); min-width: 0; } .sidebar-label { margin: 0 0 12px; color: var(--animal-primary-active); font-size: 0.78rem; font-weight: 900; letter-spacing: 0.02em; text-transform: uppercase; } .side-nav { display: grid; gap: 8px; } .side-nav a, .nav-group summary, .side-device { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 40px; padding: 0 13px; border: 2px solid transparent; border-radius: var(--radius-sm); color: var(--animal-text-muted); background: transparent; font-weight: 900; text-align: left; cursor: pointer; transition: background-color 160ms var(--ease), color 160ms var(--ease), transform 160ms var(--ease); } .side-nav a::before, .nav-group summary::before, .side-device::before { content: ""; flex: 0 0 22px; width: 22px; height: 22px; background: url("./assets/animal-island/icons/icon-map.svg") center / contain no-repeat; } .side-nav a[href="#overview"]::before { background-image: url("./assets/animal-island/icons/location.svg"); } .side-nav a[href="#capabilities"]::before { background-image: url("./assets/animal-island/icons/icon-design.svg"); } .nav-group summary::before { background-image: url("./assets/animal-island/icons/icon-helicopter.svg"); } .side-device::before { background-image: url("./assets/animal-island/icons/icon-camera.svg"); } .side-nav a[href="#features"]::before { background-image: url("./assets/animal-island/icons/icon-chat.svg"); } .side-nav a[href="#languages"]::before { background-image: url("./assets/animal-island/icons/icon-miles.svg"); } .side-nav a[href="#webflasher"]::before { background-image: url("./assets/animal-island/icons/icon-shopping.svg"); } .side-nav a[href="#docs"]::before { background-image: url("./assets/animal-island/icons/wifi.svg"); } .side-nav a:hover, .nav-group summary:hover, .side-device:hover { color: var(--trail-ink); background: rgba(25, 200, 185, 0.12); transform: translateY(-1px); } .side-nav a { justify-content: flex-start; } .nav-group summary::after { margin-left: auto; } .side-device span { flex: 1; min-width: 0; } .nav-group { display: grid; gap: 6px; } .nav-group summary { list-style: none; } .nav-group summary::-webkit-details-marker { display: none; } .nav-group summary::after { content: "+"; color: var(--animal-primary-active); } .nav-group[open] summary::after { content: "-"; } .side-device { display: flex; align-items: center; justify-content: flex-start; gap: 10px; min-height: 44px; margin-top: 4px; padding: 0 12px; border-color: rgba(159, 146, 125, 0.2); background: rgba(255, 250, 240, 0.62); } .side-device small { flex: 0 1 auto; min-width: 0; color: var(--animal-text-secondary); font-size: 0.72rem; font-weight: 900; line-height: 1.12; text-align: left; } .side-device span { overflow-wrap: anywhere; } .side-device.is-active, .device-tab.is-active { color: var(--animal-text); background: rgba(245, 195, 28, 0.22); border-color: rgba(219, 169, 14, 0.38); box-shadow: 0 3px 0 0 rgba(219, 169, 14, 0.32); } .main-content { min-width: 0; } .hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 0.86fr); gap: 34px; align-items: center; padding: 28px 0 30px; min-width: 0; } .hero-copy { max-width: 680px; min-width: 0; } .eyebrow, .feature-kicker, .board-chip { margin: 0 0 10px; color: var(--animal-primary-active); font-size: 0.78rem; font-weight: 900; letter-spacing: 0.02em; text-transform: uppercase; } h1, h2, h3, p, dd, dt { margin: 0; } h1 { color: var(--animal-text); font-size: 4.8rem; font-weight: 900; line-height: 0.94; letter-spacing: 0; text-shadow: 0 4px 0 rgba(189, 174, 160, 0.7); } .hero-tagline { max-width: 14ch; margin-top: 12px; color: var(--trail-ink); font-size: 2rem; font-weight: 800; line-height: 1.12; } .lede { max-width: 60ch; margin-top: 18px; color: var(--animal-text-muted); font-size: 1.05rem; line-height: 1.72; } .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; } .button, .flash-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 2px solid transparent; border-radius: var(--radius-lg); font-weight: 900; line-height: 1; transition: transform 160ms var(--ease), box-shadow 160ms var(--ease), background-color 160ms var(--ease), border-color 160ms var(--ease); } .button:hover, .flash-button:hover { transform: translateY(-1px); } .button:active, .flash-button:active { transform: translateY(2px); } .button-primary, .flash-button { color: #083d37; background: var(--animal-primary); border-color: #4de2da; box-shadow: 0 5px 0 0 #0a9189; } .button-primary:hover, .flash-button:hover { background: var(--animal-primary-hover); } .button-primary:active, .flash-button:active { box-shadow: 0 1px 0 0 #0a9189; } .button-secondary { color: var(--animal-text); background: var(--animal-bg); border-color: var(--animal-border); box-shadow: 0 5px 0 0 var(--animal-shadow-btn); } .button-secondary:hover { border-color: var(--animal-border-hover); box-shadow: 0 6px 0 0 var(--animal-shadow-btn); } .button-secondary:active { box-shadow: 0 1px 0 0 var(--animal-shadow-btn); } .hero-visual, .language-highlight, .language-pack-card, .capability-card, .collapse-panel, .board-card, .shot, .device-stage, .links-section article { transition: transform 220ms var(--ease), box-shadow 220ms var(--ease), border-color 220ms var(--ease); } .hero-visual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 18px; border: 2px solid var(--animal-border); border-radius: 32px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 248, 231, 0.9)), var(--animal-bg-content); box-shadow: 0 7px 0 0 rgba(189, 174, 160, 0.82); } .hero-screen { grid-column: 1 / -1; display: grid; place-items: center; aspect-ratio: 480 / 222; min-height: 0; padding: 12px; overflow: hidden; border: 2px solid rgba(159, 146, 125, 0.5); border-radius: var(--radius-lg); background: #2f4b4a; box-shadow: inset 0 0 0 4px rgba(255, 250, 240, 0.08); } .hero-screen img, .shot img, .device-main-shot img, .device-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; } .hero-screen img { border-radius: var(--radius-sm); } .hero-note { min-height: 118px; padding: 14px 16px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: var(--radius-md); background: rgba(255, 252, 244, 0.86); } .hero-note-value { color: var(--animal-text-body); line-height: 1.45; } .overview-ribbon { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.9fr); gap: 20px; align-items: center; margin-top: 18px; padding: 24px 28px; border: 2px dashed rgba(159, 146, 125, 0.55); border-radius: var(--radius-lg); background: rgba(230, 249, 246, 0.72); } .overview-copy, .story-lede, .links-section p, .section-note, .board-copy, .board-hint, .support-note, .workflow-note p, .capability-card p, .language-highlight p:last-child, .language-pack-summary, .device-summary, .device-empty p, .collapse-content p, .site-footer-card p { color: var(--animal-text-muted); line-height: 1.7; } .overview-tags { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; } .overview-tags span, .language-pill, .device-status-card, .device-meta-chip { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 2px solid rgba(159, 146, 125, 0.36); border-radius: var(--radius-pill); background: rgba(255, 250, 240, 0.86); color: var(--animal-text); font-size: 0.78rem; font-weight: 900; } .overview-tags span:nth-child(3n + 1), .language-pill:nth-child(3n + 1) { background: rgba(25, 200, 185, 0.12); } .overview-tags span:nth-child(3n + 2), .language-pill:nth-child(3n + 2) { background: rgba(245, 195, 28, 0.18); } .overview-tags span:nth-child(3n + 3), .language-pill:nth-child(3n + 3) { background: rgba(124, 179, 66, 0.14); } .capability-section, .device-section, .language-section, .install-section { margin-top: 34px; padding: 34px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: 34px; background: linear-gradient(180deg, rgba(255, 252, 244, 0.92), rgba(247, 243, 223, 0.86)), var(--animal-bg-content); } .section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; } .section-heading h2, .story-copy h2, .capability-card h3, .collapse-panel summary, .links-section h2, .install-section h2, .site-footer-card h2 { color: var(--animal-text); font-weight: 900; line-height: 1.08; letter-spacing: 0; } .section-heading h2, .story-copy h2, .links-section h2, .install-section h2, .site-footer-card h2 { font-size: 2.12rem; } .section-note { max-width: 52ch; } .animal-divider { width: min(760px, 82%); height: 18px; margin: 34px auto 0; background: url("./assets/animal-island/dividers/divider-line-teal.svg") center / contain no-repeat; } .animal-divider-teal { background-image: url("./assets/animal-island/dividers/divider-line-teal.svg"); } .capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 24px; } .capability-card { position: relative; min-height: 210px; padding: 24px 22px 22px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: var(--radius-md); background: rgba(255, 252, 244, 0.86); box-shadow: 0 4px 0 0 rgba(212, 201, 180, 0.8); } .capability-card::before { content: ""; display: block; width: 54px; height: 54px; margin-bottom: 12px; background: url("./assets/animal-island/icons/icon-map.svg") center / contain no-repeat; filter: drop-shadow(0 4px 0 rgba(189, 174, 160, 0.42)); transition: transform 220ms var(--ease); } .capability-card:hover::before { transform: scale(1.08) rotate(-4deg); } .capability-device::before { background-image: url("./assets/animal-island/icons/icon-helicopter.svg"); } .capability-navigation::before { background-image: url("./assets/animal-island/icons/icon-map.svg"); } .capability-protocol::before { background-image: url("./assets/animal-island/icons/icon-chat.svg"); } .capability-install::before { background-image: url("./assets/animal-island/icons/icon-shopping.svg"); } .capability-locale::before { background-image: url("./assets/animal-island/icons/icon-design.svg"); } .capability-field::before { background-image: url("./assets/animal-island/icons/icon-diy.svg"); } .capability-card:nth-child(6n + 1), .capability-card:nth-child(6n + 4) { background: linear-gradient(180deg, rgba(230, 249, 246, 0.9), rgba(255, 252, 244, 0.94)); } .capability-card:nth-child(6n + 2), .capability-card:nth-child(6n + 5) { background: linear-gradient(180deg, rgba(255, 248, 210, 0.92), rgba(255, 252, 244, 0.94)); } .capability-card:nth-child(6n + 3), .capability-card:nth-child(6n + 6) { background: linear-gradient(180deg, rgba(232, 246, 218, 0.92), rgba(255, 252, 244, 0.94)); } .capability-card:hover, .collapse-panel:hover { transform: translateY(-2px); border-color: var(--animal-border-hover); box-shadow: 0 6px 0 0 rgba(212, 201, 180, 0.9); } .capability-card h3 { margin-bottom: 10px; font-size: 1.32rem; } .device-browser { overflow: hidden; margin-top: 24px; border: 2px solid var(--animal-border); border-radius: var(--radius-lg); background: var(--animal-bg); } .device-switcher { display: flex; flex-wrap: wrap; gap: 4px; padding: 16px; border-bottom: 2px solid var(--animal-border); background: rgba(255, 255, 255, 0.6); } .device-tab { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 0; border-radius: var(--radius-lg); background: transparent; color: var(--animal-text); cursor: pointer; text-align: left; transition: background-color 160ms var(--ease), border-color 160ms var(--ease), box-shadow 160ms var(--ease), color 160ms var(--ease), transform 160ms var(--ease); } .device-tab:hover { background: rgba(25, 200, 185, 0.12); color: var(--animal-text); } .device-tab span { position: relative; z-index: 1; font-weight: 700; } .device-tab small { position: relative; z-index: 1; color: inherit; font-size: 0.78rem; font-weight: 800; opacity: 0.72; } .device-tab::before { content: ""; position: relative; z-index: 1; flex: 0 0 24px; width: 24px; height: 24px; background: url("./assets/animal-island/icons/icon-camera.svg") center / contain no-repeat; transition: transform 220ms var(--ease); } .device-tab[data-device-target="tlora-pager-sx1262"]::before { background-image: url("./assets/animal-island/icons/icon-chat.svg"); } .device-tab[data-device-target="tlora-pager-lr1121"]::before { background-image: url("./assets/animal-island/icons/wifi.svg"); } .device-tab[data-device-target="tdeck"]::before { background-image: url("./assets/animal-island/icons/icon-map.svg"); } .device-tab[data-device-target="lilygo-twatch-s3"]::before { background-image: url("./assets/animal-island/icons/icon-miles.svg"); } .device-tab[data-device-target="gat562-mesh-evb-pro"]::before { background-image: url("./assets/animal-island/icons/wifi.svg"); } .device-tab.is-active::before { transform: scale(1.2); } .device-tab.is-active::after { content: ""; position: absolute; top: -8px; right: -5px; width: 18px; height: 18px; background: url("./assets/animal-island/icons/icon-leaf.png") center / contain no-repeat; animation: leafWiggle 2s ease-in-out infinite; } .device-tab.is-active { color: #fff9e3; background: #0cc0b5; border-color: transparent; box-shadow: 0 3px 0 0 rgba(61, 52, 40, 0.08); } @keyframes leafWiggle { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-10deg); } 75% { transform: rotate(10deg); } } .device-stage { min-width: 0; padding: 24px; border: 0; border-radius: 0; background: transparent; box-shadow: none; animation: fadeIn 0.25s ease; } @keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } } .device-stage-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; } .device-stage-header h3 { color: var(--animal-text); font-size: 2rem; font-weight: 900; line-height: 1.06; } .device-summary { max-width: 64ch; margin-top: 10px; } .device-status-card { min-width: max-content; background: rgba(25, 200, 185, 0.12); } .device-showcase { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(240px, 0.55fr); gap: 18px; align-items: stretch; margin-top: 18px; } .device-main-shot { display: grid; grid-template-rows: 1fr auto; min-width: 0; margin: 0; overflow: hidden; border: 2px solid rgba(159, 146, 125, 0.46); border-radius: var(--radius-lg); background: #2f4b4a; } .device-main-shot img { aspect-ratio: 480 / 222; min-height: 0; padding: 14px; } .device-main-shot figcaption { padding: 12px 14px; border-top: 2px solid rgba(255, 250, 240, 0.16); color: #fffaf0; font-weight: 900; } .device-detail-panel { padding: 18px; border: 2px dashed rgba(159, 146, 125, 0.46); border-radius: var(--radius-md); background: rgba(230, 249, 246, 0.52); } .device-interactions { display: grid; gap: 12px; margin: 0; padding-left: 20px; color: var(--trail-ink); line-height: 1.58; } .device-interactions li::marker { color: var(--animal-primary-active); } .device-thumb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; } .device-thumb { display: grid; gap: 8px; min-width: 0; padding: 8px; border: 2px solid rgba(159, 146, 125, 0.32); border-radius: var(--radius-md); background: rgba(255, 250, 240, 0.82); color: var(--animal-text-muted); cursor: pointer; text-align: left; transition: background-color 160ms var(--ease), border-color 160ms var(--ease), box-shadow 160ms var(--ease), color 160ms var(--ease), transform 160ms var(--ease); } .device-thumb:hover, .device-thumb.is-active { color: var(--animal-text); border-color: rgba(25, 200, 185, 0.58); background: rgba(230, 249, 246, 0.86); transform: translateY(-1px); } .device-thumb.is-active { box-shadow: 0 3px 0 0 rgba(17, 168, 155, 0.32); } .device-thumb img { aspect-ratio: 480 / 222; border-radius: 10px; background: #f8f4e8; } .device-thumb span { display: block; padding: 0 4px 3px; font-size: 0.86rem; font-weight: 900; } .device-empty { grid-column: 1 / -1; padding: 22px; border: 2px dashed rgba(159, 146, 125, 0.46); border-radius: var(--radius-md); background: rgba(255, 250, 240, 0.7); } .device-empty h4 { margin: 0 0 8px; color: var(--animal-text); font-size: 1.15rem; font-weight: 900; } .story-stack { display: grid; gap: 16px; margin-top: 34px; } .story-section { display: grid; grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr); gap: 28px; align-items: center; padding: 34px 0; border-top: 2px solid rgba(159, 146, 125, 0.28); } .story-lede { margin-top: 12px; } .story-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; min-height: 0; } .shot { display: grid; place-items: center; width: 100%; aspect-ratio: 480 / 222; min-width: 0; margin: 0; padding: 10px; overflow: hidden; border: 2px solid rgba(159, 146, 125, 0.46); border-radius: var(--radius-md); background: linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 248, 231, 0.74)), #f8f4e8; box-shadow: 0 4px 0 0 rgba(212, 201, 180, 0.82); } .shot:hover { transform: translateY(-2px); border-color: var(--animal-border-hover); box-shadow: 0 6px 0 0 rgba(212, 201, 180, 0.9); } .shot img { border-radius: 10px; background: #f8f4e8; } .language-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 24px; } .language-highlight, .language-pack-card, .board-card { padding: 22px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: var(--radius-md); background: var(--surface); box-shadow: 0 4px 0 0 rgba(212, 201, 180, 0.8); } .language-highlight:nth-child(4n + 1), .language-pack-card:nth-child(4n + 1), .board-card:nth-child(4n + 1) { background: linear-gradient(180deg, rgba(230, 249, 246, 0.9), rgba(255, 252, 244, 0.94)); } .language-highlight:nth-child(4n + 2), .language-pack-card:nth-child(4n + 2), .board-card:nth-child(4n + 2) { background: linear-gradient(180deg, rgba(255, 248, 210, 0.92), rgba(255, 252, 244, 0.94)); } .language-highlight:nth-child(4n + 3), .language-pack-card:nth-child(4n + 3), .board-card:nth-child(4n + 3) { background: linear-gradient(180deg, rgba(232, 246, 218, 0.92), rgba(255, 252, 244, 0.94)); } .language-highlight:hover, .language-pack-card:hover, .board-card:hover { transform: translateY(-2px); border-color: var(--animal-border-hover); box-shadow: 0 6px 0 0 rgba(212, 201, 180, 0.9); } .language-highlight h3, .language-pack-card h3, .board-card h3 { color: var(--animal-text); font-size: 1.28rem; font-weight: 900; line-height: 1.18; letter-spacing: 0; } .language-highlight p:last-child, .language-pack-summary { margin-top: 10px; } .language-pack-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; } .language-pack-meta, .language-pack-locales, .language-pack-profiles { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; } .language-pack-empty { grid-column: 1 / -1; } .install-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 24px; } .board-card h3 { margin-bottom: 8px; font-size: 1.42rem; } .board-copy { min-height: 52px; } .board-install { margin-top: 18px; padding-top: 16px; border-top: 2px dashed rgba(159, 146, 125, 0.38); } .board-card-muted { background: linear-gradient(180deg, rgba(224, 90, 90, 0.1), rgba(255, 252, 244, 0.94)); } .install-button-wrap { display: flex; flex-direction: column; gap: 12px; } .flash-button { appearance: none; cursor: pointer; } .release-link { display: inline-flex; margin-top: 16px; color: var(--animal-primary-active); font-weight: 900; } .release-link:hover { color: var(--trail-ink); } .workflow-note { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 22px; } .workflow-note p { padding: 14px 16px; border: 2px dashed rgba(159, 146, 125, 0.38); border-radius: var(--radius-md); background: rgba(255, 252, 244, 0.76); } .collapse-list { display: grid; gap: 12px; margin-top: 24px; } .collapse-panel { overflow: hidden; border: 2px solid var(--animal-border); border-radius: var(--radius-md); background: rgba(255, 252, 244, 0.82); box-shadow: 0 3px 0 0 rgba(212, 201, 180, 0.8); } .collapse-panel summary { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 16px 24px; cursor: pointer; list-style: none; font-size: 1.02rem; } .collapse-panel summary::-webkit-details-marker { display: none; } .collapse-icon { display: inline-flex; flex: 0 0 28px; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--animal-primary); color: #fff; box-shadow: 0 2px 4px rgba(25, 200, 185, 0.3); font-size: 1.1rem; font-weight: 900; transition: transform 220ms var(--ease); } .collapse-panel[open] .collapse-icon { transform: rotate(45deg); } .collapse-content { padding: 0 24px 24px 64px; animation: fadeIn 0.25s ease; } .links-section { margin-top: 28px; } .links-section article { padding: 28px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: var(--radius-lg); background: rgba(230, 249, 246, 0.62); } .links-section p { max-width: 74ch; margin-top: 10px; } dt { margin-bottom: 6px; color: var(--animal-text-muted); font-size: 0.95rem; } dd { font-size: 1.05rem; line-height: 1.45; } .site-footer { margin-top: 44px; } .site-footer-card { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 28px; border: 2px solid rgba(159, 146, 125, 0.42); border-radius: var(--radius-lg); background: rgba(255, 252, 244, 0.84); box-shadow: 0 5px 0 0 rgba(212, 201, 180, 0.78); } .site-footer-card h2 { max-width: 18ch; } .site-footer-card p:last-child { max-width: 68ch; margin-top: 12px; } .site-footer-links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; } .site-footer-links a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 2px solid rgba(159, 146, 125, 0.36); border-radius: var(--radius-pill); background: rgba(230, 249, 246, 0.74); color: var(--animal-text); font-weight: 900; transition: background-color 160ms var(--ease), transform 160ms var(--ease); } .site-footer-links a:hover { background: rgba(25, 200, 185, 0.16); transform: translateY(-1px); } .animal-footer-art { width: 100%; height: 96px; margin-top: 18px; background: url("./assets/animal-island/footer/footer-tree.webp") bottom center / cover no-repeat; border-radius: var(--radius-lg); } @media (max-width: 1120px) { .content-shell { grid-template-columns: 1fr; } .sidebar { position: sticky; top: 86px; z-index: 12; max-height: none; overflow: visible; } .side-nav { display: flex; flex-wrap: wrap; align-items: flex-start; } .side-nav > a, .nav-group { flex: 1 1 160px; } .nav-group { min-width: 220px; } .side-device { width: 100%; margin-right: 0; } } @media (max-width: 980px) { .hero, .overview-ribbon, .device-browser, .device-showcase, .story-section, .install-grid, .workflow-note, .capability-grid { grid-template-columns: 1fr; } .overview-tags { justify-content: flex-start; } .section-heading, .device-stage-header { align-items: flex-start; flex-direction: column; } .hero-copy { max-width: none; } .hero-tagline { max-width: 20ch; } .device-switcher { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-footer-card { align-items: flex-start; flex-direction: column; } .site-footer-links { justify-content: flex-start; } } @media (max-width: 760px) { html, body { overflow-x: hidden; } .page-shell { width: calc(100% - 24px); padding-top: 12px; } .topbar { align-items: stretch; flex-direction: column; } .brand, .top-actions { justify-content: center; } .top-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; } .top-link { width: 100%; min-width: 0; padding-inline: 10px; } .language-toggle { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; } .lang-button { min-width: 0; } .sidebar { position: static; padding: 14px; } .side-nav { display: grid; overflow: visible; padding-bottom: 0; } .side-nav > a, .nav-group { flex: initial; min-width: 0; } .side-device { width: 100%; min-height: 40px; padding-inline: 12px; } .hero { padding-top: 24px; } h1 { font-size: 3.2rem; } .hero-tagline { max-width: none; font-size: 1.55rem; } .hero-visual, .capability-section, .device-section, .language-section, .install-section, .links-section article { padding: 20px; border-radius: var(--radius-lg); } .hero-visual, .language-highlights, .language-pack-grid, .story-media, .device-thumb-grid, .device-switcher, .capability-grid { grid-template-columns: 1fr; } .device-switcher { display: grid; } .hero-screen { grid-column: auto; } .section-heading h2, .story-copy h2, .links-section h2, .install-section h2 { font-size: 1.65rem; } .device-stage-header h3 { font-size: 1.65rem; } .collapse-panel summary { padding: 14px 16px; } .collapse-content { padding: 0 16px 18px 56px; } } @media (max-width: 430px) { .page-shell { width: calc(100% - 18px); } .topbar, .hero-visual, .capability-section, .device-section, .language-section, .install-section, .links-section article, .capability-card, .language-highlight, .language-pack-card, .board-card, .device-stage, .site-footer-card { padding: 16px; } h1 { font-size: 2.72rem; } .hero-tagline { font-size: 1.32rem; } .button, .flash-button { width: 100%; } .overview-ribbon { padding: 18px; } .collapse-content { padding-left: 16px; } .site-footer-links a { flex: 1 1 100%; justify-content: center; } }