/* dainky — shared space theme. Native CSS; no runtime dependencies. */
@font-face { font-family: Manrope; font-style: normal; font-weight: 200 800; font-display: swap; src: url('/assets/fonts/manrope-latin.woff2') format('woff2'); }
:root {
  color-scheme: dark; --void: #03060d; --void-soft: #080d17; --surface: rgba(11,18,30,.84); --surface-solid: #0b121e; --surface-lift: rgba(19,28,43,.88);
  --line: rgba(183,204,234,.13); --line-bright: rgba(183,204,234,.28); --ink: #eff4fc; --muted: #a2afc3; --dim: #7f90a8;
  --cyan: #96ceff; --violet: #afaff7; --violet-hot: #d1ceff; --rose: #eda5bc; --lime: #9de3cb; --danger: #f398a7;
  --sans: Manrope, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --mono: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  --ease: cubic-bezier(.22,.68,.2,1); --max: 1120px; --nav-h: 84px;
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--void); scroll-behavior: smooth; scroll-padding-top: 130px; }
body[data-page] { margin: 0; color: var(--ink) !important; background: var(--void) !important; font-family: var(--sans) !important; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; isolation: isolate; }
body[data-page]::before, body[data-page]::after { display: none; }
a { color: inherit; }
button { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
svg { display: block; }
::selection { background: #b5dbff; color: #05101f; }
:focus-visible { outline: 2px solid #a9d6ff !important; outline-offset: 5px !important; }
[hidden] { display: none !important; }
.skip-link { position: fixed; left: 20px; top: -100px; z-index: 10000; padding: 12px 20px; border-radius: 8px; background: #d3eaff; color: #071120; }
.skip-link:focus { top: 12px; }
.sol-sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* Photographic horizon, with an independent animated star layer. */
.space-scene { position: fixed; inset: 0; z-index: -2; pointer-events: none; overflow: hidden; background: #03060d; }
.space-scene::before { content: ''; position: absolute; inset: 0; background: url('/assets/media/space-horizon.webp') center bottom / cover no-repeat; opacity: .88; }
.space-scene::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(3,6,13,.18),transparent 48%,rgba(3,6,13,.05) 78%,#03060d 100%); }
.space-stars { position: fixed; inset: 0; z-index: -1; pointer-events: none; width: 100%; height: 100%; }
body:not([data-page="home"]) .space-scene::before { opacity: .4; }
body:not([data-page="home"]) .space-stars { opacity: .62; }
/* Shared navigation. */
.site-header { margin: 0 !important; padding: 0 !important; text-align: left !important; position: relative; z-index: 50; width: 100%; }
.site-header__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 28px; width: min(calc(100% - 96px),1280px); min-height: 90px; margin: 0 auto; border-bottom: 1px solid rgba(181,203,233,.1); }
.site-brand { display: inline-flex; gap: 11px; align-items: center; text-decoration: none; font-size: 20px; font-weight: 700; letter-spacing: -.9px; }
.brand-mark { width: 35px; height: 35px; color: #bdd9f9; transition: transform 600ms var(--ease); }
.site-brand:hover .brand-mark { transform: rotate(-14deg); }
.brand-dot { color: #83aedd; }
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; color: #95a4b9 !important; font-size: 14px; font-weight: 500; transition: color .2s; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: #eaf4ff !important; }
.site-nav a[aria-current="page"]::after { content: ''; position: absolute; bottom: -24px; left: 0; right: 0; height: 1px; background: #b0d6ff; box-shadow: 0 0 12px #7bc4ff88; }
.site-nav .nav-terminal { gap: 10px; margin-left: 8px; font-family: var(--mono); font-size: 13px; }
.nav-terminal > span { color: #9db9d9; }
.sol-progress { position: absolute; height: 1px; width: 0; bottom: -1px; left: 0; background: #a6d5ff; }
body[data-page]:not([data-page="home"]) { padding-top: var(--nav-h); }
body:not([data-page="home"]) .site-header { position: fixed; top: 0; background: rgba(3,6,13,.85); backdrop-filter: blur(22px); }
body:not([data-page="home"]) .site-header__inner { min-height: var(--nav-h); }
body:not([data-page="home"]) .site-nav a[aria-current="page"]::after { bottom: -21px; }
body[data-page] h1, body[data-page] h2, body[data-page] h3 { font-family: var(--sans); }
body[data-page]:not([data-page="home"]) h1 { font-weight: 600 !important; letter-spacing: -.055em !important; }
body[data-page] .back { font-size: 12px !important; }
body[data-page] footer { font-size: 12px !important; }
body[data-page] .tag, body[data-page] .tech-tag { font-size: 12px !important; }
body[data-page] .sol-jump { background: #0c1523; border-color: var(--line-bright); color: var(--ink); }
body[data-page] .sol-zoomable { cursor: zoom-in; }
/* Market quotes: pause on hover, focus, or reduced motion. */
.market-bar { display: flex; align-items: center; height: 36px; flex: none; border-bottom: 1px solid rgba(174,198,228,.09); background: rgba(3,6,13,.65); overflow: hidden; }
.market-label { flex: none; padding: 0 23px; border-right: 1px solid var(--line); color: #95a7bf; font: 500 12px/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.ticker-viewport { flex: 1; min-width: 0; overflow: hidden; mask-image: linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 30px),transparent); }
.ticker-track { display: flex; align-items: center; width: max-content; animation: market-scroll 58s linear infinite; }
.ticker-track:has(.ticker-message) { animation: none; }
.ticker-set { display: flex; align-items: center; flex: none; }
.tick { display: inline-flex; align-items: center; gap: 11px; padding: 0 25px; white-space: nowrap; font: 400 12px/34px var(--mono); font-variant-numeric: tabular-nums; }
.tick::after { content: ''; display: inline-block; width: 3px; height: 3px; margin-left: 28px; background: #40516c; border-radius: 50%; }
.tick .sym { color: #a9b8cb; }
.tick .px { color: #d3dfef; }
.tick .up { color: #95ceb8; }
.tick .down { color: #e69aab; }
.ticker-message { padding: 0 28px; font: 12px/34px var(--mono); color: var(--dim); }
.ticker-viewport:hover .ticker-track, .ticker-viewport:focus-within .ticker-track { animation-play-state: paused; }
@keyframes market-scroll { to { transform: translateX(-50%); } }
/* Compact home surface. */
body[data-page="home"] { min-height: 100svh; display: flex; flex-direction: column; padding: 0; overflow-x: clip; }
.home-shell { position: relative; z-index: 2; width: min(calc(100% - 96px),1064px); margin: auto; padding: clamp(38px,6vh,76px) 0 clamp(70px,13vh,142px); }
.home-intro { margin-bottom: 38px; }
.eyebrow { display: flex; align-items: center; gap: 10px; font: 500 12px/1.5 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: #b1c1d6; }
.eyebrow-line { width: 18px; height: 1px; background: #9ccfff; box-shadow: 0 0 10px #87c5ff88; }
body[data-page="home"] h1 { display: flex; align-items: baseline; gap: 3px; margin: 14px 0 10px; font-size: clamp(48px,5.8vw,76px); font-weight: 500; line-height: 1.1; letter-spacing: -.07em; text-wrap: nowrap; color: #f0f5fd; }
.home-domain { color: #8ca1bd; font-size: .42em; font-weight: 400; letter-spacing: -.045em; }
.home-intro p { margin: 0; font-size: 16px; letter-spacing: .01em; color: #a7b6cb; }
.section-heading { display: flex; align-items: center; gap: 17px; margin-bottom: 16px; }
.section-heading h2 { margin: 0; color: #b2c0d3; font: 500 12px/1.4 var(--mono); letter-spacing: .15em; text-transform: uppercase; }
.section-rule { height: 1px; flex: 1; background: linear-gradient(90deg,#9abde02a,#9abde00b); }
.section-count { color: #8498b3; font: 12px/1.4 var(--mono); letter-spacing: .08em; }
.service-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.app-card { --accent: 138,192,253; position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 222px; padding: 22px 21px 0; overflow: hidden; border: 1px solid rgba(163,190,225,.17); border-radius: 15px; text-decoration: none; background: radial-gradient(ellipse at 5% 0%,rgba(var(--accent),.075),transparent 66%),linear-gradient(145deg,rgba(13,22,36,.91),rgba(6,12,23,.83)); box-shadow: inset 0 1px 0 rgba(255,255,255,.035),0 14px 30px -20px #000a; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); transition: transform .32s var(--ease),border-color .3s,box-shadow .3s; }
.app-card[data-tone="violet"] { --accent: 177,164,249; }
.app-card[data-tone="rose"] { --accent: 235,162,192; }
.app-card[data-tone="mint"] { --accent: 146,220,194; }
.app-card::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(260px circle at var(--x,50%) var(--y,0%),rgba(var(--accent),.13),transparent 70%); transition: opacity .3s; }
.app-card::after { content: ''; position: absolute; top: 0; left: 20px; right: 20px; height: 1px; opacity: .48; background: linear-gradient(90deg,transparent,rgba(var(--accent),.62),transparent); transition: opacity .3s; }
.app-card__top { display: flex; align-items: flex-start; justify-content: space-between; }
.app-icon { display: grid; place-items: center; width: 46px; height: 46px; color: rgb(var(--accent)); }
.app-icon svg { width: 32px; height: 32px; filter: drop-shadow(0 0 12px rgba(var(--accent),.18)); transition: filter .3s,transform .35s var(--ease); }
.app-arrow { color: #8293ab; font-size: 21px; line-height: 1; padding: 4px 0 4px 12px; transition: color .3s,transform .3s; }
.app-card__copy { position: relative; margin-top: 25px; padding-bottom: 24px; }
.app-card h3 { margin: 0 0 5px; font-size: 19px; line-height: 1.3; font-weight: 600; letter-spacing: -.55px; color: #edf4ff; }
.app-card p { margin: 0; font-size: 14px; line-height: 1.6; font-weight: 400; color: #a4b2c6; }
.app-card__foot { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 41px; margin-top: auto; border-top: 1px solid rgba(163,190,225,.1); color: #8597b2; font: 12px/1.5 var(--mono); letter-spacing: -.04em; }
.card-index { color: rgba(var(--accent),.65); font-size: 12px; }
.app-card:focus-visible { border-color: rgba(var(--accent),.6); }
@media (hover:hover) {
  .app-card:hover { transform: translateY(-5px); border-color: rgba(var(--accent),.42); box-shadow: 0 15px 40px -20px rgba(var(--accent),.19),0 12px 26px -20px #000; }
  .app-card:hover::before, .app-card:hover::after { opacity: 1; }
  .app-card:hover .app-icon svg { filter: drop-shadow(0 0 14px rgba(var(--accent),.4)); transform: translateY(-1px); }
  .app-card:hover .app-arrow { transform: translate(2px,-2px); color: rgb(var(--accent)); }
}
.quick-links { display: flex; align-items: flex-start; gap: 10px; margin-top: 22px; }
.quick-link { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 15px; color: #bbc9dc; border: 1px solid rgba(163,190,225,.14); border-radius: 9px; background: rgba(6,13,24,.62); backdrop-filter: blur(16px); font-size: 14px; font-weight: 500; text-decoration: none; list-style: none; transition: background .2s,border-color .2s,color .2s; }
.quick-link:hover, .project-menu[open] .quick-link { color: #f0f6ff; background: rgba(19,31,49,.82); border-color: rgba(163,190,225,.3); }
.quick-link > svg { width: 17px; height: 17px; color: #a4bad6; }
.quick-link__arrow { margin-left: 8px; color: #7d93b0; font-size: 16px; }
.quick-count { display: grid; place-items: center; min-width: 21px; height: 18px; border-radius: 4px; background: #a7c7ed12; color: #9aaec8; font: 12px/1 var(--mono); }
.quick-link .chevron { width: 13px; height: 13px; color: #8ca3c0; transition: transform .2s; }
.project-menu { position: relative; }
.project-menu summary::-webkit-details-marker { display: none; }
.project-menu[open] .chevron { transform: rotate(180deg); }
.project-menu__list { position: absolute; z-index: 30; top: calc(100% + 9px); left: 0; width: 280px; padding: 7px; border: 1px solid rgba(163,190,225,.25); border-radius: 12px; background: rgba(8,16,29,.98); box-shadow: 0 18px 50px #0009; }
.project-menu__list a { display: flex; align-items: center; gap: 13px; min-height: 45px; padding: 0 10px; border-radius: 6px; font-size: 14px; text-decoration: none; color: #c4d3e8; }
.project-menu__list a > span:first-child { color: #8098b8; font: 12px/1 var(--mono); }
.project-menu__list a > span:last-child { margin-left: auto; color: #829bbb; }
.project-menu__list a:hover { color: #fff; background: rgba(133,186,247,.08); }
.home-footer { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; width: min(calc(100% - 96px),1280px); min-height: 74px; margin: 0 auto; padding: 18px 0 25px; color: #8fa3bf; font: 12px/1.5 var(--mono); letter-spacing: .02em; }
.footer-actions { display: flex; align-items: center; gap: 26px; }
.footer-actions a { display: inline-flex; align-items: center; gap: 12px; min-height: 38px; text-decoration: none; transition: color .2s; }
.footer-actions a:hover { color: #dcecff; }
.motion-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0; border: 0; background: none; color: #8fa3bf; font: inherit; cursor: pointer; }
.motion-toggle:hover { color: #dcecff; }
.motion-toggle svg { width: 15px; height: 15px; }
.surprise-view { position: fixed; z-index: 10000; inset: 0; display: grid; place-items: center; background: #000; }
.surprise-view img { width: 100%; height: 100%; max-height: 100svh; object-fit: contain; }
.surprise-close { position: absolute; z-index: 1; right: 20px; top: 20px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #fff6; color: #fff; background: #000b; font-size: 28px; line-height: 1; }
body[data-surprise="true"] { overflow: hidden; }
/* One brief entrance; content never relies on a JavaScript reveal. */
@keyframes arrive { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.home-intro { animation: arrive .8s var(--ease) both; }
.services { animation: arrive .8s .08s var(--ease) both; }
.quick-links { animation: arrive .8s .16s var(--ease) both; }
body[data-motion="paused"] .ticker-track { animation-play-state: paused !important; }
@media (min-width:1500px) {
  .home-shell { width: min(calc(100% - 144px),1140px); }
  .app-card { min-height: 232px; padding: 25px 24px 0; }
  .app-card__copy { margin-top: 29px; }
}
@media (max-width:1050px) {
  .site-header__inner, .home-footer { width: calc(100% - 56px); }
  .home-shell { width: calc(100% - 64px); }
  .service-grid { gap: 11px; }
  .app-card { padding: 18px 15px 0; min-height: 206px; }
  .app-card h3 { font-size: 18px; }
  .app-card__foot { flex-wrap: wrap; }
  .card-index { display: none; }
}
@media (max-width:900px) {
  .site-header__inner { min-height: 80px; }
  .site-nav { gap: 24px; }
  .site-nav a[aria-current="page"]::after { bottom: -19px; }
  .home-shell { width: min(calc(100% - 56px),620px); padding: 42px 0 66px; }
  .home-intro { margin-bottom: 30px; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .app-card { min-height: 198px; padding: 18px 18px 0; }
  .app-card__copy { margin-top: 17px; padding-bottom: 17px; }
  .quick-links { gap: 8px; margin-top: 18px; flex-wrap: wrap; }
  .quick-link { padding: 0 12px; gap: 8px; }
  .quick-link__arrow { display: none; }
  .home-footer { width: calc(100% - 48px); }
  .space-scene::before { background-size: auto 100%; background-position: 43% bottom; opacity: .82; }
}
@media (max-width:600px) {
  .site-nav .nav-terminal { display: none; }
  .site-nav { gap: 20px; }
  .site-brand { font-size: 19px; gap: 8px; }
  .brand-mark { width: 31px; height: 31px; }
  .site-header__inner { width: calc(100% - 40px); gap: 18px; min-height: 76px; }
  .site-nav a[aria-current="page"]::after { bottom: -17px; }
  .home-shell { width: calc(100% - 40px); padding-top: 34px; }
  body[data-page="home"] h1 { font-size: 55px; }
  .home-intro { margin-bottom: 26px; }
  .section-heading { margin-bottom: 13px; }
  .app-card { min-height: 198px; padding: 16px 14px 0; border-radius: 12px; }
  .app-card h3 { font-size: 17px; letter-spacing: -.4px; }
  .app-icon { width: 38px; height: 38px; }
  .app-icon svg { width: 29px; height: 29px; }
  .app-card__foot { min-height: 37px; font-size: 12px; overflow-wrap: anywhere; }
  .quick-link { padding: 0 12px; font-size: 14px; gap: 7px; }
  .quick-count { display: none; }
  .quick-link > svg { width: 15px; height: 15px; }
  .home-footer { width: calc(100% - 40px); }
  .footer-actions { gap: 18px; }
  .motion-toggle span { display: none; }
  .market-label { padding: 0 14px; }
}
@media (max-width:350px) {
  .site-nav { gap: 15px; }
  .site-brand > span { display: none; }
  .service-grid { gap: 9px; }
  .app-card { padding-inline: 11px; }
  .app-card h3 { font-size: 16px; }
  .quick-link { padding-inline: 9px; }
}
@media (min-width:901px) and (max-height:750px) {
  .home-shell { padding-top: 30px; padding-bottom: 46px; }
  .home-intro { margin-bottom: 25px; }
  body[data-page="home"] h1 { font-size: 60px; }
  .home-footer { min-height: 56px; padding-block: 10px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .app-card:hover { transform: none; }
  .ticker-viewport { overflow-x: auto; scrollbar-width: thin; }
  .ticker-set[aria-hidden="true"] { display: none; }
}
