:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color-scheme:light;scroll-behavior:smooth}
*{box-sizing:border-box}html{min-width:320px}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,.word:focus-visible{outline:3px solid #e6a72c;outline-offset:3px}.skip{position:absolute;top:-100px;left:20px;background:#fff;padding:12px;z-index:100}.skip:focus{top:8px}
.app{--bg:#f8f7f3;--paper:#fffefa;--card:#fff;--ink:#1c3148;--sub:#5b6c7a;--line:#dfdfdb;--soft:#eff2f1;--nav:#092847;--accent:#0d7776;--accent-deep:#075c5b;--gold:#c18c2d;--header:#ffffffeb;--shadow:0 11px 35px rgba(21,44,62,.07);background:var(--bg);color:var(--ink);min-height:100vh;transition:background .25s,color .25s}
.app.theme-fosc{--bg:#101a2c;--paper:#152438;--card:#17283d;--ink:#ebf2f5;--sub:#afbfcc;--line:#354a5e;--soft:#1b3044;--nav:#101f36;--accent:#73d5c8;--accent-deep:#317e7d;--gold:#edba6d;--header:#102035ec;--shadow:0 13px 40px rgba(0,0,0,.19);color-scheme:dark}
.site-header{position:sticky;top:0;z-index:30;background:var(--header);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.nav-wrap{max-width:1360px;margin:auto;padding:12px 28px;display:flex;align-items:center;gap:30px;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;background:transparent;border:0;color:var(--ink);text-align:left;padding:0;font-weight:800;letter-spacing:.08em;white-space:nowrap}.brand>span:last-child{line-height:1.2}.brand b{color:var(--accent)}.brand small{display:block;color:var(--sub);font-weight:500;font-size:10px;letter-spacing:.06em;margin-top:4px}.brand-mark{height:48px;width:48px;display:grid;place-items:center;border-radius:14px;background:#133759;color:#ffe6a1;font-size:23px;letter-spacing:-.1em;box-shadow:inset 0 0 0 2px #355778}.brand-mark span{color:#69d1c9}.nav-links{display:flex;gap:4px;align-items:center}.nav-links button,.nav-actions button,.mobile-nav button{border:0;color:var(--ink);background:transparent;border-radius:10px;padding:12px 13px;font-weight:650;font-size:13px}.nav-links button:hover,.nav-actions button:hover,.mobile-nav button:hover{background:var(--soft)}.nav-actions{display:flex;align-items:center;gap:6px}.xp-pill{display:inline-block;padding:9px 12px;font-size:12px;font-weight:800;background:var(--soft);border-radius:25px;color:var(--ink);white-space:nowrap}.nav-actions button{font-size:22px;padding:8px 12px}.menu-toggle{display:none}.mobile-nav{display:none}.main-container{max-width:1220px;margin:auto;padding:0 28px}.hero{background:linear-gradient(135deg,#0b2c50 0%,#113f59 65%,#0d4a54 100%);color:#fff;min-height:560px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 73%,#19706c66,transparent 35%),radial-gradient(circle at 88% 25%,#f1c46e2e,transparent 27%);pointer-events:none}.hero-copy{position:relative;z-index:1;align-self:center;justify-self:end;width:min(100%,580px);padding:56px 28px 65px max(36px,4vw)}.eyebrow{font-size:11px;font-weight:850;letter-spacing:.18em;color:var(--accent);text-transform:uppercase}.hero .eyebrow{color:#f0d492}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(48px,5vw,79px);line-height:1.06;letter-spacing:-.035em;font-weight:500;margin:16px 0 20px}.hero h1 em{font-weight:400;font-style:italic;color:#f5d58e}.hero p{max-width:485px;font-size:17px;line-height:1.7;color:#d5e4e7}.hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:30px}.btn{padding:13px 20px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:750;font-size:13px;display:inline-flex;gap:20px;align-items:center;justify-content:center;min-height:46px}.btn.primary{background:#f0c474;color:#142e46;border-color:#f0c474}.btn.primary:hover{background:#ffdb94}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.hero .btn.ghost{color:#fff;border-color:#ffffff6b}.btn.light{background:#f2d59b;color:#1a3548;border:0}.btn.danger{color:#a83237;border-color:#cbb1ad;background:transparent}.hero-stats{display:flex;gap:30px;margin-top:38px;color:#d2dfeb;font-size:12px}.hero-stats strong{display:block;color:#fff;font-size:22px}.hero-stage{position:relative;min-height:520px;display:grid;place-items:center;perspective:1000px}.portal-scene{position:relative;width:min(90%,570px);height:430px;transform:rotateX(-5deg) rotateY(var(--ry, -13deg));transform-style:preserve-3d;transition:transform .18s ease-out;touch-action:pan-y;cursor:grab}.portal-scene:active{cursor:grabbing}.scene-floor{position:absolute;left:6%;bottom:-6%;width:92%;height:140px;transform:rotateX(70deg) translateZ(-20px);border-radius:50%;background:radial-gradient(ellipse,#1bc2b35e,transparent 66%)}.scene-halo{position:absolute;top:20px;left:18%;height:330px;width:330px;border:1px solid #ffffff35;border-radius:50%;box-shadow:0 0 0 35px #ffffff09,0 0 0 80px #ffffff05}.scene-window{position:absolute;top:25px;left:24%;width:300px;height:340px;border:15px solid #d6b77c;border-bottom-width:25px;border-radius:160px 160px 18px 18px;transform:translateZ(-48px);box-shadow:0 0 0 10px #072c4d,0 40px 55px #02152a70,inset 0 0 35px #fff6;overflow:hidden;background:linear-gradient(#75bbc1,#c9d3b8 62%,#efc98a)}.scene-sky{height:100%;width:100%;background:radial-gradient(circle at 78% 24%,#fff0b0 0 10%,transparent 11%),linear-gradient(130deg,#5388bd,#c6b49e)}.scene-hills{position:absolute;bottom:0;width:130%;left:-15%;height:130px;background:#396768;border-radius:55% 45% 0 0;box-shadow:-100px 20px 0 13px #1a4754,140px 35px 0 15px #246071}.scene-city{position:absolute;bottom:38px;left:18px;right:18px;display:flex;align-items:end;gap:9px}.scene-city i{width:45px;height:75px;background:#d8bf91;box-shadow:inset 0 8px 0 #fff7,0 8px 0 #704a42}.scene-city i:nth-child(2){height:110px;background:#e9d6b8}.scene-city i:nth-child(3){height:145px;background:#b96b54}.scene-city i:nth-child(4){height:95px;background:#e6b66f}.scene-city i:nth-child(5){height:120px;background:#d18e74}.window-title{position:absolute;top:60px;left:35px;font:700 43px Georgia,serif;letter-spacing:.1em;color:#fff9;text-shadow:0 2px 10px #153354}.scene-book{position:absolute;width:91px;height:212px;bottom:0;border-radius:9px 5px 3px 3px;border:2px solid #fff4;box-shadow:12px 16px 24px #00102d70,inset 7px 0 8px #0004;transform-style:preserve-3d;display:grid;place-items:center}.scene-book:before{content:"";position:absolute;left:0;right:0;top:21px;border-top:2px solid #fff6}.scene-book:after{content:"";position:absolute;left:0;right:0;bottom:27px;border-top:2px solid #fff5}.scene-book b{font:66px Georgia,serif;color:#fff2}.book-a{left:0;bottom:32px;background:#bd704c;transform:translateZ(95px) rotateZ(-10deg)}.book-b{left:112px;bottom:4px;height:262px;background:#159e9a;transform:translateZ(125px) rotateZ(-5deg)}.book-c{right:61px;bottom:10px;height:248px;background:#bd8c41;transform:translateZ(125px) rotateZ(9deg)}.book-d{right:-16px;bottom:40px;height:184px;background:#557397;transform:translateZ(85px) rotateZ(13deg)}.book-d b{font-size:44px}.scene-orbit{position:absolute;top:65px;right:20px;font-size:65px;color:#ffe09e;transform:translateZ(160px);animation:float 4s ease-in-out infinite}.scene-help{position:absolute;right:30px;bottom:22px;font-size:12px;color:#c7dde4}.selectors{display:flex;gap:16px;align-items:end;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);padding:18px 24px;border-radius:16px;box-shadow:var(--shadow);margin:24px 0 38px}.selectors label{color:var(--sub);font-size:12px;font-weight:750;display:flex;flex-direction:column;gap:8px;min-width:170px;flex:1}.selectors select,.selectors input,.panel input,.reading-question input,.tutor input,.writing-paper input{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:11px 12px;border-radius:10px;max-width:100%;min-height:44px}.selectors input[type=range]{padding:0;accent-color:var(--accent)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin:50px 0 23px}.section-heading h2,.home-escape h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(28px,3vw,38px);letter-spacing:-.02em;margin:7px 0}.section-heading p{color:var(--sub);margin:0;line-height:1.65}.section-heading.compact{margin:28px 0 18px}.count-chip{background:var(--soft);color:var(--sub);padding:10px 13px;border-radius:25px;font-size:12px;font-weight:650;white-space:nowrap}.world-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.world-card{min-width:0;display:flex;flex-direction:column;align-items:stretch;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:19px;overflow:hidden;padding:17px;min-height:285px;transition:transform .17s,box-shadow .17s,border-color .17s;box-shadow:0 5px 15px #00000005}.world-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--accent)}.world-top,.world-bottom{display:flex;align-items:center;justify-content:space-between;gap:9px}.world-top small{letter-spacing:.14em;font-size:10px;font-weight:900;color:var(--sub)}.world-symbol{font-size:25px;color:var(--accent)}.world-visual{display:grid;place-items:center;min-height:105px;margin:12px -17px 16px;overflow:hidden;background:linear-gradient(160deg,#dce6e8,#afc8c7)}.world-card:nth-child(3n+1) .world-visual{background:linear-gradient(150deg,#f1e3c5,#d3b78e)}.world-card:nth-child(3n+2) .world-visual{background:linear-gradient(135deg,#cadce9,#a9c4de)}.world-card:nth-child(4n+4) .world-visual{background:linear-gradient(155deg,#e8d4d6,#c9aebc)}.world-land{font:bold 67px Georgia,serif;color:#fff;display:grid;place-items:center;text-shadow:2px 7px 18px #3a596a40;transform:rotate(-12deg) perspective(100px) rotateY(16deg)}.world-card strong{font-size:17px;line-height:1.3}.world-card>span:nth-last-child(2){font-size:12px;color:var(--sub);line-height:1.5;min-height:55px;margin-top:9px}.world-bottom{border-top:1px solid var(--line);margin-top:auto;padding-top:13px;font-weight:800;color:var(--accent)}.world-bottom small{font-size:11px;color:var(--sub)}.mini-progress,.bar{height:7px;background:var(--soft);border-radius:10px;overflow:hidden;display:block;flex:1}.mini-progress i,.bar i{height:100%;background:linear-gradient(90deg,#20a99b,#d8ab5e);display:block;transition:width .3s}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:45px}.feature-block{display:flex;flex-direction:column;text-align:left;align-items:flex-start;gap:12px;padding:24px;border-radius:17px;background:var(--soft);border:1px solid var(--line);color:var(--ink)}.feature-block>span{font-size:36px;color:var(--accent)}.feature-block strong{font-size:16px}.feature-block small{font-size:12px;line-height:1.5;color:var(--sub)}.feature-block b{font-size:12px;color:var(--accent);margin-top:auto}.home-escape{margin:48px 0 70px;padding:37px 50px;border-radius:22px;background:linear-gradient(120deg,#103c52,#172c50);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px;overflow:hidden}.home-escape .eyebrow{color:#e6c98a}.home-escape h2{font-size:40px}.home-escape p{line-height:1.65;color:#cbdde4;max-width:490px}.door-art{border:10px solid #e5c88f;border-bottom:0;border-radius:100px 100px 0 0;background:linear-gradient(145deg,#334a5b,#0d1d2f);height:200px;width:150px;flex-shrink:0;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:translateY(38px);box-shadow:12px 0 0 #ffffff14}.door-art span{font:65px Georgia,serif;color:#f2d5a1}.door-art small{font-size:10px;letter-spacing:.16em}.page{padding-top:34px;padding-bottom:70px}.breadcrumbs{display:flex;gap:13px;align-items:center;color:var(--sub);font-size:12px;margin-bottom:22px}.breadcrumbs button{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline}.page-intro{margin:10px 0 28px}.page-intro h1{font:500 clamp(34px,4vw,52px) Georgia,serif;letter-spacing:-.03em;line-height:1.14;margin:12px 0}.page-intro p{color:var(--sub);line-height:1.68;max-width:770px;font-size:16px}.intro-symbol{color:var(--accent)}.page .selectors{margin-top:15px}.panel{display:block;background:var(--paper);border:1px solid var(--line);border-radius:15px;overflow:hidden;margin:14px 0;box-shadow:0 5px 14px #00000006}.panel>summary{list-style:none;display:flex;align-items:center;gap:15px;padding:19px 22px;cursor:pointer;min-height:62px}.panel>summary::-webkit-details-marker,.subpanel>summary::-webkit-details-marker{display:none}.panel>summary:after{content:"+";font-size:25px;font-weight:300;margin-left:auto;color:var(--accent)}.panel[open]>summary:after{content:"−"}.panel>summary>span{font-size:23px;color:var(--accent)}.panel>summary strong{font-size:16px}.panel>summary small{font-size:12px;color:var(--sub);margin-left:auto}.panel>.panel-body{border-top:1px solid var(--line);padding:21px 23px;line-height:1.7;color:var(--ink)}.panel-body p{line-height:1.7}.subpanel{border:1px solid var(--line);margin:9px 0;border-radius:11px;background:var(--soft);overflow:hidden}.subpanel>summary{cursor:pointer;list-style:none;padding:11px 16px;font-size:14px;display:flex;justify-content:space-between;gap:12px}.subpanel[open]>summary{border-bottom:1px solid var(--line)}.subpanel>summary:after{content:"⌄";margin-left:auto;color:var(--accent)}.subpanel>p,.subpanel>.mini-btn{margin:14px}.subpanel>summary small{color:var(--sub)}.feature-lab{padding:27px 30px;margin-top:30px;border-radius:18px;background:var(--soft);border:1px solid var(--line)}.feature-lab h2{font:500 28px Georgia,serif;margin:9px 0 12px}.feature-lab p{line-height:1.7;color:var(--sub)}.feature-lab .selectors{box-shadow:none}.sentence-scene{padding:34px 15px;border:1px dashed #64a9a0;border-radius:14px;background:var(--paper);text-align:center;font:500 clamp(24px,3.3vw,38px) Georgia,serif}.sentence-scene span{color:var(--ink)}#builder-rule{font-size:13px}.quiz-section{margin-top:35px}.steps{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.step{height:36px;min-width:36px;border-radius:9px;border:1px solid var(--line);color:var(--ink);background:var(--card);font-size:12px;font-weight:800}.step.completed{background:#d9f0e3;color:#075845;border-color:#b7e0cf}.step.active{outline:2px solid var(--accent);outline-offset:2px}.quiz-card{border:1px solid var(--line);border-radius:19px;background:var(--card);overflow:hidden;box-shadow:var(--shadow)}.quiz-meta{background:var(--nav);color:#e9d5a4;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;font-weight:800;font-size:11px;letter-spacing:.08em}.quiz-card-content{padding:26px 30px 32px}.quiz-card h3{font:500 clamp(23px,3vw,32px) Georgia,serif;line-height:1.36;margin:0 0 24px}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.answer-option{min-height:58px;padding:15px 18px;border:1px solid var(--line);border-radius:12px;text-align:left;color:var(--ink);background:var(--paper);font-weight:650}.answer-option:hover{border-color:var(--accent)}.answer-option.selected{background:var(--soft);outline:2px solid var(--accent);border-color:var(--accent)}.quiz-toolbar,.quiz-nav,.button-row,.editor-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.quiz-toolbar{margin-top:21px}.quiz-toolbar .btn.primary{background:#087d72;color:white;border-color:#087d72}.mini-btn{background:transparent;border:1px solid var(--line);color:var(--ink);padding:10px 13px;border-radius:9px;font-size:12px;font-weight:750;min-height:39px}.mini-btn:hover{border-color:var(--accent);color:var(--accent)}.hint{border-left:3px solid #c89b3b;padding:12px 16px;background:var(--soft);margin:18px 0 0;border-radius:0 10px 10px 0}.hint p,.feedback p{margin:7px 0}.feedback{border-radius:12px;border:1px solid var(--line);padding:15px 18px;margin-top:18px;line-height:1.55}.feedback.positive{background:#e1f4ea;color:#124f3b;border-color:#c0decf}.feedback.negative{background:var(--soft);color:var(--ink)}.quiz-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 22px;border-top:1px solid var(--line)}.quiz-bottom small{color:var(--sub);font-size:11px;line-height:1.5}.field-label{display:block;font-weight:700;font-size:13px;margin:12px 0}.quiz-card input#student-answer{max-width:720px;width:100%;min-height:53px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:12px 14px}.word-chips{display:flex;flex-wrap:wrap;gap:9px}.word-chip{padding:10px 15px;border-radius:10px;background:var(--soft);border:1px solid var(--line);color:var(--ink)}.order-result{border:1px dashed var(--accent);padding:18px;border-radius:12px;margin:15px 0;min-height:65px}.audio-block{display:flex;flex-direction:column;gap:12px;background:var(--soft);padding:16px;border-radius:12px;margin-bottom:20px}.audio-block audio{width:min(100%,500px)}.audio-block .subpanel{max-width:600px}.tree{display:flex;align-items:center;flex-direction:column;gap:17px;padding:22px 0}.tree-branches{display:flex;align-items:flex-start;justify-content:center;gap:15px;max-width:100%;flex-wrap:wrap}.tree-branches>div{text-align:center;position:relative}.tree-branches>div>small{display:block;font-size:11px;color:var(--sub);margin-top:8px}.tree-node{background:var(--paper);color:var(--ink);border:1px solid #7da7a5;padding:15px;border-radius:10px;min-width:120px;text-align:center;display:block}.tree-node.root{background:var(--nav);color:#fff;border-color:var(--nav);font-weight:750}.tree-node.selected{outline:3px solid #d3a258}.tree-result{font-weight:700;min-height:32px}.transform-flow{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px;border-radius:13px;background:var(--paper);font:23px Georgia,serif}.transform-flow>span{font:12px ui-sans-serif,sans-serif;letter-spacing:.08em;color:var(--sub)}.transform-flow strong{color:var(--accent)}.transform-flow p{font:13px ui-sans-serif,sans-serif;text-align:center}.transform-flow mark{color:var(--ink);background:#f7d899}.semantic-map{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;padding:22px}.semantic-map span{border:1px solid var(--line);background:var(--paper);border-radius:60px;padding:20px;font-size:13px;text-align:center}.semantic-map span:first-child{background:var(--nav);color:#fff;font-size:20px}.escape-summary{background:var(--soft);padding:20px 24px;border-radius:15px;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--sub)}.escape-summary>span:first-child{font-size:16px;color:var(--ink);font-weight:850}.door-grid{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:7px;margin:24px 0}.door{height:85px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:linear-gradient(140deg,#315d67,#153b54);border:5px solid #bca16d;color:#fff;border-bottom-color:#705534;border-radius:40px 40px 6px 6px;box-shadow:inset -5px 0 8px #0002}.door span{font:25px Georgia,serif}.door small{font-size:8px;color:#f5dca1}.door-done{background:linear-gradient(120deg,#07705d,#199b8c)}.door-active{outline:3px solid var(--accent);outline-offset:2px}.door-locked{filter:grayscale(.9);opacity:.46}.results-count{font-size:13px;color:var(--sub)}.gloss-grid{display:grid;grid-template-columns:repeat(3,1fr);align-items:start;gap:13px}.gloss-item{border:1px solid var(--line);background:var(--card);border-radius:13px;overflow:hidden;padding:0 15px;min-width:0}.gloss-item>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 0;list-style:none;cursor:pointer}.gloss-item>summary strong{font-size:15px}.gloss-item>summary span{color:var(--accent);font-size:20px}.gloss-item p{font-size:13px;line-height:1.65}.gloss-item small{font-size:11px;color:var(--sub);display:block;line-height:1.5;margin:10px 0}.gloss-item .mini-btn{margin-bottom:14px}.example{background:var(--soft);padding:14px;border-radius:10px;font-size:13px;line-height:1.6}.example span{display:block;font-size:10px;letter-spacing:.12em;font-weight:850;margin-bottom:8px;color:var(--accent)}.note-block{background:var(--soft);padding:20px;border-radius:12px;margin-top:25px;border-left:4px solid var(--accent);font-size:13px;line-height:1.6;color:var(--sub)}.reading-paper,.writing-paper{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:35px;margin-bottom:26px;box-shadow:var(--shadow)}.reading-paper h2{font:42px Georgia,serif;font-weight:500}.reading-text{font:20px/1.9 Georgia,serif;max-width:800px}.reading-text p{margin:25px 0}.word{cursor:pointer;border-radius:3px}.word:hover,.word:focus{background:#e5d393aa;color:#23384f}.subtle{color:var(--sub);font-size:12px;line-height:1.5}.reading-question{padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}.reading-question label{font-weight:700;display:flex;flex-direction:column;gap:10px}.reading-question input{width:100%}.reading-question .mini-btn{margin-top:12px}.reader-feedback{font-size:13px;padding-top:10px;color:var(--accent)}textarea{display:block;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:14px;resize:vertical;width:100%;line-height:1.55}.writing-paper textarea{font:18px/1.8 Georgia,serif;border:0;outline:none;min-height:350px}.editor-toolbar{border-top:1px solid var(--line);padding-top:15px;justify-content:flex-start}.editor-toolbar span{color:var(--sub);margin-right:auto;font-size:12px}.suggestion{border:1px solid var(--line);padding:13px;margin:8px 0;border-radius:9px}.suggestion p{font-size:13px}.checkline{display:block;margin:12px 0;font-size:14px;line-height:1.5}.panel.flat{padding:25px 30px;margin-top:19px}.panel.flat h2{font:500 28px Georgia,serif}.panel.flat p{color:var(--sub);line-height:1.65}.panel.flat audio{display:block;width:min(100%,650px);margin:20px 0}.rubric{overflow-x:auto;font-size:13px}.rubric>div{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));border-bottom:1px solid var(--line);gap:8px;padding:10px}.teacher-answers p{padding-bottom:14px;border-bottom:1px solid var(--line)}.teacher-solution{display:block;color:var(--sub);font-size:13px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0}.metric-grid>div{display:flex;flex-direction:column;align-items:start;padding:22px 25px;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:14px}.metric-grid span{font-size:26px;color:var(--accent)}.metric-grid strong{font:32px Georgia,serif}.metric-grid small{font-size:12px;color:var(--sub)}.progress-line{display:grid;grid-template-columns:200px 1fr 45px;align-items:center;gap:14px;padding:10px 0;font-size:13px}.badge{display:inline-block;background:var(--soft);border-radius:12px;padding:11px 15px;font-size:13px;margin-right:8px}.file-input{cursor:pointer}.file-input input{display:none}.dialogue{font:22px/1.6 Georgia,serif;color:var(--ink)!important}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.project-grid .panel{margin:0}.site-header+main{min-height:70vh}footer{background:var(--nav);color:#d4e2e7;padding:37px max(28px,calc((100% - 1220px)/2));font-size:12px}.footer-line{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.footer-line strong{color:#f2d49c}.footer-line a{text-decoration:underline}footer p{padding-top:15px;margin-top:20px;border-top:1px solid #ffffff26}footer small{opacity:.8}.lletra-fab{position:fixed;bottom:24px;right:23px;z-index:42;display:flex;align-items:center;gap:9px;background:#f5c971;border:2px solid #083b56;color:#092d47;padding:8px 14px 8px 8px;border-radius:42px;box-shadow:0 11px 32px #071d3544;font-weight:900;font-size:12px}.mascot-face{position:relative;display:flex;justify-content:center;gap:6px;align-items:center;width:39px;height:39px;background:#087d80;border-radius:42% 42% 48% 48%;box-shadow:inset 0 0 0 3px #07596c}.eye{width:6px;height:9px;background:#fff;border-radius:50%;animation:blink 6s infinite}.mouth{position:absolute;bottom:7px;width:10px;height:5px;border-bottom:2px solid #fff;border-radius:50%}.tutor{position:fixed;bottom:88px;right:24px;z-index:40;width:min(380px,calc(100vw - 28px));height:490px;background:var(--paper);border:1px solid var(--line);box-shadow:0 17px 60px #0005;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.tutor-head{display:flex;align-items:center;gap:12px;padding:12px 15px;background:var(--nav);color:#fff}.tutor-head div{flex:1}.tutor-head small{display:block;color:#cfdfdf;font-size:10px;margin-top:3px}.tutor-head button{background:transparent;color:#fff;border:0;font-size:23px;padding:5px}.mascot-mini{display:flex;justify-content:center;align-items:center;gap:7px;background:#0a9992;border-radius:35%;width:39px;height:39px;flex-shrink:0}.mascot-mini i{width:5px;height:9px;background:#fff;border-radius:50%;animation:blink 5s infinite}.tutor-history{padding:17px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:12px}.bubble{background:var(--soft);align-self:flex-end;max-width:92%;padding:11px 13px;border-radius:12px;font-size:12px;line-height:1.6;white-space:pre-wrap}.bubble.bot{background:#d7eae8;color:#173a49;align-self:flex-start}.tutor form{padding:10px;display:flex;gap:6px}.tutor form input{flex:1;width:50px}.tutor form button{width:39px;border:0;border-radius:10px;background:#087f78;color:white}.tutor-shortcuts{display:flex;gap:8px;padding:0 10px 12px}.tutor-shortcuts button{flex:1;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:9px;font-size:11px;padding:8px 5px}.tutor-min{height:auto}.tutor-min .tutor-head{border-radius:13px}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,30px);opacity:0;transition:.2s;pointer-events:none;background:#123950;color:white;border:1px solid #fff3;border-radius:9px;padding:12px 18px;z-index:60;max-width:80%;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}.startup{min-height:100vh;display:grid;place-items:center;background:#102c45;color:white;padding:30px;text-align:center}
@keyframes blink{0%,94%,100%{transform:scaleY(1)}96%,98%{transform:scaleY(.07)}}@keyframes float{50%{transform:translateZ(160px) translateY(-14px)}}
@media(max-width:1120px){.nav-links{gap:0}.nav-links button{padding:12px 8px}.world-grid{grid-template-columns:repeat(3,1fr)}.door-grid{grid-template-columns:repeat(8,1fr)}.gloss-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.nav-links{display:none}.menu-toggle{display:inline-block}.mobile-nav.visible{display:flex;flex-direction:column;background:var(--paper);padding:10px 30px;align-items:stretch}.mobile-nav button{text-align:left}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{justify-self:center;padding:50px 30px 10px;width:100%;max-width:670px}.hero-stage{min-height:390px;overflow:hidden}.portal-scene{transform:scale(.82) rotateY(var(--ry,-13deg));margin-top:-20px}.feature-grid{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr}}
@media(max-width:620px){.nav-wrap{padding:9px 14px}.brand-mark{width:41px;height:41px}.brand{font-size:13px}.brand small{font-size:9px}.xp-pill{display:none}.main-container{padding-left:16px;padding-right:16px}.hero-copy{padding:42px 22px 5px}.hero h1{font-size:51px}.hero p{font-size:15px}.hero-stats{gap:18px}.hero-stage{min-height:345px}.portal-scene{transform:scale(.65) rotateY(var(--ry,-13deg));width:570px;flex-shrink:0}.scene-help{bottom:7px}.world-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.world-card{padding:13px;min-height:265px}.world-card strong{font-size:15px}.world-card>span:nth-last-child(2){font-size:11px}.world-visual{margin:12px -13px 12px;min-height:92px}.feature-grid{grid-template-columns:1fr;gap:10px}.section-heading{align-items:flex-start;flex-direction:column}.count-chip{white-space:normal}.home-escape{padding:28px 25px}.home-escape h2{font-size:30px}.door-art{display:none}.page{padding-top:23px}.page-intro h1{font-size:37px}.selectors{padding:15px;gap:13px}.selectors label{min-width:100%;flex:1}.panel>summary{padding:14px 15px}.panel>summary small{display:none}.panel>.panel-body{padding:15px}.feature-lab{padding:20px 16px}.option-grid{grid-template-columns:1fr}.quiz-card-content{padding:22px 16px}.quiz-card h3{font-size:24px}.quiz-bottom{flex-direction:column;align-items:flex-start}.door-grid{grid-template-columns:repeat(5,1fr);gap:7px}.door{height:80px}.gloss-grid{grid-template-columns:1fr}.reading-paper,.writing-paper{padding:20px 16px}.reading-paper h2{font-size:32px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-grid>div{padding:15px}.metric-grid strong{font-size:25px}.progress-line{grid-template-columns:1fr 1fr 35px}.tutor{right:10px;bottom:82px}.lletra-fab{right:10px;bottom:15px}.footer-line{display:flex;flex-direction:column}.tree-branches{gap:8px}.tree-node{min-width:auto;padding:11px 7px;font-size:11px}.transform-flow{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.site-header,.hero,.selectors,.lletra-fab,.tutor,.nav-links,.feature-lab,.quiz-section,.button-row,footer,.mobile-nav,.breadcrumbs,.page-intro,.note-block{display:none!important}.app{background:white;color:black}.main-container{max-width:none;padding:0}.panel{box-shadow:none;border:1px solid #888;break-inside:avoid}.panel>.panel-body{display:block}.teacher-answers{display:block!important}.panel:not([open])>.panel-body{display:block}#teacher-detail .panel{display:block!important}#teacher-detail .panel summary{font-weight:bold}}
/* CATALÀVERSE CAT · Estils de la interfície funcional */
.app{--text:var(--ink);--cyan:#17b4aa;--ink-soft:var(--sub);--surface:var(--paper);--gold:#d2a558;min-height:100vh}
html[data-theme=dark] .app{--bg:#0c1727;--paper:#14263d;--card:#182e45;--ink:#edf7f8;--sub:#bad0db;--line:#36526a;--soft:#1d354d;--nav:#09192a;--header:#0c2035ef;--accent:#75dacc;--accent-deep:#159f92;--cyan:#7ce8d5;--text:#edf7f8;--gold:#e2b56a;color-scheme:dark}
.app .shell{width:min(1220px,calc(100% - 48px));max-width:1220px;margin:0 auto}
.app .main{padding:25px 0 85px;min-height:72vh}
.app .nav{position:sticky;z-index:35;top:0;background:var(--header);border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}
.app .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.app .brand{border:0;background:none;text-decoration:none;color:var(--ink);font-size:15px;font-weight:900;display:flex;align-items:center;gap:11px;white-space:nowrap;letter-spacing:.06em}
.app .brand small{font-size:9px;display:block;letter-spacing:.13em;font-weight:700;color:var(--sub);margin-top:4px}
.app .brand-icon{display:grid;place-items:center;font:700 31px Georgia,serif;width:49px;height:49px;background:#0d3a52;color:#ffda8a;border:2px solid #4e8d9a;border-radius:14px}
.app .navlinks{display:flex;gap:4px;align-items:center}
.app .navlink{background:transparent;border:0;color:var(--ink);padding:12px 11px;border-radius:11px;font-size:12px;font-weight:800;white-space:nowrap}
.app .navlink.active,.app .navlink:hover{background:var(--soft);color:var(--accent)}
.app .top-actions{display:flex;gap:8px}
.app .toolbtn{border:1px solid var(--line);border-radius:13px;color:var(--ink);background:var(--paper);padding:10px 12px;font-weight:700;font-size:12px}
.app .coursebar{display:flex;align-items:end;flex-wrap:wrap;gap:12px 15px;margin:8px 0 27px;background:var(--paper);border:1px solid var(--line);padding:16px 21px;border-radius:16px;box-shadow:var(--shadow)}
.app .field{display:flex;flex-direction:column;gap:7px;min-width:155px;flex:1}
.app .field>label,.app label.tiny,.app .field label{font-size:12px;font-weight:800;color:var(--sub)}
.app input[type=text],.app input[type=search],.app select,.app textarea,.app .qinput{width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-height:44px}
.app .coursebar .pill{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.app .tiny{font-size:12px;color:var(--sub);line-height:1.6}.app .muted{color:var(--sub)}
.app .pill{display:inline-block;padding:9px 13px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:800;border-radius:30px}
.app .hero{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;isolation:isolate;min-height:390px;margin-bottom:40px;padding:40px 47px;overflow:hidden;background:linear-gradient(115deg,#0c3850 0%,#195669 53%,#2f6979 100%);color:white;border-radius:22px;box-shadow:0 23px 60px #00152424}
.app .hero::after{content:'Ç';position:absolute;z-index:-1;right:5%;top:-85px;font:450px/.9 Georgia,serif;transform:rotate(-16deg);color:#ffffff18;text-shadow:14px 30px 0 #edc98e22;pointer-events:none}
.app .hero .eyebrow{color:#f5dca0}.app .hero h1{font:normal clamp(47px,5vw,70px)/1.12 Georgia,serif;letter-spacing:-.04em;margin:15px 0;max-width:670px}
.app .hero p{font-size:16px;line-height:1.7;max-width:600px;color:#d7edf0;margin:0 0 25px}
.app .hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.app .btn{border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);min-height:41px;padding:11px 16px;font-weight:800;font-size:12px;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:10px;text-decoration:none}
.app .btn.primary{background:#087f77;color:#fff;border-color:#087f77}.app .btn.secondary{background:#ffffff19;color:#fff;border-color:#ffffff84}.app .btn.gold{background:#e4b76a;color:#18334b;border-color:#e4b76a}.app .btn.small{font-size:11px;min-height:34px;padding:7px 11px}.app .btn.danger{background:#922e33;color:#fff;border-color:#922e33}
.app .hero .btn.primary{background:#f0ca86;border-color:#f0ca86;color:#183548}
.app .btn:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.06)}
.app .sectiontop{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:14px;margin:29px 0 19px}
.app .sectiontop h2{font:500 clamp(25px,3vw,35px) Georgia,serif;letter-spacing:-.025em;margin:0 0 5px}
.app .sectiontop h1,.app .page-title{font:500 clamp(32px,4vw,47px) Georgia,serif;letter-spacing:-.025em;margin:8px 0}
.app .sectiontop p{margin:5px 0;color:var(--sub);line-height:1.6}
.app .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:22px 0 32px}
.app .stat{padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;gap:10px}
.app .stat strong{font:normal 25px Georgia,serif;color:var(--ink)}.app .stat span{font-size:12px;color:var(--sub)}
.app .worldgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:30px}
.app .worldcard{background:var(--card);border:1px solid var(--line);border-radius:18px;min-height:255px;padding:20px;display:flex;align-items:flex-start;flex-direction:column;text-align:left;box-shadow:var(--shadow);color:var(--ink);overflow:hidden;position:relative;transition:transform .15s,box-shadow .15s}
.app .worldcard:before{content:'';height:112px;position:absolute;top:0;left:0;right:0;background:radial-gradient(circle at 70% 50%,var(--glow),transparent 65%),linear-gradient(110deg,#28556c5a,#3e72835a);opacity:.34;pointer-events:none}
.app .worldcard:hover{transform:translateY(-4px);box-shadow:0 16px 40px #12304229;border-color:var(--cyan)}
.app .worldcard .emoji{z-index:1;font-size:37px;min-height:64px;filter:drop-shadow(0 6px 10px #0002)}
.app .worldcard .tag{font-size:10px;letter-spacing:.13em;font-weight:900;color:var(--accent);margin:13px 0 6px}
.app .worldcard h3{font-size:17px;margin:2px 0 9px;line-height:1.32;color:var(--ink)}
.app .worldcard p{font-size:12px;line-height:1.5;color:var(--sub);margin:0 0 17px}
.app .card-end{display:flex;justify-content:space-between;gap:12px;margin-top:auto;width:100%;font-size:11px;font-weight:800;color:var(--accent);padding-top:9px}
.app .pbar{background:var(--soft);height:7px;width:100%;border-radius:12px;overflow:hidden;margin:8px 0}
.app .pbar span{display:block;height:100%;background:linear-gradient(90deg,#19a895,#e6ba6f)}
.app .panel{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:25px 28px;border-radius:16px;box-shadow:var(--shadow);margin:17px 0 22px;line-height:1.7;overflow:visible}
.app .panel h2{font:500 30px Georgia,serif;letter-spacing:-.015em;margin:3px 0 16px}
.app .panel h3{font:500 23px Georgia,serif;margin:16px 0 10px}
.app .panel p{line-height:1.7}.app .layout-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.app .details,.app .glossitem{border:1px solid var(--line);border-radius:11px;overflow:hidden;margin:11px 0;background:var(--soft)}
.app .details summary,.app .glossitem summary{padding:14px 17px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:800;font-size:14px}
.app .details summary:after,.app .glossitem summary:after{content:'＋';color:var(--accent);font-size:15px}
.app .details[open] summary:after,.app .glossitem[open] summary:after{content:'−'}
.app .detailsbody,.app .glossitem>p,.app .glossitem>.btn{padding:15px 17px;margin:0;font-size:13px;line-height:1.7}
.app .details[open] summary,.app .glossitem[open] summary{border-bottom:1px solid var(--line)}
.app .worldbanner{display:flex;gap:25px;align-items:center;padding:28px 30px;margin:12px 0 24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(120deg,var(--paper),var(--soft))}
.app .worldbanner .giant{font-size:70px}.app .worldbanner h1{font:500 43px Georgia,serif;margin:10px 0}.app .worldbanner p{color:var(--sub)}
.app .tablist{display:flex;gap:9px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}
.app .tab{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;padding:12px 17px;font-weight:800;font-size:12px}
.app .tab.active{background:var(--nav);border-color:var(--nav);color:white}
.app .tokenrow{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-height:70px;padding:12px;margin:12px 0;border-radius:10px;background:var(--soft)}
.app .token{border:1px solid #58a9a0;background:var(--paper);border-radius:10px;padding:13px 16px;color:var(--ink);font-weight:800}.app .token.chosen{background:#c9e4dc;color:#174e4d}
.app .qbox{border:1px solid var(--line);border-radius:13px;background:var(--soft);padding:23px 25px;margin:20px 0}
.app .qbox h3{margin:10px 0}.app .qprompt{font:500 22px/1.5 Georgia,serif;margin:15px 0 20px}
.app .choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.app .choice{background:var(--card);border:1px solid var(--line);padding:14px 16px;border-radius:11px;min-height:50px;color:var(--ink);text-align:left;line-height:1.5;font-size:13px;font-weight:750}
.app .choice:hover,.app .choice.selected{border-color:var(--accent);outline:1px solid var(--accent);background:var(--soft)}
.app .question-actions{display:flex;gap:10px;flex-wrap:wrap;margin:19px 0 3px}
.app .notice{background:var(--soft);border-left:4px solid var(--accent);border-radius:6px;padding:16px 18px;font-size:13px;line-height:1.7;margin:16px 0}
.app .feedback{padding:14px 18px;border-radius:12px;border:1px solid var(--line);margin:15px 0;line-height:1.6;font-size:14px}
.app .feedback.correct,.app .feedback.variant{background:#d4efe2;color:#0b4b3a;border-color:#93d5b9}
.app .feedback.incorrect,.app .feedback.partial{background:var(--soft);color:var(--ink);border-color:var(--line)}
.app .doorlist{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0}
.app .roomcard{padding:27px;border-radius:15px;text-align:left;background:var(--paper);border:1px solid var(--line);color:var(--ink);min-height:240px;display:flex;flex-direction:column;gap:10px}
.app .roomcard:hover{border-color:var(--accent)}.app .roomcard .tag{color:var(--accent);font-weight:800;font-size:11px}.app .roomcard h3{font:500 25px/1.3 Georgia,serif;margin:0}.app .roomcard p{color:var(--sub);font-size:13px;line-height:1.6;flex:1}
.app .doors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin:24px 0}
.app .door{border:5px solid #a78c64;border-bottom-color:#67513a;border-radius:50px 50px 7px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:120px;background:linear-gradient(150deg,#133a5a,#224c68);color:white;padding:9px 7px;font-size:12px;box-shadow:inset -8px 0 12px #0c2435a0}
.app .door .symbol{font-size:25px}.app .door .number{font-size:10px;color:#e8d6ba}.app .door.done{background:linear-gradient(140deg,#14806d,#2f9c88)}.app .door.open{border-color:#dfb971}.app .door:disabled{opacity:.48;filter:grayscale(.6)}
.app .glossgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.app .glossitem{margin:0;background:var(--card)}.app .glossitem>.btn{margin:0 14px 14px}
.app .stack{display:flex;flex-direction:column;gap:13px}.app .stack>*{margin:0}
.app .reader{padding:23px;background:var(--soft);border-radius:13px;font-family:Georgia,serif;font-size:19px;line-height:1.9;max-width:900px}
.app .bookstage{height:300px;display:grid;place-items:center;perspective:800px;background:radial-gradient(ellipse at 50% 75%,#6d91874c,transparent 65%),linear-gradient(130deg,#173b55,#164b65);border-radius:15px;margin:20px 0;overflow:hidden;touch-action:pan-y}
.app .bookmodel{position:relative;transform:rotateY(-22deg) rotateX(10deg);width:180px;height:220px;transform-style:preserve-3d;cursor:grab;filter:drop-shadow(15px 18px 10px #07132188)}
.app .bookface{position:absolute;inset:0;background:linear-gradient(125deg,#e9b974,#b66f4e);border:5px solid #eccc8c;box-shadow:inset 10px 0 25px #71382055;border-radius:5px;display:grid;place-items:center;font:56px Georgia,serif;color:#fff}
.app .bookspine{position:absolute;left:-27px;top:0;height:100%;width:30px;background:#8c4d3a;transform-origin:right;transform:rotateY(-90deg)}
.app .bookedge{position:absolute;top:0;left:0;width:100%;height:27px;background:#f2e5d4;transform-origin:top;transform:rotateX(90deg)}
.app .scenebox{background:var(--soft);border:1px solid var(--line);padding:25px;border-radius:14px;margin:18px 0}
.app .wordnet{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:25px;padding:32px;background:var(--soft);border-radius:15px}
.app .node{padding:22px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-weight:800}.app .node.core{background:var(--nav);color:#fff;font-size:22px}
.app .ticker{display:flex;overflow-x:auto;gap:15px;padding:12px 0;scroll-snap-type:x mandatory}
.app .literary{background:var(--soft);border:1px solid var(--line);padding:17px;border-radius:12px;min-width:200px;max-width:250px;scroll-snap-align:start}
.app .literary h3{font-size:20px}.app .literary p{font-size:13px;color:var(--sub)}
.app .footer{background:var(--nav);padding:28px max(24px,calc((100% - 1220px)/2));color:#dbe8ea;font-size:12px}
.app .footer .tiny{color:#bcbdc9;margin-top:12px}
.app .lletra-bubble{position:fixed;bottom:22px;right:24px;z-index:44;display:grid;place-items:center;width:61px;height:61px;border-radius:50%;border:3px solid #e8b767;background:#128f8b;font-size:30px;box-shadow:0 7px 25px #001c35a0}
.app .lletra{position:fixed;bottom:18px;right:19px;z-index:50;width:min(375px,calc(100vw - 25px));background:var(--paper);border:1px solid var(--line);border-radius:17px;box-shadow:0 20px 70px #0008;overflow:hidden}
.app .lletra-top{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--nav);color:#fff;padding:12px 15px}
.app .lletra-head{display:flex;align-items:center;gap:10px;font-weight:850;font-size:14px}.app .lletra-actions{display:flex;gap:8px}.app .lletra-actions button{background:transparent;border:1px solid #ffffff44;color:white;border-radius:7px;font-size:21px;width:32px;height:32px}
.app .face{display:block;background:#12a6a4;border:3px solid #ffd387;width:34px;height:34px;border-radius:40%;position:relative}
.app .face:before,.app .face:after{content:'';position:absolute;top:12px;width:6px;height:8px;background:#fff;border-radius:50%;animation:blink 5.6s infinite}.app .face:before{left:6px}.app .face:after{right:6px}
.app .lletra-body{height:460px;display:flex;flex-direction:column}.app .messages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:14px}
.app .bubble{background:var(--soft);border-radius:11px;padding:11px 14px;font-size:12px;line-height:1.55;max-width:91%;align-self:flex-start;white-space:pre-wrap}
.app .bubble.user{background:#cae9de;color:#174434;align-self:flex-end}
.app .lletra-input{display:flex;gap:8px;padding:9px}.app .lletra-input input{flex:1;min-width:0}.app .lletra-input .btn{flex-shrink:0}
@media(max-width:1040px){.app .navlinks{display:none}.app .worldgrid{grid-template-columns:repeat(3,1fr)}.app .glossgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:730px){.app .shell{width:min(100% - 26px,1220px)}.app .main{padding-top:17px}.app .nav-inner{min-height:65px}.app .hero{padding:37px 27px;min-height:345px}.app .hero h1{font-size:49px}.app .hero:after{font-size:340px;right:-30px}.app .stats{grid-template-columns:repeat(2,1fr)}.app .worldgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.app .worldcard{min-height:245px;padding:14px}.app .worldcard .emoji{font-size:32px}.app .doorlist{grid-template-columns:1fr 1fr}.app .doors{grid-template-columns:repeat(3,1fr)}.app .panel{padding:20px 18px}.app .glossgrid{grid-template-columns:1fr}.app .worldbanner{padding:19px}.app .worldbanner h1{font-size:31px}}
@media(max-width:450px){.app .brand{font-size:12px}.app .brand-icon{width:40px;height:40px;font-size:24px}.app .toolbtn{font-size:11px;padding:8px}.app .hero h1{font-size:42px}.app .worldgrid{grid-template-columns:1fr 1fr}.app .worldcard h3{font-size:15px}.app .worldcard{min-height:250px}.app .coursebar .field{min-width:100%}.app .choices{grid-template-columns:1fr}.app .qbox{padding:19px 14px}.app .stats{gap:9px}.app .stat{padding:15px}.app .doors{grid-template-columns:repeat(3,1fr);gap:7px}.app .door{min-height:103px}.app .door strong{font-size:11px}.app .roomcard{padding:17px}.app .doorlist{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.app *,.app *:before,.app *:after{animation:none!important;transition:none!important}}
@media print{.app .nav,.app .coursebar,.app .btn,.app .lletra,.app .lletra-bubble,.app .tablist,.app .footer{display:none!important}.app .main{padding:0}.app .panel,.app .details{break-inside:avoid;box-shadow:none}.app .detailsbody{display:block!important}.app{background:#fff!important;color:#000!important}}
