.canal-minimap { position: fixed; right: 26px; top: 86px; z-index: 46; width: 285px; padding: 13px 15px 11px; background: linear-gradient(135deg,#fbf3def0,#e8e7d1e8); border: 1px solid #a89a7377; border-radius: 10px; box-shadow: 0 8px 25px #435a3a16; color: #405c4e; pointer-events: none; }
.minimap-head { display: flex; justify-content: space-between; align-items: center; }.minimap-head b { font-family: var(--display); font-size: 21px; letter-spacing: 2px; }.minimap-head span { font-size: 10px; color: #8b7952; }
.canal-minimap svg { display: block; width: 100%; height: 115px; overflow: visible; }.minimap-river { fill: none; stroke: #83a899; stroke-width: 9; stroke-linecap: round; }.minimap-nodes circle { fill: #f6e7b8; stroke: #557e6d; stroke-width: 1; }.minimap-nodes text { font-size: 10px; fill: #526a58; text-anchor: middle; }
#minimap-position { fill: #ae5638; stroke: #fff7dc; stroke-width: 1.5; }#minimap-position-halo { fill: #b66e4233; stroke: #b66e4255; stroke-width: 1; }
.minimap-compass { position: absolute; right: 19px; top: 45px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 8px; color: #7c7959; }
#minimap-location { font-size: 11px; margin: 0 0 7px; color: #8b5f36; }.canal-minimap small { display: block; font-size: 8px; line-height: 1.6; color: #8b8b74; }
.mystery-opening { background: #000 !important; transition: background 2s,opacity .5s; }
.mystery-opening .opening-landscape { opacity: 0; animation: none; transition: opacity 3s,filter 3s,transform 8s; filter: brightness(.12) saturate(.4) hue-rotate(15deg); transform: scale(1.07); }
.mystery-opening[data-scene="1"] .opening-landscape { opacity: .8; filter: brightness(.30) saturate(.45) hue-rotate(15deg); }
.mystery-opening[data-scene="2"] .opening-landscape { opacity: .95; filter: brightness(.43) saturate(.65); transform: scale(1); }
.mystery-opening::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 45%,transparent,#02060bd9 85%),linear-gradient(transparent,#0008); pointer-events: none; opacity: 0; transition: opacity 3s; }
.mystery-opening[data-scene="1"]::after,.mystery-opening[data-scene="2"]::after { opacity: 1; }
.mystery-stage { position: relative; z-index: 3; width: min(920px,85vw); text-align: center; opacity: 0; transform: translateY(10px); filter: blur(5px); transition: opacity .6s,transform .8s,filter .8s; }
.mystery-stage.scene-visible { opacity: 1; transform: none; filter: none; }
.mystery-opening .mystery-stage h1 { margin: 0; font-family: var(--display); font-size: clamp(35px,4.6vw,65px); color: #e9e7da; letter-spacing: 7px; line-height: 1.5; font-weight: 500; text-shadow: 0 0 30px #b5d7ce26; }
.mystery-index { font-size: 11px; letter-spacing: 5px; color: #8dafa8; min-height: 15px; margin: 0 0 27px; }
.mystery-copy { color: #b9c3bb; font-size: 16px; line-height: 2.5; max-width: 660px; margin: 27px auto 0; letter-spacing: 2px; }
.mystery-next { color: #c8d6c8; background: #142c2855; border: 1px solid #718f7f66; border-radius: 2px; padding: 12px 29px; letter-spacing: 3px; margin-top: 35px; cursor: pointer; transition: background .3s; }
.mystery-next:hover { background: #31544b77; }
.mystery-skip { position: absolute; right: 29px; top: 28px; z-index: 4; color: #889590; border: none; background: transparent; font-size: 11px; letter-spacing: 2px; cursor: pointer; }
.mystery-opening[data-scene="0"] .mystery-next,.mystery-opening[data-scene="0"] .mystery-skip { opacity: 0; animation: show-intro-controls .5s 2s forwards; }
.mystery-opening[data-scene="0"] .mystery-stage h1 { animation: mystery-type .7s .65s both; }
.mystery-opening[data-scene="0"] .mystery-copy,.mystery-opening[data-scene="0"] .mystery-index { display: none; }
@keyframes mystery-type { from { opacity: 0; filter: blur(12px); letter-spacing: 12px; } to { opacity: 1; filter: blur(0); letter-spacing: 7px; } }
@keyframes show-intro-controls { to { opacity: 1; } }
@media(prefers-reduced-motion:reduce) { .mystery-stage,.mystery-opening .opening-landscape { transition: none; }.mystery-opening[data-scene="0"] .mystery-stage h1 { animation: none; }.mystery-opening[data-scene="0"] .mystery-next,.mystery-opening[data-scene="0"] .mystery-skip { opacity: 1; animation: none; } }
.entry-gate{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;background:#020303;color:#f0ead9;opacity:1;transition:opacity .6s ease,visibility .6s ease}.entry-gate.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.entry-gate-inner{text-align:center}.entry-gate-mark{display:block;margin-bottom:30px;color:#8fa99d;font-family:'STKaiti','KaiTi',serif;font-size:15px;letter-spacing:9px}.entry-enter{min-width:190px;padding:15px 34px;border:1px solid rgba(211,193,145,.58);border-radius:2px;background:rgba(23,39,35,.72);box-shadow:0 0 38px rgba(125,162,148,.12),inset 0 0 20px rgba(255,255,255,.025);color:#f2e8cc;font-family:'STKaiti','KaiTi',serif;font-size:22px;font-weight:700;letter-spacing:7px;cursor:pointer;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}.entry-enter:hover,.entry-enter:focus-visible{transform:translateY(-2px);background:rgba(45,72,64,.82);box-shadow:0 0 46px rgba(143,184,168,.24);outline:none}.entry-enter:active{transform:translateY(1px)}
