/*! EXO (exogame.eu) © 2026 Patryk Żukiewicz i Eryk Żukiewicz. Wszelkie prawa zastrzeżone. Kopiowanie, rozpowszechnianie i wykorzystanie kodu, grafik i treści bez zgody autorów zabronione. */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg:before{content:"";position:absolute;inset:0;background:radial-gradient(1100px 680px at 82% -8%,rgba(56,118,220,.2),transparent 62%),radial-gradient(900px 620px at -12% 28%,rgba(34,150,196,.11),transparent 60%),radial-gradient(760px 520px at 60% 108%,rgba(246,169,69,.07),transparent 62%)}.bg:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(127,211,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(127,211,255,.035) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(120% 80% at 50% 0%,#000 30%,transparent 85%);mask-image:radial-gradient(120% 80% at 50% 0%,#000 30%,transparent 85%)}.bg canvas{position:absolute;inset:0;width:100%;height:100%}.topbar,main,.footer{position:relative;z-index:1}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:88px;scrollbar-gutter:stable;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.is-locked,body.is-lightbox{overflow:hidden}img{max-width:100%}a{color:inherit}h1,h2,h3,p,dl,dd,ul{margin:0}h1,h2,h3{text-wrap:balance;font-weight:600}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--holo);outline-offset:2px}::selection{background:var(--accent);color:var(--accent-ink)}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:fixed;left:var(--gutter);top:-100px;z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--r-sm);background:var(--accent);color:var(--accent-ink);font-weight:600;text-decoration:none}.skip-link:focus{top:calc(env(safe-area-inset-top,0px) + var(--space-2))}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--holo)}.eyebrow:before{content:"";flex:none;width:22px;height:1px;background:linear-gradient(90deg,transparent,var(--holo))}kbd{font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:1;padding:.3em .5em;border:1px solid var(--line-strong);border-radius:5px;color:var(--fg-muted);background:var(--surface-2)}.dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--c, var(--fg-faint));box-shadow:0 0 8px color-mix(in srgb,var(--c, var(--fg-faint)) 70%,transparent)}.glass{border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,var(--glass-hi),transparent 45%),var(--glass);box-shadow:inset 0 1px #ffffff0a}.hc{position:absolute;z-index:3;width:20px;height:20px;border:0 solid var(--holo);opacity:.85;pointer-events:none}.hc--tl{top:10px;left:10px;border-width:1.5px 0 0 1.5px}.hc--tr{top:10px;right:10px;border-width:1.5px 1.5px 0 0}.hc--bl{bottom:10px;left:10px;border-width:0 0 1.5px 1.5px}.hc--br{bottom:10px;right:10px;border-width:0 1.5px 1.5px 0}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:.75rem 1.25rem;border:1px solid transparent;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500;text-decoration:none;transition:background var(--dur),border-color var(--dur),color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease-out)}.btn:active{transform:translateY(1px)}.btn--primary{background:linear-gradient(180deg,#ffc06a,var(--accent) 55%,#ea9228);color:var(--accent-ink);box-shadow:var(--glow-accent),inset 0 1px #ffffff59}.btn--primary:hover{box-shadow:0 0 0 1px #f6a9458c,0 14px 40px -10px #f6a945cc,inset 0 1px #fff6;transform:translateY(-1px)}.btn--ghost{border-color:var(--line-strong);background:var(--glass);color:var(--fg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn--ghost:hover{border-color:var(--holo-dim);box-shadow:var(--glow-holo)}.topbar{position:fixed;top:0;left:0;right:0;z-index:40;padding-top:env(safe-area-inset-top,0px);transition:background var(--dur),box-shadow var(--dur)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong) 20%,var(--holo-dim) 50%,var(--line-strong) 80%,transparent);opacity:0;transition:opacity var(--dur)}.topbar.is-solid{background:#050811b8;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%)}.topbar.is-solid:after{opacity:1}.topbar__inner{display:flex;align-items:center;gap:var(--space-5);min-height:72px}.wordmark{display:flex;align-items:center;flex:none;text-decoration:none}.wordmark__logo{font-family:var(--font-display);font-weight:800;font-size:1.35rem;letter-spacing:.04em;line-height:1;text-shadow:0 0 18px rgba(127,211,255,.35)}.mainnav{display:flex;gap:2px;margin-inline:auto;padding:4px;border:1px solid var(--line);border-radius:999px;background:#080e1c73;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mainnav__link{padding:.45rem 1.05rem;border-radius:999px;font-size:var(--fs-sm);color:var(--fg-muted);text-decoration:none;white-space:nowrap;transition:color var(--dur),background var(--dur),box-shadow var(--dur)}.mainnav__link:hover{color:var(--fg);background:var(--glass-2)}.mainnav__link[aria-current=true]{color:var(--fg);background:var(--holo-soft);box-shadow:inset 0 0 0 1px var(--holo-dim)}.topbar__tools{display:flex;align-items:center;gap:var(--space-2);flex:none}.icon-btn{display:grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:var(--glass);color:var(--fg-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:color var(--dur),border-color var(--dur),box-shadow var(--dur),opacity var(--dur)}.icon-btn:hover,.icon-btn[aria-expanded=true]{color:var(--fg);border-color:var(--holo-dim);box-shadow:var(--glow-holo)}.icon-btn:disabled{opacity:.35;cursor:default;box-shadow:none}.topbar.is-raised,.topbar:has(.sound__panel:not([hidden])){z-index:58}.acct-bar{position:relative;display:flex;align-items:center;gap:var(--space-2);flex:none}.acct-bar__link{padding:0 var(--space-2);color:var(--fg-muted);font-size:var(--fs-sm);text-decoration:none;transition:color var(--dur)}.acct-bar__link:hover{color:var(--holo)}.acct-bar__login,.acct-bar__who{display:flex;align-items:center;gap:var(--space-2);height:40px;padding:0 1.05rem;border-radius:999px;font-size:var(--fs-sm);font-weight:500;text-decoration:none;transition:box-shadow var(--dur),transform var(--dur) var(--ease-out),border-color var(--dur)}.acct-bar__login{border:0;background:linear-gradient(180deg,#ffc06a,var(--accent) 55%,#ea9228);color:var(--accent-ink);box-shadow:var(--glow-accent),inset 0 1px #ffffff59}.acct-bar__login:hover{box-shadow:0 0 0 1px #f6a9458c,0 12px 34px -10px #f6a945cc,inset 0 1px #fff6;transform:translateY(-1px)}.acct-bar__who{max-width:13rem;border:1px solid var(--holo-dim);background:var(--glass);color:var(--fg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.acct-bar__who svg{flex:none;color:var(--holo)}.acct-bar__who:hover,.acct-bar__who[aria-expanded=true]{box-shadow:var(--glow-holo)}.acct-bar__name{overflow:hidden;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.acct-bar__menu{position:absolute;top:calc(100% + var(--space-2));right:0;display:grid;min-width:11rem;padding:var(--space-2);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--glass-2);box-shadow:var(--shadow-deep);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.acct-bar__item{padding:.55rem .75rem;border:0;border-radius:var(--r-sm);background:none;color:var(--fg);font:inherit;font-size:var(--fs-sm);text-align:left;text-decoration:none}.acct-bar__item:hover,.acct-bar__item:focus-visible{background:var(--holo-soft);color:var(--holo)}.acct-bar__item--out{margin-top:var(--space-1);border-top:1px solid var(--line);border-radius:0 0 var(--r-sm) var(--r-sm);color:var(--fg-muted)}.hero{position:relative;isolation:isolate;display:flex;min-height:100vh;min-height:100svh;overflow:hidden}.viz{position:absolute;inset:0;z-index:0;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.22),#000 52%),linear-gradient(180deg,#000 74%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,#00000038,#000 52%),linear-gradient(180deg,#000 74%,transparent);mask-composite:intersect}.viz__canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.viz__callout{position:absolute;left:0;top:0;z-index:2;opacity:0;pointer-events:none;will-change:transform}.viz__callout-dot{position:absolute;left:-10px;top:-10px;width:20px;height:20px;border:1px solid var(--holo);border-radius:50%;box-shadow:0 0 14px var(--holo-dim)}.viz__callout-line{position:absolute;left:7px;top:-7px;width:44px;height:1px;background:var(--holo);transform:rotate(-45deg);transform-origin:0 0;opacity:.8}.viz__callout-label{position:absolute;left:38px;top:-38px;display:grid;padding:0 var(--space-2) 5px 2px;border-bottom:1px solid var(--holo);white-space:nowrap;transform:translateY(-100%)}.viz__callout-label b{font-family:var(--font-display);font-size:var(--fs-sm);font-weight:600}.viz__callout-label small{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;color:var(--holo)}.viz__callout.is-left .viz__callout-line{left:-7px;transform:rotate(-135deg)}.viz__callout.is-left .viz__callout-label{left:auto;right:38px;padding:0 2px 5px var(--space-2);text-align:right}.hero__inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:inherit;padding-block:112px 132px;pointer-events:none}.hero__inner>*{pointer-events:auto}.hero__copy{display:grid;justify-items:start;gap:var(--space-5);max-width:560px}.hero__title{display:flex;align-items:flex-end;font-family:var(--font-display);font-weight:800;font-size:var(--fs-hero);line-height:.82;letter-spacing:-.03em;background:linear-gradient(180deg,#fff,#e0eeff 48%,#9cc7f2);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 16px rgba(127,211,255,.45)) drop-shadow(0 0 46px rgba(80,160,255,.28))}.hero__cursor{display:inline-block;width:.12em;height:.15em;margin-left:.08em;margin-bottom:.04em;background:var(--accent);animation:blink 1.6s linear infinite}.hero__lead{max-width:34ch;font-size:clamp(1.05rem,.95rem + .45vw,1.3rem);line-height:1.55;color:var(--fg-muted);text-wrap:pretty}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.btn--lg{padding:.95rem 1.6rem;border-radius:999px;font-size:var(--fs-base)}.viz-nav{position:absolute;right:var(--gutter);bottom:100px;display:grid;justify-items:end;gap:var(--space-2);text-align:right}.viz-nav__kind{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.16em;text-transform:uppercase;color:var(--holo)}.viz-nav__name{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;line-height:1.1}.viz-nav__ctrl{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-1)}.viz-nav__arrow{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:var(--glass);color:var(--fg-muted);transition:color var(--dur),border-color var(--dur)}.viz-nav__arrow:hover{color:var(--fg);border-color:var(--holo-dim)}.viz-nav__dots{display:flex;align-items:center;gap:7px}.viz-nav__dot{position:relative;width:7px;height:7px;padding:0;border:0;border-radius:999px;background:#9eabc359;transition:width .42s var(--ease-out),background var(--dur)}.viz-nav__dot:before{content:"";position:absolute;inset:-9px -4px}.viz-nav__dot:hover{background:#9eabc3bf}.viz-nav__dot[aria-selected=true]{width:34px;background:#7fd3ff38}.viz-nav__dot i{position:absolute;inset:0;border-radius:inherit;background:var(--holo);box-shadow:0 0 10px var(--holo-dim);transform:scaleX(0);transform-origin:left center}.viz-nav__dot[aria-selected=true] i{transform:scaleX(1)}.viz-nav__dots.is-run .viz-nav__dot[aria-selected=true] i{animation:viz-progress 8.6s linear both}.viz-nav__dots.is-paused .viz-nav__dot[aria-selected=true] i{animation:none}.viz-nav__open{padding:var(--space-1) 0;border:0;background:none;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--holo);transition:text-shadow var(--dur)}.viz-nav__open:hover{text-shadow:0 0 12px var(--holo-dim)}.hero__scroll{position:absolute;left:50%;bottom:24px;z-index:2;width:22px;height:36px;margin-left:-11px;border:1px solid var(--line-strong);border-radius:12px}.hero__scroll span{position:absolute;left:50%;top:7px;width:2px;height:7px;margin-left:-1px;border-radius:2px;background:var(--holo);animation:scroll-cue 1.8s var(--ease-out) infinite}.section{padding-block:clamp(4rem,9vw,7.5rem)}.section__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4) var(--space-6);margin-bottom:clamp(1.5rem,3vw,2.5rem)}.section__title{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:600;line-height:1.05;letter-spacing:-.01em;background:linear-gradient(180deg,#fff,#b9d4f2);-webkit-background-clip:text;background-clip:text;color:transparent}.section__desc{max-width:52ch;margin-top:var(--space-2);color:var(--fg-muted)}.section--cities{--edge: max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)))}.carousel-nav{display:flex;gap:var(--space-2)}.city-track{display:flex;gap:var(--space-4);padding:6px var(--edge) var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab}.city-track::-webkit-scrollbar{display:none}.city-track:focus-visible{outline-offset:-2px}.city-track.is-dragging{cursor:grabbing;scroll-snap-type:none}.city-track.is-dragging .city{pointer-events:none}.city{position:relative;flex:0 0 auto;width:min(82vw,540px);aspect-ratio:16 / 10;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--void);text-align:left;overflow:hidden;scroll-snap-align:start;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease-out)}.city:hover{border-color:var(--holo-dim);box-shadow:var(--glow-holo);transform:translateY(-4px)}.city__art{position:absolute;inset:0}.city__art canvas,.city__art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}.city:hover .city__art canvas,.city:hover .city__art img{transform:scale(1.05)}.city:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(3,5,11,.9));pointer-events:none}.city__body{position:absolute;left:0;right:0;bottom:0;z-index:1;display:grid;gap:2px;padding:var(--space-5)}.city__tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--holo)}.city__name{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;line-height:1.1}.city__planet{font-size:var(--fs-sm);color:var(--fg-muted)}.finder{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.search{position:relative;display:flex;align-items:center}.search__icon{position:absolute;z-index:1;left:22px;color:var(--fg-faint);pointer-events:none}.search__input{width:100%;height:64px;padding:0 64px 0 58px;border:1px solid var(--line-strong);border-radius:999px;background:linear-gradient(180deg,var(--glass-hi),transparent 60%),var(--glass);font-size:var(--fs-md);outline:none;-webkit-appearance:none;appearance:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:border-color var(--dur),box-shadow var(--dur)}.search__input::placeholder{color:var(--fg-faint)}.search__input::-webkit-search-cancel-button{-webkit-appearance:none}.search__input:focus{border-color:var(--holo-dim);box-shadow:var(--glow-holo),0 0 0 4px var(--holo-soft)}.search__kbd{position:absolute;right:24px;pointer-events:none}.finder__row{display:flex;align-items:center;gap:var(--space-3)}.chips{display:flex;flex:1;gap:var(--space-2);min-width:0;padding:2px;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip,.finder__toggle{display:inline-flex;align-items:center;gap:var(--space-2);flex:none;padding:.5rem .95rem;border:1px solid var(--line);border-radius:999px;background:var(--glass);font-size:var(--fs-sm);color:var(--fg-muted);white-space:nowrap;transition:color var(--dur),border-color var(--dur),background var(--dur)}.chip:hover,.finder__toggle:hover{color:var(--fg);border-color:var(--line-strong)}.chip[aria-pressed=true]{color:var(--fg);border-color:color-mix(in srgb,var(--c, var(--holo)) 55%,transparent);background:color-mix(in srgb,var(--c, var(--holo)) 16%,transparent)}.chip__count{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--fg-faint)}.finder__toggle{border-color:var(--line-strong);background:transparent}.finder__toggle[aria-expanded=true]{color:var(--fg);border-color:var(--holo-dim);background:var(--holo-soft)}.finder__extra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--glass)}.segmented{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px;background:#03050b66}.segmented__btn{padding:.4rem .85rem;border:0;border-radius:999px;background:transparent;font-size:var(--fs-sm);color:var(--fg-muted);transition:color var(--dur),background var(--dur)}.segmented__btn[aria-pressed=true]{background:var(--glass-2);color:var(--fg);box-shadow:inset 0 0 0 1px var(--line-strong)}.sort{position:relative;display:flex;align-items:center;gap:var(--space-2)}.sort:after{content:"";position:absolute;right:14px;top:50%;width:6px;height:6px;margin-top:-5px;border:solid var(--fg-muted);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);pointer-events:none}.sort__label{font-size:var(--fs-sm);color:var(--fg-faint)}.sort__select{padding:.45rem 2.2rem .45rem .9rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);font-size:var(--fs-sm);-webkit-appearance:none;appearance:none}.notice{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--glass);font-size:var(--fs-sm);color:var(--fg-muted)}.more{display:flex;justify-content:center;margin-top:var(--space-6)}.more .btn{border-radius:999px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--space-4)}.card{position:relative;display:grid;align-content:start;gap:var(--space-2);min-height:176px;padding:var(--space-5) var(--space-5) var(--space-6);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--glass-hi),transparent 45%),var(--glass);overflow:hidden;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease-out)}.card:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--c),transparent);opacity:.55}.card:hover{border-color:color-mix(in srgb,var(--c) 45%,transparent);box-shadow:0 24px 60px -30px color-mix(in srgb,var(--c) 65%,transparent);transform:translateY(-3px)}.card:has(.card__link:focus-visible){outline:2px solid var(--holo);outline-offset:2px}.card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.card__cat{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--c)}.card__title{margin-top:var(--space-1);font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600;line-height:1.2}.card__link{padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left}.card__link:focus-visible{outline:none}.card__link:after{content:"";position:absolute;inset:0;z-index:1}.card__sub{font-size:var(--fs-sm);color:var(--fg-faint)}.card__summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-sm);color:var(--fg-muted)}.card__go{position:absolute;right:var(--space-5);bottom:var(--space-4);color:var(--fg-faint);transition:color var(--dur),transform var(--dur) var(--ease-out)}.card:hover .card__go{color:var(--c);transform:translate(3px)}.status{flex:none;padding:.2rem .55rem;border:1px solid currentColor;border-radius:5px;font-family:var(--font-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.3}.status--kanon{color:var(--status-kanon)}.status--szkic{color:var(--status-szkic)}.status--przyklad{color:var(--status-przyklad);border-style:dashed}.tags{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);list-style:none;padding:0}.tag{font-size:var(--fs-xs);color:var(--fg-faint)}.tag:before{content:"#";opacity:.55}.empty{display:grid;justify-items:start;gap:var(--space-2);padding:var(--space-7) var(--space-5);border:1px dashed var(--line-strong);border-radius:var(--r-md)}.empty__title{font-size:var(--fs-md);font-weight:600}.empty__text{margin-bottom:var(--space-3);color:var(--fg-muted)}.footer{background:linear-gradient(180deg,transparent,rgba(3,5,11,.9))}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--holo-dim),transparent)}.footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);padding-block:var(--space-6) calc(var(--space-6) + env(safe-area-inset-bottom,0px))}.footer__brand{display:flex;align-items:baseline;gap:var(--space-3)}.footer__tag,.footer__meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--fg-faint)}.drawer{position:fixed;inset:0;z-index:60}.drawer__backdrop{position:absolute;inset:0;background:#02040a9e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .26s}.drawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(720px,100%);overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#0e182eeb,#060a16f5);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:-40px 0 100px -20px #000000bf,inset 1px 0 0 var(--line-strong);opacity:0;transform:translate(32px);transition:transform .32s var(--ease-out),opacity .24s}.drawer__panel:focus{outline:none}.drawer.is-open .drawer__backdrop{opacity:1}.drawer.is-open .drawer__panel{opacity:1;transform:none}.rec__bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--space-3);padding:calc(env(safe-area-inset-top,0px) + var(--space-3)) clamp(1.25rem,4vw,2.5rem) var(--space-3);border-bottom:1px solid var(--line);background:#0a1224d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.rec__id{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--holo)}.rec__close{display:grid;place-items:center;width:36px;height:36px;margin-left:auto;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--glass);color:var(--fg-muted);transition:color var(--dur),border-color var(--dur),box-shadow var(--dur)}.rec__close:hover{color:var(--fg);border-color:var(--holo-dim);box-shadow:var(--glow-holo)}.rec__body{display:grid;gap:var(--space-6);padding:var(--space-6) clamp(1.25rem,4vw,2.5rem) calc(var(--space-8) + env(safe-area-inset-bottom,0px))}.rec__head{display:grid;gap:var(--space-3)}.rec__cat{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--c)}.rec__title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;line-height:1.15;letter-spacing:-.01em;text-shadow:0 0 24px rgba(127,211,255,.2)}.rec__sub{color:var(--fg-muted)}.rec__map{justify-self:start;display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1);padding:.5rem .9rem;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line-strong));border-radius:var(--r-sm);background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:var(--fs-sm);transition:background var(--dur),border-color var(--dur),box-shadow var(--dur)}.rec__map svg{color:var(--accent)}.rec__map:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:var(--accent);box-shadow:var(--glow-accent)}.rec__lead{max-width:var(--measure);font-size:var(--fs-md);line-height:1.55;text-wrap:pretty}.rec__text{display:grid;gap:var(--space-4);max-width:var(--measure);color:color-mix(in srgb,var(--fg) 88%,var(--fg-muted))}.rec__block{display:grid;gap:var(--space-3)}.rec__label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.16em;text-transform:uppercase;color:var(--holo)}.facts{display:grid;grid-template-columns:minmax(8rem,max-content) 1fr;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm);background:#03060e59}.facts dt,.facts dd{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--line);font-size:var(--fs-sm)}.facts dt:last-of-type,.facts dd:last-of-type{border-bottom:0}.facts dt{color:var(--fg-faint)}.facts dd{min-width:0}.relations{display:grid;gap:var(--space-2);list-style:none;padding:0}.relation{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--r-sm);background:#03060e73;text-align:left;transition:border-color var(--dur),background var(--dur),box-shadow var(--dur)}.relation:hover{border-color:color-mix(in srgb,var(--c) 50%,var(--line));background:var(--glass-2);box-shadow:0 12px 30px -18px color-mix(in srgb,var(--c) 70%,transparent)}.relation__title{flex:1;min-width:0;font-weight:500}.relation__id{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--fg-faint)}.gaps{display:grid;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);border-radius:var(--r-sm);background:color-mix(in srgb,var(--accent) 5%,transparent)}.gaps .rec__label{color:var(--accent)}.gaps ol{display:grid;gap:var(--space-2);margin:0;padding-left:1.4rem;font-size:var(--fs-sm);color:var(--fg-muted)}.gaps li::marker{font-family:var(--font-mono);color:var(--accent)}.gaps ol{gap:var(--space-4)}.gap__q{margin:0;color:var(--fg)}.gap__props:empty{display:none}.gap__props{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.prop-list{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.prop{display:grid;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--glass)}.prop::marker{content:""}.prop.is-kanon{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 9%,var(--glass))}.prop.is-hidden{opacity:.6}.prop__badge{margin:0;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.prop__q{margin:0;font-size:var(--fs-xs);color:var(--fg-faint)}.prop__text{margin:0;color:var(--fg);overflow-wrap:anywhere}.prop__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0;font-size:var(--fs-xs);color:var(--fg-faint)}.prop__vote{display:inline-flex;align-items:center;gap:.35rem;min-height:28px;padding:.15rem .6rem;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--fg-muted);font:inherit;font-family:var(--font-mono);transition:color var(--dur),border-color var(--dur),background var(--dur)}.prop__vote:hover:not(:disabled){color:var(--fg);border-color:var(--holo-dim)}.prop__vote[aria-pressed=true]{color:var(--accent-ink);border-color:var(--accent);background:var(--accent)}.prop__vote:disabled{cursor:default;opacity:.75}.prop__who{color:var(--fg-muted)}.prop__lang{padding:0 .35rem;border:1px solid var(--line-strong);border-radius:4px;font-family:var(--font-mono);font-size:var(--fs-2xs)}.prop__note{color:var(--accent)}.prop__act{margin-left:auto;padding:0;border:0;background:none;color:var(--fg-faint);font:inherit;text-decoration:underline;text-underline-offset:2px}.prop__act:hover{color:var(--fg)}.prop__act+.prop__act{margin-left:0}.prop-add{justify-self:start;padding:.35rem .8rem;border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-radius:999px;background:transparent;color:var(--accent);font:inherit;font-size:var(--fs-xs);transition:background var(--dur)}.prop-add:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.prop-form{display:grid;gap:var(--space-2)}.prop-form__text{width:100%;min-height:84px;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--hud-bg);color:var(--fg);font:inherit;font-size:var(--fs-sm);resize:vertical}.prop-form__text:focus-visible{outline:2px solid var(--holo);outline-offset:1px}.prop-form__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.prop-form__count{margin-right:auto;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--fg-faint)}.prop-form__btn{min-height:34px;padding:.35rem .9rem;font-size:var(--fs-xs)}.prop-guest{margin:0;font-size:var(--fs-xs);color:var(--fg-faint)}.prop-guest a{color:var(--accent)}.prop-info{margin:0;font-size:var(--fs-xs);color:var(--holo)}.prop-info.is-error{color:var(--blad)}.gaps-kanon[hidden]{display:none}.rec__nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:var(--space-3)}.rec__step{display:grid;gap:2px;min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--glass);color:var(--fg);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.rec__step--next{text-align:right}.rec__step:hover,.rec__step:focus-visible{border-color:var(--c, var(--holo));background:var(--glass-hi)}.rec__step.is-empty{visibility:hidden}.rec__step-dir{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--c, var(--holo))}.rec__step-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}.rec__pos{align-self:center;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-faint)}@media (max-width: 520px){.rec__nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rec__pos,.rec__keys{display:none}}mark.hit{padding:0 1px;border-radius:3px;background:color-mix(in srgb,var(--holo) 28%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--holo) 45%,transparent);color:var(--fg)}.rec__foot{padding-top:var(--space-4);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-faint)}.rec__art{margin:0;display:grid;gap:var(--space-2)}.rec__art canvas,.rec__art img{display:block;width:100%;max-width:100%;aspect-ratio:16 / 8;object-fit:cover;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--void);box-shadow:var(--shadow-deep)}.rec__art figcaption{font-size:var(--fs-xs);color:var(--fg-faint)}.rec__art figcaption span{margin-left:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--holo);opacity:.8}.art-zoom{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--r-md);background:none;cursor:zoom-in}.art-zoom img{transition:border-color var(--dur),box-shadow var(--dur)}.art-zoom:hover img,.art-zoom:focus-visible img{border-color:var(--holo-dim);box-shadow:var(--glow-holo)}.art-zoom__count{position:absolute;right:var(--space-2);bottom:var(--space-2);padding:.2rem .55rem;border:1px solid var(--line-strong);border-radius:999px;background:#03050bb3;color:var(--holo);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em}.rec__thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.rec__thumb{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--void);cursor:zoom-in;transition:border-color var(--dur),transform var(--dur) var(--ease-out)}.rec__thumb img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.rec__thumb:hover,.rec__thumb:focus-visible{border-color:var(--holo-dim);transform:translateY(-1px)}.lightbox{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);background:#03050bf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox[hidden]{display:none}.lightbox__fig{display:grid;justify-items:center;gap:var(--space-3);margin:0;min-width:0}.lightbox__img{display:block;max-width:100%;max-height:calc(100vh - 9rem);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-deep);object-fit:contain}.lightbox__cap{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);color:var(--fg-muted);font-size:var(--fs-sm);text-align:center}.lightbox__count{color:var(--holo);font-family:var(--font-mono)}.lightbox__nav,.lightbox__close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--holo-dim);border-radius:50%;background:var(--glass);color:var(--fg);cursor:pointer;transition:border-color var(--dur),box-shadow var(--dur)}.lightbox__nav:hover,.lightbox__close:hover{border-color:var(--holo);box-shadow:var(--glow-holo)}.lightbox__nav[hidden]{visibility:hidden}.lightbox__close{position:absolute;top:calc(var(--space-4) + env(safe-area-inset-top,0px));right:var(--space-4)}@media (max-width: 640px){.lightbox{grid-template-columns:1fr 1fr;align-content:center;padding:var(--space-8) 16px var(--space-4)}.lightbox__fig{grid-column:1 / -1;grid-row:1}.lightbox__nav--prev{grid-row:2;justify-self:end}.lightbox__nav--next{grid-row:2;justify-self:start}}.section__tools{display:flex;flex-wrap:wrap;gap:var(--space-2);align-self:flex-end}.section__tool{padding:.6rem 1rem}.section__tool svg{color:var(--holo)}.gloss__panel{width:min(560px,100%)}.gloss__title{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--holo)}.gloss__body{display:grid;gap:var(--space-5);padding:var(--space-5) clamp(1.25rem,4vw,2.5rem) calc(var(--space-8) + env(safe-area-inset-bottom,0px))}.gloss__search .search__icon{left:16px}.gloss__search .search__input{height:48px;padding:0 var(--space-4) 0 46px;font-size:var(--fs-base)}.gloss__letter{margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;color:var(--holo);text-shadow:0 0 18px rgba(127,211,255,.3)}.gloss__group{display:grid;gap:var(--space-4);margin-bottom:var(--space-3)}.gloss__item dt{font-weight:600;color:var(--fg)}.gloss__item dd{display:grid;gap:var(--space-1);margin:var(--space-1) 0 0;color:color-mix(in srgb,var(--fg) 82%,var(--fg-muted));font-size:var(--fs-sm);line-height:1.55}.gloss__link{justify-self:start;padding:.15rem 0;border:0;background:none;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--accent);text-align:left;transition:color var(--dur),text-shadow var(--dur)}.gloss__link:hover,.gloss__link:focus-visible{color:#ffc06a;text-shadow:0 0 12px rgba(246,169,69,.5)}.gloss__empty{color:var(--fg-muted)}.graf__panel{display:flex;flex-direction:column;width:min(1040px,100%);overflow:hidden}.graf__legend{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) clamp(1.25rem,4vw,2.5rem) 0}.graf__cat{display:inline-flex;align-items:center;gap:var(--space-2);padding:.3rem .7rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--glass);font-size:var(--fs-xs);color:var(--fg);transition:opacity var(--dur),border-color var(--dur)}.graf__cat[aria-pressed=false]{opacity:.4;border-style:dashed}.graf__cat:hover{border-color:var(--c)}.graf__dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.graf__box{position:relative;flex:1;min-height:260px}.graf__canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:manipulation}.graf__info{min-height:64px;padding:var(--space-3) clamp(1.25rem,4vw,2.5rem) calc(var(--space-4) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#0a1224d9}.graf__hint{color:var(--fg-muted);font-size:var(--fs-sm)}.graf__sel{display:flex;align-items:center;gap:var(--space-3)}.graf__sel>div{display:grid;flex:1;min-width:0}.graf__meta{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--fg-muted)}.graf__open{flex:none;padding:.55rem 1rem}.graf__nbrs{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-top:var(--space-2)}.graf__nbrs button{padding:0;border:0;background:none;font-size:var(--fs-xs);color:var(--holo)}.graf__nbrs button:hover{text-decoration:underline}@keyframes blink{0%,68%{opacity:1}70%,to{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes lift{0%{opacity:.2;transform:translateY(16px)}}@keyframes viz-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes scroll-cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}to{opacity:0;transform:translateY(12px)}}html:not(.is-gated) .hero__copy>*,html:not(.is-gated) .viz-nav{animation:lift .9s var(--ease-out) both}html:not(.is-gated) .hero__copy>:nth-child(2){animation-delay:.12s}html:not(.is-gated) .hero__copy>:nth-child(3){animation-delay:.22s}html:not(.is-gated) .viz-nav{animation-delay:.32s}.card.is-entering{animation:rise .42s var(--ease-out) both;animation-delay:calc(min(var(--i, 0),8)*35ms)}.reveal{transform:translateY(18px);transition:transform .8s var(--ease-out)}.reveal.is-in{transform:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important}.reveal{transform:none}}@media (max-width: 900px){.mainnav{display:none}.topbar__tools{margin-left:auto}.topbar__inner{min-height:64px}.viz{-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.3) 0%,#000 42%,#000 80%,transparent);mask-image:linear-gradient(180deg,rgba(0,0,0,.3) 0%,#000 42%,#000 80%,transparent);-webkit-mask-composite:source-over;mask-composite:add}.hero__inner{justify-content:flex-start;padding-block:104px 180px}.viz-nav{left:var(--gutter);right:var(--gutter);bottom:40px;justify-items:center;text-align:center}.viz-nav__name{font-size:var(--fs-lg)}.hero__scroll,.viz__callout-label small{display:none}}@media (max-width: 560px){.acct-bar__link,.acct-bar__label{display:none}.acct-bar__login,.acct-bar__who{padding:0 .7rem}.acct-bar__who{max-width:8.5rem}.hero__actions .btn--lg{padding:.85rem 1.25rem;font-size:var(--fs-sm)}.search__input{height:56px;padding-right:20px;font-size:var(--fs-base)}.search__kbd{display:none}.finder__extra{flex-direction:column;align-items:stretch}.segmented{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--r-md)}.segmented__btn{border-radius:var(--r-sm)}.sort__select{flex:1}.card{min-height:0}.facts{grid-template-columns:1fr}.facts dt{padding-bottom:0;border-bottom:0}}.footer__copy{width:100%;margin:0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--fg-faint)}.front{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3.5rem)}.front__map{width:100%;height:auto;aspect-ratio:2;border-radius:var(--r-lg);background:#05101c;box-shadow:0 0 0 1px var(--holo-dim),var(--glow-holo)}.front__copy{display:grid;justify-items:start;gap:var(--space-3)}.front__kicker{color:var(--holo);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase}.front__bar{display:flex;width:min(100%,420px);height:10px;overflow:hidden;border-radius:999px;background:var(--accent)}.front__v{width:50%;background:var(--holo);transition:width var(--dur) var(--ease-out)}.front__share{font-family:var(--font-mono);font-size:var(--fs-sm)}.front__share b:first-child{color:var(--holo)}.front__share b:last-child{color:var(--accent)}.front__event{max-width:52ch;color:var(--fg-muted)}@media (max-width: 720px){.front{grid-template-columns:1fr;justify-items:center}.front__map{max-width:100%}}
