:root{--bg:#0e1420;--panel:#151c2e;--panel2:#1c2540;--rule:#2b3552;--ink:#f3ecdf;--muted:#b8b3c4;--gold:#ffc94d;--green:#7ee787;--sky:#9ad0ff;--rose:#ff8fb1}
*{box-sizing:border-box}html{background:var(--bg)}
body{margin:0;color:var(--ink);font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:radial-gradient(90% 40% at 50% 0%,#1d2440 0%,var(--bg) 70%);min-height:100vh}
.wrap{max-width:1180px;margin:0 auto;padding:16px 16px 60px}
nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
nav a{color:var(--muted);text-decoration:none;padding:7px 11px;border:1px solid var(--rule);border-radius:999px;min-height:38px;display:inline-flex;align-items:center;font-size:13px}
nav a:hover,nav a.here{color:#fff;border-color:var(--gold)}
.eyebrow{margin:0;color:var(--gold);font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.08em}
h1{margin:4px 0 4px;font:400 clamp(30px,6vw,44px)/1.1 Georgia,serif;background:linear-gradient(90deg,#ffe9a8,var(--gold) 35%,#7ee787 70%,var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent}
h2{margin:0 0 4px;font:400 26px Georgia,serif}
h3{margin:14px 0 6px;font:600 15px system-ui;color:var(--sky)}
.lede{color:var(--muted);margin:0 0 14px;max-width:860px}
.lede a,.blurb a,.foot a{color:var(--gold)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px;position:sticky;top:0;background:linear-gradient(var(--bg) 85%,transparent);padding:8px 0;z-index:3}
.tabs a{min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--rule);background:var(--panel);color:var(--ink);font:inherit;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;font-size:13.5px}
.tabs a:hover{border-color:var(--gold)}
section{margin:0 0 30px;scroll-margin-top:70px}
.head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:8px}
.head .n{color:var(--muted);font:600 13px ui-monospace,Menlo,monospace}
.head .more{margin-left:auto;color:var(--gold);text-decoration:none;font-size:14px}
.blurb{color:var(--muted);margin:0 0 12px;max-width:860px}
.pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.pic{background:var(--panel);border:1px solid var(--rule);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.pic .shot{display:block;aspect-ratio:16/9;background:#05070c;position:relative}
.pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.pic:hover img{transform:scale(1.04)}
.pic .badge{position:absolute;top:8px;left:8px;font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.06em;background:rgba(0,0,0,.6);color:#fff;padding:3px 8px;border-radius:999px}
.pic .body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;flex:1}
.pic b{font:400 17px Georgia,serif}
.pic .cap{margin:0;color:var(--muted);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pic .cap.open{display:block}
.pic .row{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;align-items:center}
.go,.pic .row a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;text-decoration:none;font-size:13.5px;border:1px solid var(--rule);color:var(--ink)}
.go,a.go{background:var(--gold);color:#1a1408;font-weight:700;border-color:transparent}
.go:hover,a.go:hover{background:#ffe08a}
.pic .row a:not(.go):hover{border-color:var(--gold)}
.pic .row button{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;padding:0 4px;min-height:36px}
.card{background:var(--panel);border:1px solid var(--rule);border-radius:16px;padding:16px;margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px;border:1px solid var(--rule);border-radius:999px;background:rgba(255,255,255,.04);color:inherit;text-decoration:none;font-size:14px}
.chip:hover{border-color:var(--gold);background:rgba(255,201,77,.12)}
.chip .em{font-size:18px}
.chip small{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.cards .item{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px 14px 12px;background:var(--panel);border:1px solid var(--rule);border-radius:16px;color:inherit;text-decoration:none;min-height:44px}
.cards .item:hover{border-color:var(--gold)}
.cards .item .em{font-size:24px}
.cards .item .thumb{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px;display:block;background:#05070c}
.cards .item b{font:400 1.15rem Georgia,serif}
.cards .item span{font-size:13px;color:var(--muted)}
.trip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}
.trip label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.trip select,.trip input{min-height:44px;border-radius:12px;border:1px solid var(--rule);background:#0d1220;color:var(--ink);padding:8px 12px;font:inherit}
.trip input[type=range]{padding:0;min-height:44px}
.trip-out{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.trip-out .go{min-height:48px;font-size:16px;padding:0 22px}
.trip-out code{font:12.5px ui-monospace,Menlo,monospace;color:var(--sky);overflow-wrap:anywhere;flex:1 1 300px}
.trip-out button{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--panel2);color:var(--ink);font:inherit;cursor:pointer}
.trip-out button:hover{border-color:var(--gold)}
.told{color:var(--green);font-size:13px;min-height:20px;margin:6px 0 0}
.foot{color:var(--muted);font-size:13px;margin-top:24px}
.hero-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:12px 0 18px}
.hero-pics a{display:block;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid var(--rule);background:#05070c;position:relative;color:#fff;text-decoration:none}
.hero-pics img{width:100%;height:100%;object-fit:cover;display:block}
.hero-pics span{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 6px;font-size:11px;background:linear-gradient(transparent,rgba(0,0,0,.75));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.count{color:var(--muted);font-size:13px}
@media (max-width:640px){.pics{grid-template-columns:1fr 1fr}.pic b{font-size:15px}.pic .cap{-webkit-line-clamp:2}.hero-pics{grid-template-columns:repeat(3,1fr)}}
@media (max-width:420px){.pics{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pic img{transition:none}}
.pic .row a.pick{color:var(--muted)}
/* ---- New worlds (new/worlds.html): the sticky panel and the world cards ---- */
.wpanel{position:sticky;top:0;z-index:4;margin:0 0 16px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.wrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 12px;align-items:end}
.wrow label,.wpick{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.wpick b{font:400 20px Georgia,serif;color:var(--ink);line-height:1.2}.wpick small{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wlab{font-size:13px;color:var(--muted)}
.wrow select,.wrow input[type=text]{min-height:44px;border-radius:12px;border:1px solid var(--rule);background:#0d1220;color:var(--ink);padding:8px 12px;font:inherit;width:100%}
.wrow input[type=range]{padding:0;min-height:44px;width:100%}
.wwordrow{display:flex;gap:6px}.wwordrow input{flex:1;min-width:0}
.wrow button,.wgo button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--panel2);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap}
.wrow button:hover,.wgo button:hover{border-color:var(--gold)}
.wgo{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.wgo .go{min-height:48px;font-size:16px;padding:0 22px}
.wknobs{margin-top:10px}.wknobs summary{cursor:pointer;color:var(--sky);font-size:13px;font-weight:600;min-height:32px;display:flex;align-items:center}
.wrow2{margin-top:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.wcheck{flex-direction:row!important;align-items:center;gap:8px!important;min-height:44px}.wcheck input{width:20px;height:20px;margin:0}.wcheck small{color:var(--muted)}
.wpanel code{display:block;margin-top:10px;font:12.5px ui-monospace,Menlo,monospace;color:var(--sky);overflow-wrap:anywhere}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.wcard{background:var(--panel);border:1px solid var(--rule);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:border-color .15s}
.wcard:hover,.wcard:focus-visible{border-color:var(--gold);outline:none}.wcard.on{border-color:var(--green);box-shadow:0 0 0 2px rgba(126,231,135,.35)}
.wcard .shot{display:block;aspect-ratio:16/9;background:#05070c;position:relative}
.wcard .shot.none{display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1c2540,#0d1220)}.wcard .shot.none .em{font-size:44px;opacity:.7}
.wcard img{width:100%;height:100%;object-fit:cover;display:block}
.wcard .badge{position:absolute;top:8px;left:8px;font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.06em;background:rgba(126,231,135,.9);color:#062;padding:3px 8px;border-radius:999px}
.wcard .body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.wcard b{font:400 17px Georgia,serif}
.wcard .line{color:var(--muted);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wcard .home{font-size:12.5px;color:var(--sky)}
.wcard .row{display:flex;gap:8px;margin-top:auto;align-items:center}
.wcard .row .choose{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--panel2);color:var(--ink);font:inherit;cursor:pointer}
.wcard.on .row .choose{border-color:var(--green);color:var(--green)}
.wcard .row .go{min-height:36px;font-size:13.5px}
[data-page=worlds] .tabs{position:static;background:none}
@media (max-width:640px){.wpanel{position:static;box-shadow:none}.wgrid{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.wgrid{grid-template-columns:1fr}}
