:root{color-scheme:dark;--ink:#e5ecda;--muted:#9faea8;--gold:#e5c784;--line:#dce3d31b;--glass:#10272bb8}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(ellipse at 47% 38%,#173c42 0,#102c36 28%,#0c2030 60%,#091727 100%);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button,canvas{touch-action:none}button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{cursor:default}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}button[hidden],[hidden]{display:none!important}#world{display:block;width:100%;height:100%;outline:none;opacity:0;transition:opacity 1.2s;cursor:grab}#world.ready{opacity:1}#world.dragging{cursor:grabbing}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,transparent 45%,#040e1b55);z-index:1}.topbar{position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 33px;pointer-events:none;z-index:5}.topbar button{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:11px}.wordmark>div{display:flex;flex-direction:column;gap:5px}.brand{font-size:12px;letter-spacing:.20em;font-weight:650}.edition{font-size:8px;letter-spacing:.21em;color:#a9bfb5}.planet-logo{width:29px;height:29px;position:relative;display:block;border:1px solid #b8caa55e;border-radius:50%;transform:rotate(-25deg)}.planet-logo:before{content:"";position:absolute;inset:3px 9px;border:1px solid #c8d4b0a3;border-radius:50%}.planet-logo:after{content:"";position:absolute;inset:9px -5px;border:1px solid #c8d4b0a3;border-radius:50%}.planet-logo i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--gold);right:-3px;top:5px;box-shadow:0 0 8px #dfc17566}.tools{display:flex;gap:9px}.icon-button{display:grid;place-items:center;width:37px;height:37px;border:1px solid var(--line);border-radius:50%;background:#0b202960;backdrop-filter:blur(12px);color:#bacbbf;transition:background .2s,color .2s,transform .2s}.icon-button:hover{background:#294747a6;color:#f3edd6;transform:translateY(-1px)}.icon-button[aria-pressed=true]{color:var(--gold);border-color:#e5c78455}.sound-on{display:none}#sound-button[aria-pressed=true] .sound-on{display:block}#sound-button[aria-pressed=true] .sound-off{display:none}.journal-button{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:11px;min-height:39px;background:#10292e9e;backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:30px;padding:8px 16px;color:#dce2cc}.journal-button:hover{background:#294747a6}.journal-button svg{width:16px;height:16px;color:var(--gold)}#progress-number{font-variant-numeric:tabular-nums;font-size:12px;font-weight:550;white-space:nowrap}#progress-number>span{color:#8a9d97;font-size:11px}.journal-caption{font-size:10px;color:#aab9ab;letter-spacing:.015em}.region{position:fixed;left:34px;bottom:80px;z-index:3;pointer-events:none;max-width:300px;transition:opacity .3s,transform .3s}.eyebrow{font-size:8px;font-weight:600;letter-spacing:.24em;color:#b7c6b7}.region h1{font-family:Georgia,"Times New Roman",serif;font-size:32px;letter-spacing:-.025em;font-weight:400;margin:10px 0 9px;line-height:1.08;text-shadow:0 2px 10px #091c2699}.region p{font-size:11px;line-height:1.6;max-width:242px;color:#a9beb3;margin:0}.interaction-area{position:fixed;z-index:6;left:50%;transform:translateX(-50%);bottom:81px;display:flex;flex-direction:column;align-items:center;gap:16px}.interact-button{display:flex;align-items:center;gap:13px;min-width:228px;padding:12px 13px;border:1px solid #ead29362;border-radius:15px;background:linear-gradient(135deg,#344336e8,#1d3531eb);box-shadow:0 8px 34px #010c1777,0 0 22px #e4c37909;backdrop-filter:blur(18px);text-align:left;transition:transform .15s,background .15s}.interact-button:hover{transform:translateY(-3px);background:linear-gradient(135deg,#46563de8,#284a3ceb)}.interact-button:active{transform:translateY(0) scale(.98)}.keycap{display:grid;place-items:center;width:33px;height:33px;flex:0 0 33px;border:1px solid #f4dda552;border-radius:8px;background:#e7c37c15;color:#f1d399;font-size:13px;font-weight:650}.action-copy{display:flex;flex-direction:column;gap:5px}.action-copy>span{font-size:7px;letter-spacing:.17em;color:#b8c5a7}.action-copy strong{font-weight:500;font-size:12px;white-space:nowrap}.interact-button>svg{margin-left:12px;width:16px;color:#dec78c}.walk-hint{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#adc0b5;font-size:10px;letter-spacing:.02em;text-shadow:0 1px 7px #00171b}.tiny-spark{color:var(--gold);font-size:11px}.hint-divider{width:1px;height:11px;background:#b4c5aa45;margin:0 4px}.control-strip{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);display:flex;align-items:center;gap:19px;color:#96ada7;font-size:9px;white-space:nowrap;z-index:4;transition:opacity .4s}.control-strip>span{display:flex;align-items:center;gap:4px}kbd{font-family:inherit;font-size:9px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:18px;padding:0 4px;background:#c9d9b908;border:1px solid #b2c6b52e;border-bottom-color:#b2c6b54b;border-radius:4px;color:#c3d0bd;line-height:1}.control-strip>span>kbd:last-of-type{margin-right:3px}.journey{position:fixed;left:50%;top:83px;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:9px;background:#0e2b2dda;padding:8px 10px 8px 13px;border:1px solid #becdb71a;border-radius:24px;color:#baccb8;font-size:10px;white-space:nowrap}.journey-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px #e5c78477;animation:breathe 2s infinite}.journey button{border:0;background:transparent;color:#baccb8;font-size:18px;line-height:1;padding:0 3px}.toast{position:fixed;left:50%;top:94px;transform:translate(-50%,-10px);z-index:8;text-align:center;max-width:min(430px,85vw);width:max-content;padding:13px 20px;border:1px solid #ddcc9344;border-radius:13px;background:#203c32ed;box-shadow:0 14px 40px #03101855;backdrop-filter:blur(14px);color:#e7e8cb;font-size:12px;line-height:1.7;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast strong{display:block;font-size:8px;font-weight:600;letter-spacing:.16em;color:#e3c887;margin-bottom:2px}.loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;z-index:10;background:#0b1e2c;transition:opacity .7s;pointer-events:none}.loading p{font-family:Georgia,serif;font-size:22px;text-align:center;font-weight:400;margin:0}.loading p span{display:block;font-family:ui-sans-serif,sans-serif;font-size:10px;letter-spacing:.12em;color:#9fb4a8;margin-top:14px}.loading-orb{display:block;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#b0c780,#4f8d74);box-shadow:inset -9px -6px 0 #29625780,0 0 42px #97ba7030;animation:breathe 1.8s infinite}.loading.fade{opacity:0}.panel{background:linear-gradient(155deg,#1c3638,#132b32);color:var(--ink);border:1px solid #bdc9a92b;border-radius:23px;padding:36px;width:min(450px,calc(100vw - 32px));box-shadow:0 35px 120px #010a1699;max-height:calc(100dvh - 60px);overflow:auto;scrollbar-width:thin;scrollbar-color:#4b675d transparent}.panel::backdrop{background:#06152180;backdrop-filter:blur(9px)}.panel h2{font-family:Georgia,serif;font-size:29px;line-height:1.1;font-weight:400;letter-spacing:-.025em;margin:13px 0 12px}.panel-intro{color:#aebfb2;font-size:11px;line-height:1.6;margin:0 0 23px}.close-panel{position:absolute;right:19px;top:14px;font-size:25px;color:#aabcad;border:0;background:transparent;padding:3px 7px;border-radius:50%}.journal-progress{height:3px;width:100%;background:#d3dec716;border-radius:5px;overflow:hidden;margin-bottom:16px}#journal-progress-fill{display:block;width:0%;height:100%;background:#d8c684;border-radius:5px;transition:width .5s}.journal-list{display:flex;flex-direction:column;gap:3px}.journal-entry{display:flex;align-items:center;gap:13px;text-align:left;border:0;background:transparent;padding:11px 9px;border-radius:10px;transition:background .2s}.journal-entry:hover{background:#cfdfc511}.entry-number{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--entry-color);border-radius:50%;font-size:9px;color:var(--entry-color);opacity:.8}.journal-entry.completed .entry-number{background:var(--entry-color);color:#163831;opacity:1}.entry-copy{flex:1}.entry-copy strong{font-size:12px;font-weight:500;display:block;margin-bottom:4px}.entry-copy span{font-size:9px;color:#9eb1a6}.entry-arrow{font-size:18px;color:#a6b9a3}.journal-footnote{color:#8fa99c;font-size:10px;line-height:1.9;margin:20px 0 0;text-align:center}.help-grid{display:grid;grid-template-columns:110px 1fr;gap:17px 12px;font-size:11px}.help-grid>span:nth-child(odd){color:#a2b8a6}.help-grid kbd{height:22px;font-size:9px;padding:0 6px}.primary-button{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:25px;padding:14px 17px;background:#dac58d;color:#203730;border:0;border-radius:10px;font-size:12px;font-weight:600}.primary-button:hover{background:#eed9a1}.joystick,.jump-button{display:none}.fallback{position:fixed;inset:0;z-index:20;background:#102331;display:grid;place-content:center;text-align:center;padding:32px;color:#e3dfca;font-size:17px;line-height:1.7}.fallback span{display:block;color:#a2b4a8;font-size:12px;margin-top:12px;max-width:340px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.is-follow .region{bottom:66px}.is-follow .control-strip{opacity:.65}.is-follow #walk-hint{display:none}.is-moving .region p{opacity:.7}@keyframes breathe{50%{transform:scale(.95);opacity:.75}}@media(max-width:950px){.region{max-width:220px;left:24px;bottom:95px}.region h1{font-size:27px}.region p{font-size:10px;max-width:180px}.topbar{padding:23px 24px}.interaction-area{bottom:76px}.walk-hint{font-size:9px}.control-strip{gap:13px}.region p{display:none}.journal-caption{display:none}}@media(max-width:650px){.topbar{padding:max(19px,env(safe-area-inset-top)) 17px 13px;gap:8px}.brand{font-size:10px;letter-spacing:.16em}.edition{font-size:6px;letter-spacing:.16em}.wordmark{gap:8px}.planet-logo{width:24px;height:24px}.planet-logo:before{inset:3px 8px}.planet-logo:after{inset:8px -4px}.journal-button{left:auto;right:103px;transform:none;padding:8px 11px;gap:8px;min-height:34px}.journal-button svg{width:14px;height:14px}.tools{gap:6px}.icon-button{width:34px;height:34px}.icon-button svg{width:18px;height:18px}.help-button{display:none}.region,.is-follow .region{left:20px;bottom:auto;top:88px;max-width:220px}.eyebrow{font-size:7px;letter-spacing:.19em}.region h1{font-size:25px;margin:8px 0}.region p{display:none}.interaction-area{bottom:140px;width:calc(100% - 40px)}.interact-button{min-width:220px;gap:11px;padding:11px 12px}.action-copy strong{font-size:11px}.control-strip{bottom:29px;font-size:8px;gap:9px;flex-wrap:wrap;justify-content:center;width:calc(100% - 50px)}.control-strip>span:nth-child(2),.control-strip>span:nth-child(3){display:none}.walk-hint{white-space:normal;max-width:215px;line-height:1.8;text-align:center;justify-content:center;flex-wrap:wrap;gap:6px}.walk-hint .hint-divider{display:none}.walk-hint>span:last-child{width:100%;font-size:8px;color:#91a99f}.journey{top:146px;font-size:9px}.toast{top:140px;font-size:11px;padding:11px 16px}.panel{padding:29px 24px;max-height:calc(100dvh - 40px)}.panel h2{font-size:27px}.journal-entry{padding:9px 6px}.journal-footnote{font-size:9px}.help-grid{grid-template-columns:95px 1fr;font-size:10px}}@media(pointer:coarse),(max-width:650px){.joystick{display:block;position:fixed;z-index:7;left:max(27px,env(safe-area-inset-left));bottom:max(30px,env(safe-area-inset-bottom));width:89px;height:89px;border:1px solid #c9d8b82d;border-radius:50%;background:#102b323b;touch-action:none}.joystick:before{content:"";position:absolute;inset:13px;border:1px solid #c9d8b816;border-radius:50%}.joystick-cross:before,.joystick-cross:after{content:"";position:absolute;background:#cad8ba2b}.joystick-cross:before{width:1px;height:65px;left:43px;top:11px}.joystick-cross:after{height:1px;width:65px;top:43px;left:11px}#joystick-knob{display:block;position:absolute;left:28px;top:28px;width:32px;height:32px;background:#c4d6b933;border:1px solid #d6dec258;border-radius:50%;box-shadow:0 4px 12px #001d2844;pointer-events:none}.jump-button{display:grid;place-items:center;position:fixed;z-index:7;right:max(29px,env(safe-area-inset-right));bottom:max(42px,env(safe-area-inset-bottom));width:55px;height:55px;border:1px solid #d6dec244;border-radius:50%;background:#193a3c55;backdrop-filter:blur(10px);color:#d4dbc0}.jump-button svg{width:22px;height:22px}.control-strip{display:none}.interact-key{font-size:0}.interact-key:after{content:'✦';font-size:17px}.interaction-area{bottom:138px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep controls readable when the curved land fills the camera. */
.vignette{background:linear-gradient(to top,#04142180,transparent 28%,transparent 82%,#04142125),radial-gradient(ellipse at 50% 40%,transparent 48%,#040e1b44)}
.region{text-shadow:0 2px 12px #041924c9}
.control-strip{padding:7px 18px 8px;background:#071d28b8;backdrop-filter:blur(12px);border:1px solid #bed0b31f;border-radius:18px;color:#b6c9b6;gap:18px;box-shadow:0 8px 30px #010c1455}
.control-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3.5px;text-align:center}
.control-keys{display:inline-flex;align-items:center;justify-content:center;gap:2.5px}
.control-keys>kbd{margin:0!important}
.control-label{font-size:8.5px;letter-spacing:.03em;color:#92a79e;line-height:1;font-weight:500;transition:color .2s}
.control-item:hover .control-label{color:#d8ebd9}
.control-item:hover kbd{border-color:#e4eed566;color:#f0f5e5}
.is-follow .control-strip{opacity:.90}
.control-strip kbd{color:#d4ddc3;background:#b1c1ac0c;box-shadow:0 1px 2px #00000035;transition:color .2s,border-color .2s}
.region, .is-follow .region {
  position: fixed;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 84px !important;
  transform: translateX(-50%) !important;
  z-index: 4;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 9px 24px 11px;
  width: max-content;
  max-width: min(440px, calc(100vw - 32px));
  border-radius: 18px;
  background: #071d28a8;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid #bed0b31f;
  box-shadow: 0 8px 30px #010c1455;
  transition: opacity .3s, transform .3s;
}
.region .eyebrow {
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .24em;
  color: #b7c6b7;
  text-align: center;
  margin-bottom: 2px;
}
.region h1, .is-follow .region h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  letter-spacing: -.02em;
  font-weight: 400;
  margin: 2px 0 4px;
  line-height: 1.1;
  text-shadow: 0 2px 10px #091c2699;
  text-align: center;
  color: var(--ink);
}
.region p, .is-follow .region p {
  font-size: 10.5px;
  line-height: 1.45;
  color: #c4d4c3;
  margin: 0;
  text-align: center;
  max-width: 360px;
}
.interaction-area {
  position: fixed;
  z-index: 6;
  left: 50%;
  transform: translateX(-50%);
  top: 78px;
  bottom: auto !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.toast {
  top: 144px;
}
@media(max-width:650px){
  .control-strip{width:max-content;max-width:calc(100% - 38px);padding:8px 12px;gap:11px}
  .region, .is-follow .region{
    bottom: 78px !important;
    padding: 8px 16px 10px;
    max-width: calc(100vw - 32px);
    text-shadow: 0 2px 15px #081c21;
  }
  .region h1, .is-follow .region h1{
    font-size: 20px;
    margin-bottom: 2px;
  }
  .region p, .is-follow .region p{
    font-size: 9.5px;
    max-width: 280px;
  }
  .interaction-area{
    top: 68px;
    bottom: auto !important;
  }
  .toast {
    top: 134px;
  }
}
@media(pointer:coarse),(max-width:650px){
  .region, .is-follow .region{
    bottom: 24px !important;
  }
  .interaction-area{
    top: 68px;
    bottom: auto !important;
  }
}
@media(max-width:360px){.brand{font-size:9px;letter-spacing:.14em}.edition{font-size:5.5px}.wordmark{gap:7px}.journal-button{right:98px;padding:8px 9px}}