/* Warm, tactile learning pieces in a spacious world. Deep content stays quiet. */
.journey-world .world-stage{min-height:620px}
.journey-world .world-art{transition:transform .85s cubic-bezier(.2,.7,.2,1),opacity .7s;transform:scale(1.07) translate(calc(var(--journey-pan,0px) + var(--scene-x,0px)),var(--scene-y,0px));object-position:50% 51%}
.journey-world .world-welcome{top:17%;pointer-events:none}
.journey-world .world-welcome h1{font-size:clamp(34px,3.4vw,56px);font-weight:420}
.journey-world .world-overline{font-size:9px;letter-spacing:.24em}
.journey-world .world-tagline{letter-spacing:.1em}
.journey-path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;opacity:.75;filter:drop-shadow(0 0 8px #ffd290)}
.journey-path path{fill:none;stroke:url(#trail-gold);stroke-width:1.1}
.journey-path .journey-path-light{stroke-width:3;stroke-dasharray:2 36;animation:road-flow 15s linear infinite}
.journey-world .traveler{left:50%;top:74%;width:154px;height:178px;transition:left .85s,top .85s,filter .85s}
.journey-world .traveler.is-moving{left:56%;top:69%;filter:drop-shadow(0 0 17px #ffe5ae66)}
.journey-world .realm-marker{top:39%;max-width:270px}
.journey-world .world-bottom{bottom:48px}
.journey-world .world-status{max-width:28%;font-size:11px}
.journey-world .world-corner-note{background:none;border:0;cursor:pointer;padding:10px 0;color:#fff0d5}
.journey-world .walk-hint button{border:0;background:transparent;color:inherit;min-height:44px;padding:0 5px;font-size:11px;text-shadow:inherit;cursor:pointer;pointer-events:auto}
.journey-route{position:absolute;z-index:4;right:4%;top:39%;width:176px;color:#fff4de}
.route-caption{font-size:10px;letter-spacing:.1em;margin:0 0 14px}
.route-stops{display:flex;gap:7px;align-items:center}
.route-stop{width:24px;height:24px;border:1px solid #fff5d57a;background:#31565c33;color:#fff1cb;border-radius:50%;font-size:10px;display:grid;place-items:center}
.route-stop.is-current{color:#573925;background:#ffe1aa;box-shadow:0 0 0 5px #ffe0ae17}
.route-stop.is-past{background:#d39455aa;color:white}
.route-reason{font-size:11px;line-height:1.9;opacity:.9;margin-top:15px;overflow-wrap:anywhere}
.journey-world .spark-nodes{z-index:5}
.journey-piece,.route-complete,.route-complete button,.route-complete a{pointer-events:auto}
.journey-piece{position:absolute;top:48%;left:64%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:10px;width:min(220px,33vw);min-height:145px;border:0;background:transparent;color:#fff7e1;cursor:pointer;padding:13px;text-align:center;text-shadow:0 2px 5px #233d43;isolation:isolate}
.piece-crystal{display:grid;place-items:center;width:57px;height:62px;position:relative;filter:drop-shadow(0 0 19px #ffdaa87c);font-size:22px;color:#fffef0;background:linear-gradient(145deg,#fffbd66e,#d796453f);clip-path:polygon(0 9%,35% 9%,35% 0,61% 0,61% 9%,100% 9%,100% 46%,89% 46%,89% 68%,100% 68%,100% 100%,59% 100%,59% 87%,38% 87%,38% 100%,0 100%,0 68%,12% 68%,12% 44%,0 44%);animation:piece-float 5s ease-in-out infinite;border:1px solid #ffefab}
.journey-piece strong{font-size:15px;line-height:1.8;font-weight:500;letter-spacing:.03em}
.journey-piece small{font-size:10px;color:#fff2d8;line-height:1.7}
.journey-piece::before{content:"";position:absolute;width:110px;height:110px;top:-9px;border-radius:50%;background:radial-gradient(circle,#ffdd9850,transparent 70%);z-index:-1}
.journey-piece:hover .piece-crystal{filter:drop-shadow(0 0 27px #ffdda9)}
.journey-piece:focus-visible{outline:2px solid #ffe8b7;border-radius:20px;outline-offset:5px}
.route-complete{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:min(390px,85vw);text-align:center;padding:22px;color:#fff2d7;background:#294f5578;backdrop-filter:blur(14px);border:1px solid #fff0bd44;border-radius:15px}
.route-complete h2{font-size:22px;font-weight:450;margin:0 0 10px}.route-complete p{font-size:13px;line-height:1.9}.route-complete button{margin:5px;background:#fff1d0;color:#62492d;border:1px solid #fff1d0;border-radius:5px;min-height:44px;padding:8px 16px}
.journey-world .discovery-dialog{width:min(640px,calc(100vw - 40px))}
.journey-world .dialog-body{font-size:15px;overflow-wrap:anywhere}
.journey-world .dialog-body p{font-size:14px;line-height:1.95}
.journey-world .dialog-body h2{font-size:28px;line-height:1.5;font-weight:500}
.journey-world .dialog-body h3{font-size:17px;line-height:1.7}
.depth-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:18px 0 22px}
.depth-nav button{border:1px solid #dbd7c9;background:#f7f5eb;color:#62716b;border-radius:7px;padding:9px 2px;min-height:49px;font:inherit;font-size:12px}
.depth-nav button small{display:block;font-size:9px;margin-bottom:3px;opacity:.8}
.depth-nav button[aria-pressed=true]{background:#3c6464;color:#fff5df;border-color:#3c6464}
.journey-quote{font-size:27px!important;line-height:1.8!important;letter-spacing:.025em;color:#5c4936!important;padding:20px 0 20px 22px;margin:25px 0;border-left:2px solid #dca65f}
.journey-source{display:flex;flex-wrap:wrap;gap:7px 16px;align-items:center;margin:16px 0;color:#88745c;font-size:11px}
.journey-source a{color:#7d603d;text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
.journey-depth-meta{font-size:11px;color:#7b8275;display:flex;justify-content:space-between;gap:8px}
.journey-world .mini-note{font-size:12px!important}
.journey-world .world-card{background:#f2f3ea;padding:20px 22px}
.journey-world .knowledge-note{background:#f9f0df}
.journey-actions{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}
.journey-actions button,.journey-actions a{min-height:44px}
.recall-ratings{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}
.recall-ratings button{background:#fcfaf1;border:1px solid #cfcebc;border-radius:25px;padding:9px 15px;min-height:44px;font-size:12px;color:#53675d}
.coach-invite{margin-top:28px;border-top:1px solid #ded7c5;padding-top:22px;display:flex;align-items:flex-start;gap:14px}
.coach-invite img{width:48px;height:48px;flex:none;border-radius:50%}
.coach-invite p{margin:0 0 10px!important;font-size:12px!important}
.coach-invite button{border:0;border-bottom:1px solid #bc915e;background:none;min-height:44px;color:#876239;font-size:12px;padding:7px 8px;margin-right:7px}
.method-map{display:grid;gap:0;margin:22px 0}.method-node{position:relative;border:1px solid #d7d9c7;background:#eef1e7;border-radius:9px;padding:20px;margin-bottom:21px}.method-node:not(:last-child)::after{content:"↓";position:absolute;bottom:-22px;left:50%;color:#aa8155}.method-node small{color:#a37548;font-size:10px;letter-spacing:.15em}.method-node h3{margin:6px 0}.method-node p{margin:7px 0}
.book-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.book-tile{border:1px solid #d6d6c4;border-radius:8px;background:#f8f8ef;min-height:168px;padding:18px 15px;text-align:left;display:flex;flex-direction:column;gap:9px;color:#415c59;line-height:1.65;position:relative;overflow:hidden}
.book-tile::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#be8c58,#a8b5a1)}
.book-tile strong{font-size:14px;font-weight:500}.book-tile small{font-size:11px;color:#7b806e}.book-tile span{margin-top:auto;font-size:11px;color:#9b7448}.book-tile:hover{background:#efeedd;border-color:#bca87f}
.atlas-filter{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}.atlas-filter button{border:1px solid #d4d5c1;background:#fcfaef;border-radius:24px;padding:8px 13px;min-height:44px;font-size:12px;color:#566b62}.atlas-filter button[aria-pressed=true]{background:#365b59;color:#fff8e5;border-color:#365b59}
.puzzle-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:25px 0}.puzzle-slot{min-height:188px;background:#f0f1e5;border:1px dashed #abbca7;border-radius:8px;text-align:left;padding:20px 15px;color:#425e53;display:flex;flex-direction:column;justify-content:space-between;gap:12px;font:inherit}.puzzle-slot small{color:#97815d;font-size:11px}.puzzle-slot strong{font-size:13px;line-height:1.8;font-weight:450}.puzzle-slot.is-filled{background:#e9edde;border-style:solid;border-color:#849d7e}.puzzle-slot:hover{border-color:#b47f47;background:#f6edda}.puzzle-slot[aria-disabled=true]{cursor:default}
.puzzle-pieces{display:flex;gap:9px;flex-wrap:wrap}.puzzle-piece{border:1px solid #c2a06d;background:#f7e9cb;border-radius:3px 17px 3px 17px;padding:14px;min-height:56px;font-size:13px;line-height:1.7;color:#715637;max-width:100%;overflow-wrap:anywhere}.puzzle-piece[aria-pressed=true]{background:#a76d38;color:#fff7e4;box-shadow:0 0 0 3px #ba935344}.puzzle-feedback{min-height:55px;padding:12px 0;font-size:13px;line-height:1.9;color:#896638}
.prefs-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.prefs-grid label{font-size:13px;display:grid;gap:8px}.interest-checks{display:flex;gap:8px;flex-wrap:wrap}.interest-checks label{display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 10px;border:1px solid #ddd7c4;border-radius:7px;font-size:12px}.privacy-line{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.9;margin:18px 0}.privacy-line input{margin-top:4px}
.coach-card{background:#f0f2e7;border:1px solid #d5dac8;border-radius:10px;padding:17px;margin:15px 0}.coach-card p{white-space:pre-wrap}.coach-account{display:flex;justify-content:space-between;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #ddd7c6;font-size:12px}.coach-account button{border:0;background:none;color:#8b663e;padding:12px;min-height:44px}.coach-status{font-size:12px;line-height:1.9;white-space:pre-wrap}.coach-status.error{color:#a13f2c}.coach-context{background:#f6efe0;border-left:2px solid #c59b68;padding:12px 16px;margin:20px 0;font-size:12px;line-height:1.9}.coach-result{margin-top:25px;border-top:1px solid #d4cbb7;padding-top:15px}.coach-result p{white-space:pre-wrap}.coach-result ul{padding-left:20px}.coach-result h3{font-size:15px!important}.coach-result .ai-label{font-size:11px;color:#836744}.practice-field{margin:20px 0}.practice-field small{display:block;font-size:12px;line-height:1.9;color:#737d6a}.practice-preview{padding:16px;border-left:2px solid #c9ae82;background:#f5f2e7;margin:12px 0}.practice-preview strong{font-size:13px}.practice-preview p{font-size:13px!important}.practice-badge{display:inline-block;padding:5px 9px;background:#e7eddc;color:#516646;border-radius:5px;font-size:11px}.practice-preview p,.practice-field textarea{white-space:pre-wrap}.journey-world button:disabled{cursor:not-allowed;opacity:.55}
@keyframes road-flow{to{stroke-dashoffset:-380}}@keyframes piece-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-7px) rotate(3deg)}}
.world-ambient-idle .world-stage *,.world-ambient-idle .world-stage *::before,.world-ambient-idle .world-stage *::after{animation-play-state:paused!important;transition:none!important}
@media(max-width:1000px){.journey-route{width:145px;right:4%;top:36%}.journey-world .realm-marker{top:35%}.journey-piece{left:69%;top:50%}.journey-world .traveler{left:46%;top:70%;width:130px;height:155px}.journey-world .traveler.is-moving{left:51%;top:66%}}
@media(max-width:700px){.journey-world .world-stage{min-height:620px}.journey-world .world-welcome{top:16%}.journey-world .world-overline{font-size:8px;letter-spacing:.08em}.journey-world .world-welcome h1{font-size:34px}.journey-world .world-tagline{font-size:11px}.journey-world .realm-marker{top:32%;left:5%;max-width:200px}.journey-route{right:5%;top:36%;width:auto;max-width:160px}.route-caption{font-size:9px;margin-bottom:8px}.route-reason{display:none}.route-stop{width:18px;height:18px;font-size:8px}.route-stops{gap:6px}.journey-world .traveler{left:36%;top:70%;width:117px;height:139px}.journey-world .traveler.is-moving{left:45%;top:67%}.journey-piece{left:65%;top:53%;width:185px;max-width:49vw;min-height:140px;padding:7px}.journey-piece strong{font-size:13px}.journey-piece small{font-size:10px}.piece-crystal{width:46px;height:51px;font-size:19px}.journey-world .world-bottom{bottom:42px;gap:3px}.journey-world .companion-speech{font-size:10px}.journey-world .world-status{max-width:94%;font-size:10px}.journey-world .world-dialog,.journey-world .discovery-dialog{width:calc(100vw - 18px)}.journey-world .dialog-body{padding-inline:21px}.journey-world .dialog-body h2{font-size:24px}.journey-quote{font-size:23px!important;padding-left:17px}.depth-nav{gap:3px}.depth-nav button{font-size:11px;padding-inline:0}.book-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.book-tile{padding:15px 12px;min-height:161px}.puzzle-slots{grid-template-columns:1fr;gap:9px}.puzzle-slot{min-height:102px;padding:14px}.puzzle-slot strong{font-size:13px}.prefs-grid{grid-template-columns:1fr}.coach-invite{gap:10px}.coach-invite img{width:40px;height:40px}.route-complete{top:50%;max-width:80vw}.route-complete h2{font-size:20px}.journey-world .world-art{transform:scale(1.05) translateX(var(--journey-pan,0px))}}
@media(max-width:359px){.journey-world .world-welcome h1{font-size:30px}.journey-world .world-tagline{font-size:10px}.journey-piece{left:66%;width:162px}.journey-world .traveler{width:105px;height:126px}.journey-world .dialog-body{padding-inline:17px}.depth-nav button small{font-size:8px}.journey-world .world-overline{font-size:7px}.journey-route{top:37%}.book-tile strong{font-size:13px}}
@media(max-height:700px) and (min-width:701px){.journey-world .world-stage{min-height:580px}.journey-world .world-welcome{top:18%}.journey-world .world-welcome h1{font-size:36px}.journey-world .world-overline{margin-bottom:8px}.journey-world .world-tagline{margin-top:10px}.journey-world .realm-marker,.journey-route{top:39%}.journey-piece{top:54%}.journey-world .world-bottom{bottom:30px}.journey-world .traveler{top:76%;width:125px;height:147px}}
@media(prefers-reduced-motion:reduce){.journey-world .world-art{transform:none}.journey-world .traveler.is-moving{left:50%;top:74%}}
