@font-face{font-family:Pixel;src:url('assets/fuentes/pixelify.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:DM;src:url('assets/fuentes/dm-sans.woff2') format('woff2');font-weight:400 700;font-display:swap}
:root{color-scheme:dark;--ink:#f3eddf;--muted:#bec6cc;--faint:#8997a4;--gold:#e5bd76;--line:#8a7555;--edge:#080e17;--surface:rgba(21,31,41,.45);--solid:#19252f;--field:#121c25;--green:#54b89c;--red:#d76863;--coffee:#e8b660;--shadow:#070e16;--body:DM,system-ui,sans-serif;--pixel:Pixel,monospace}
*{box-sizing:border-box}html{min-height:100%;scrollbar-color:#8d7958 #121923;scrollbar-width:thin}body{margin:0;font:400 16px/1.6 var(--body);color:var(--ink);background:#111b28;min-height:100svh}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f3d394;outline-offset:5px}svg.icon{width:28px;height:28px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:miter;stroke-linecap:square}.world{position:fixed;inset:0;z-index:-2;background:url('assets/arte/sala-medieval.png') center/cover no-repeat;image-rendering:pixelated}.world:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,14,22,.6),rgba(7,14,22,.14) 48%,rgba(7,14,22,.6)),linear-gradient(0deg,rgba(9,15,25,.8),transparent 65%)}.app-shell{max-width:1440px;margin:auto;min-height:100svh;display:flex;flex-direction:column;padding:0 52px}.page-header{height:114px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.brand-small{font-family:var(--pixel);font-size:19px;letter-spacing:1px;color:var(--gold)}.semester{font-size:13px;letter-spacing:2px;font-weight:600}.page-header h1{font-family:var(--pixel);font-size:clamp(26px,3.3vw,42px);font-weight:500;line-height:1.1;letter-spacing:-.5px;text-align:center;text-shadow:3px 3px #080f18}#main{flex:1;outline:none;min-width:0;display:flex;flex-direction:column}.page-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px 0 24px;font-size:11px;letter-spacing:1.8px;color:var(--muted)}.footer-divider{padding:0 10px;color:var(--line)}.text-button{padding:6px 0;background:transparent;border:0;color:var(--muted);font:500 13px var(--body);display:flex;gap:8px;align-items:center;letter-spacing:.2px}.text-button:hover{color:var(--gold)}.text-button .icon{width:17px;height:17px}.home{flex:1;min-height:575px;display:grid;grid-template-columns:1fr 1.1fr 1fr;grid-template-rows:1fr auto;align-items:center;position:relative;padding-bottom:26px}.home-title{font:500 clamp(39px,4.6vw,67px)/.95 var(--pixel);letter-spacing:-1.7px;text-shadow:4px 5px #080e15;position:relative;z-index:1}.home-title span{color:var(--gold)}.home-hero{height:470px;width:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 14px 5px #070c1580);align-self:end;transform:translateY(10px)}.home-course{justify-self:end;align-self:center;text-align:right}.home-course small{font-size:13px;letter-spacing:3px;color:var(--muted);font-weight:600}.home-course strong{font:500 112px/.95 var(--pixel);display:block;text-shadow:4px 5px #080e15;color:var(--gold)}.home-course p{font-size:14px;letter-spacing:1px;margin-top:15px;color:var(--muted)}.home-actions{grid-column:1/-1;justify-self:center;display:flex;align-items:start;gap:25px;padding-top:30px}.action-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}.action-caption{font:400 15px var(--pixel);color:#ded6c2}.pixel-button{--button:#66707a;--button-dark:#343d48;--button-light:#b1b6b6;display:inline-flex;gap:14px;justify-content:center;align-items:center;min-height:56px;padding:12px 23px;border:3px solid var(--edge);color:#f9f3e8;background:var(--button);box-shadow:inset 0 3px 0 var(--button-light),inset 0 -6px 0 var(--button-dark),3px 3px 0 #070d16;font-family:var(--pixel);font-size:20px;font-weight:500;text-shadow:1px 2px #0007;transition:filter .15s,transform .15s;position:relative;border-radius:1px}.pixel-button:hover{filter:brightness(1.17);transform:translateY(-2px)}.pixel-button:active{transform:translateY(2px);box-shadow:inset 0 3px 0 var(--button-dark)}.pixel-button.green{--button:#28785d;--button-dark:#164936;--button-light:#67b694}.pixel-button.ochre{--button:#ae7d36;--button-dark:#634119;--button-light:#e4b766}.pixel-button.copper{--button:#985c39;--button-dark:#563420;--button-light:#cb9471}.pixel-button.red{--button:#ad4e45;--button-dark:#65332e;--button-light:#db8777}.pixel-button.square{width:68px;height:68px;padding:12px}.pixel-button.play{width:240px;height:78px;font-size:30px}.pixel-button.play .icon{width:34px;height:34px}.pixel-button.play svg{fill:currentColor;stroke:none}.pixel-button.nav-button{min-height:48px;width:51px;padding:10px}.pixel-button.small{min-height:44px;padding:8px 13px;font-size:16px}.pixel-button.small .icon{width:22px;height:22px}.section-kicker{font:400 15px var(--pixel);letter-spacing:2px;color:var(--gold);text-transform:uppercase}.panel{background:var(--surface);border:1px solid #87909355;box-shadow:0 6px 0 #050b1140;backdrop-filter:blur(6px)}.profile{display:grid;grid-template-columns:1fr 2fr;gap:65px;align-items:center;max-width:1160px;width:100%;margin:auto;padding:8px 0 30px}.banner{height:545px;background:linear-gradient(90deg,#612d36,#a04d4b 48%,#71313b);clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%);position:relative;border-top:8px solid #bf9460;display:flex;flex-direction:column;align-items:center;padding:28px 20px 76px}.banner:before{content:'';position:absolute;inset:13px 14px 26px;border:1px solid #dbae6a8a;clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%);pointer-events:none}.banner h2{font:500 43px var(--pixel);text-shadow:3px 3px #5b2930}.banner .section-kicker{font-size:13px;letter-spacing:2px;margin-bottom:8px}.banner img{height:380px;width:100%;object-fit:contain;image-rendering:pixelated;margin-top:auto}.profile-content{min-width:0}.vitals{display:grid;gap:25px;margin-bottom:32px}.vital-label{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:8px;font:400 19px var(--pixel)}.vital-label>span:first-child{display:flex;align-items:center;gap:10px}.vital-label small{font:400 13px var(--body);color:var(--muted)}.meter{height:20px;padding:3px;border:2px solid #0a121c;background:#121923;box-shadow:0 0 0 1px #6a78835c;overflow:hidden}.meter-fill{height:100%;width:var(--value);background:var(--color,var(--gold));box-shadow:inset 0 3px 0 #fff3;transition:width .5s}.debt{font-size:13px;color:#f0ad96;display:block;margin-top:5px}.bio{padding:23px 27px;font-size:15px;line-height:1.7;color:var(--ink)}.bio p+p{margin-top:11px}.bio strong{font-weight:600;color:var(--gold)}.profile-actions{display:flex;justify-content:space-between;gap:18px;margin-top:25px}.profile-actions .action-wrap{gap:10px}.profile-actions .pixel-button.square{width:72px;height:58px}.profile-actions .diary-button{width:170px}.skip-link{position:fixed;top:-100px;left:15px;background:var(--solid);z-index:100;padding:12px}.skip-link:focus{top:15px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,25px);background:#1a2e2d;color:#eef5e7;border:1px solid #82aa85;padding:15px 24px;max-width:min(92vw,540px);opacity:0;pointer-events:none;z-index:80;transition:opacity .15s,transform .15s}#toast.visible{opacity:1;transform:translate(-50%,0)}#toast.error{background:#412b2d;border-color:#db8178}#transition{display:none;position:fixed;inset:0;z-index:100;grid-template-columns:repeat(24,1fr);grid-template-rows:repeat(16,1fr);pointer-events:all}#transition.active{display:grid}#transition span{background:#050608;opacity:0}dialog{width:min(620px,calc(100% - 28px));padding:0;border:2px solid var(--line);background:var(--solid);color:var(--ink);box-shadow:8px 8px 0 #050b16;max-height:90svh}dialog::backdrop{background:#030811bd;backdrop-filter:blur(4px)}.noscript{padding:30px;background:#582b2b;position:fixed;inset:20px;z-index:20}
@media(min-width:1600px){.home{min-height:650px}.home-hero{height:520px}}
@media(max-width:1000px){.app-shell{padding:0 30px}.home{grid-template-columns:1fr 1.3fr .7fr;min-height:570px}.home-title{font-size:47px}.home-course strong{font-size:86px}.home-course small{font-size:11px;letter-spacing:1px}.home-hero{height:410px}.profile{gap:30px}.banner{height:505px}.bio{padding:18px}.profile-actions{gap:8px}.profile-actions .diary-button{width:130px}.page-footer{font-size:10px}}
@media(max-width:680px){.app-shell{padding:0 20px}.page-header{height:85px;gap:12px}.brand-small{font-size:16px}.semester{font-size:11px;letter-spacing:1px}.home{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;min-height:560px;padding-bottom:15px;text-align:center}.home-title{font-size:43px;line-height:.93;margin-top:15px;letter-spacing:-.8px}.home-title br{display:none}.home-title span{display:block}.home-hero{height:320px;max-width:300px;justify-self:center;grid-row:2;transform:none;margin-top:12px}.home-course{position:absolute;right:0;top:35%;text-align:center;opacity:.8}.home-course small,.home-course p{display:none}.home-course strong{font-size:38px}.home-actions{gap:14px;padding-top:20px}.pixel-button.square{width:57px;height:58px;padding:9px}.pixel-button.play{width:166px;height:66px;font-size:25px}.action-caption{font-size:13px}.page-footer{align-items:center;flex-direction:column;gap:10px;padding:22px 0;font-size:9px}.profile{grid-template-columns:1fr;gap:28px;max-width:560px;padding-top:5px}.banner{height:295px;width:230px;justify-self:center;padding:18px 20px 46px}.banner img{height:190px}.banner h2{font-size:32px}.banner .section-kicker{font-size:11px;margin-bottom:0}.vitals{gap:18px;margin-bottom:24px}.profile-actions{justify-content:center;gap:20px}.profile-actions .diary-button{width:124px}.bio{font-size:15px}.page-header h1{font-size:27px}.pixel-button.nav-button{width:45px;min-height:44px;padding:8px}}
@media(max-width:360px){.app-shell{padding:0 14px}.home-actions{gap:9px}.pixel-button.play{width:148px}.home-course{display:none}.home-title{font-size:38px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.header-spacer{width:51px;flex-shrink:0}.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}.load-state{margin:auto;padding:40px;text-align:center;display:grid;gap:20px}.statistics{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(300px,1fr);gap:44px;padding:8px 0 20px;flex:1;align-items:start}.missions-column{min-width:0}.missions-toolbar{display:flex;align-items:center;gap:20px;margin-bottom:25px}.select-wrap{display:block;min-width:210px}.select-wrap select{font:400 23px var(--pixel);height:57px;padding:10px 38px 10px 18px;background-color:var(--field);color:var(--ink);border:1px solid var(--line);box-shadow:3px 3px 0 #090f17}.add-mission{width:57px;padding:10px;min-height:57px}.read-only-label{display:flex;gap:7px;align-items:center;font-size:13px;color:var(--muted)}.read-only-label .icon{width:15px;height:15px}.mission-list{height:calc(100svh - 304px);min-height:380px;max-height:740px;overflow-y:auto;scrollbar-gutter:stable;padding:0 16px 20px 0;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.mission{padding:26px 0;border-bottom:1px solid #83909e36}.mission:first-child{padding-top:14px}.mission-top{display:flex;justify-content:space-between;gap:16px}.mission-copy{min-width:0;flex:1}.mission-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:10px;letter-spacing:1.4px;font-weight:600;color:var(--muted);margin-bottom:10px}.axis-dot{width:5px;height:5px;background:var(--axis)}.completion-label{color:var(--green);font-size:9px}.mission h2{font:500 27px/1.1 var(--pixel);color:var(--ink);overflow-wrap:anywhere}.mission-copy p{font-size:14px;line-height:1.7;color:var(--muted);margin-top:9px;white-space:pre-line;overflow-wrap:anywhere}.mission-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end;max-width:162px}.mission-actions .pixel-button{padding:8px;width:44px;min-height:44px}.mission-progress-label{margin:18px 0 8px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.mission .meter{height:15px;border-width:1px;padding:2px}.stats-sidebar{padding:25px 25px 19px}.stats-sidebar .section-kicker{font-size:12px;letter-spacing:1.8px}.stats-sidebar h2{font:500 28px var(--pixel);margin-top:3px}.radar-wrap{max-width:290px;margin:0 auto}.radar{width:100%;display:block}.radar-grid{color:#97a5b04f;stroke-width:1}.radar-labels{font-family:var(--pixel);font-size:13px;fill:var(--gold)}.radar-scale{font-size:10px;fill:var(--muted)}.axis-bars{display:grid;gap:18px}.axis-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:13px;line-height:1.4;margin-bottom:8px}.axis-heading strong{font:500 23px var(--pixel);color:var(--gold)}.axis-row .meter{height:12px;padding:2px;border-width:1px}.axis-row small{color:var(--muted);font-size:11px;display:block;margin-top:5px}.radar-note{font-size:11px;color:var(--muted);text-align:center;padding-top:22px}.empty-state{padding:80px 25px;text-align:center;max-width:480px;margin:auto}.empty-state>.icon{width:50px;height:50px;color:var(--gold);margin-bottom:20px}.empty-state h2{font:400 27px/1.1 var(--pixel)}.empty-state p{font-size:14px;color:var(--muted);margin:14px auto 24px;max-width:290px}.guild-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px;max-width:900px;width:100%;margin:auto;padding:0 0 35px}.guild-banner{height:550px;border:none;border-top:9px solid #bf9562;padding:18px 30px 83px;clip-path:polygon(0 0,100% 0,100% 84%,50% 100%,0 84%);color:#f3eadd;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;transition:filter .2s,transform .2s;background:linear-gradient(90deg,#302541,#594560,#32253f)}.guild-banner:before{content:'';position:absolute;inset:15px 14px 22px;border-left:1px solid #bf95627d;border-right:1px solid #bf95627d;pointer-events:none}.guild-banner:hover{filter:brightness(1.14);transform:translateY(-5px)}.guild-banner:focus-visible{outline:0;box-shadow:inset 0 0 0 6px #f1cd84}.tower-banner{background:linear-gradient(90deg,#34454b,#5c7070,#34454b)}.banner-number{position:absolute;top:22px;font:500 21px var(--pixel);color:#dbc49b}.guild-banner img{width:100%;height:345px;object-fit:contain;image-rendering:pixelated}.guild-title{font:500 35px/1 var(--pixel);margin-top:8px}.guild-caption{font-size:13px;color:#ddd5c8;text-align:center}.document-screen{max-width:1050px;width:100%;margin:0 auto;display:flex;flex-direction:column;min-width:0;padding-bottom:15px}.document-characters{height:175px;display:flex;justify-content:center;align-items:flex-end;position:relative;z-index:1;pointer-events:none}.document-characters img{height:245px;max-width:340px;object-fit:contain;object-position:bottom;image-rendering:pixelated;margin-bottom:-19px}.guild-screen .document-characters img{height:230px}.document-panel{padding:35px 44px;max-height:calc(100svh - 358px);min-height:350px;overflow-y:auto;scrollbar-color:var(--line) transparent;scrollbar-width:thin}.document-title{border-bottom:1px solid #aa947250;padding-bottom:24px;margin-bottom:30px}.document-title h2{font:500 39px/1.1 var(--pixel);margin-top:6px}.document-panel section+section{border-top:1px solid #aa947250;padding-top:27px;margin-top:30px}.document-panel h3{font:500 28px var(--pixel);color:var(--gold);margin-bottom:15px}.document-panel h4{font:600 16px/1.6 var(--body);margin:24px 0 10px}.document-panel p,.objectives{font-size:16px;line-height:1.85}.document-panel p+p{margin-top:18px}.objectives{padding-left:22px}.objectives li{padding-left:10px;margin-bottom:18px}.objectives li::marker{color:var(--gold);font-family:var(--pixel);font-size:22px}.source-note{font-size:12px!important;line-height:1.6!important;color:var(--muted);margin-top:35px;padding-top:20px;border-top:1px solid #aa947250}.pdf-panel{padding:22px;overflow:hidden;display:flex;flex-direction:column;min-height:400px}.pdf-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:0 8px 18px}.pdf-toolbar .section-kicker{font-size:12px}.pdf-toolbar h2{font:500 25px/1.2 var(--pixel);margin-top:3px}.pdf-toolbar a{text-decoration:none}.pdf-viewer{overflow-y:auto;scrollbar-width:thin;min-height:120px;max-width:100%;background:#17212b;border:1px solid #7783894a;padding:16px;scrollbar-color:var(--line) #18212c}.pdf-page{margin:0 auto 22px;max-width:780px}.pdf-page canvas{display:block;background:white;height:auto;max-width:100%}.pdf-page figcaption{text-align:center;font:400 13px var(--pixel);padding:8px 0;color:#ddd6c9}.pdf-loading{padding:35px;text-align:center;color:#d9dde3}.journal{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr);gap:34px;flex:1;padding:15px 0 25px;align-items:stretch;max-height:850px;min-height:565px}.parchment{background:linear-gradient(90deg,#c5a56e77,transparent 7%,transparent 93%,#a57e5477),linear-gradient(0deg,#d7b780,#eed8aa 18%,#eed8aa 84%,#ddbf8c);color:#493625;border:1px solid #b49565;box-shadow:5px 5px 0 #080f174d,inset 0 0 50px #a7835a33;display:flex;flex-direction:column;padding:32px 36px 23px;position:relative;border-radius:2px;min-width:0}.parchment:before,.parchment:after{content:'';position:absolute;left:-7px;right:-7px;height:13px;background:linear-gradient(#debd86,#e9cf9e 45%,#c3a16e);box-shadow:0 2px 3px #61472c44;border:1px solid #b79764}.parchment:before{top:-7px}.parchment:after{bottom:-7px}.parchment .section-kicker{color:#806139;font-size:12px}.journal-paper-heading{border-bottom:1px solid #81684344;padding-bottom:17px;margin-bottom:18px}.journal-paper-heading h2{font:500 36px/1.1 var(--pixel);margin:8px 0 9px;overflow-wrap:anywhere}.journal-paper-heading p{font-size:13px;color:#725837}.parchment textarea{display:block;resize:vertical;width:100%;flex:1;min-height:290px;background:transparent;border:0;color:#493625;padding:0;font:400 17px/1.9 var(--body)}.parchment textarea::placeholder{color:#796342}.parchment textarea:focus-visible{outline:2px solid #806139;outline-offset:5px}.paper-bottom{display:flex;gap:20px;justify-content:space-between;align-items:center;padding-top:17px}.paper-bottom>span{font-size:12px;color:#78603d}.wax-seal{background:#8f343b;box-shadow:inset 0 0 0 5px #aa4a4c,inset 0 0 0 7px #713036,3px 4px 0 #76553744;border:2px solid #6c2a30;width:68px;height:68px;color:#eac0a7;flex-shrink:0;display:grid;place-items:center;clip-path:polygon(25% 0,75% 0,75% 7%,92% 7%,92% 25%,100% 25%,100% 75%,92% 75%,92% 92%,75% 92%,75% 100%,25% 100%,25% 92%,7% 92%,7% 75%,0 75%,0 25%,7% 25%,7% 7%,25% 7%);transition:filter .15s,transform .15s}.wax-seal:hover{filter:brightness(1.16);transform:rotate(-5deg)}.wax-seal .icon{width:32px;height:32px}.wax-seal:disabled{opacity:.4}.wax-seal:focus-visible{outline:0;background:#b05256;box-shadow:inset 0 0 0 6px #e2b990}.journal-history{display:flex;flex-direction:column;min-height:0}.history-heading{padding:26px 25px 22px;border-bottom:1px solid #aa947245}.history-heading .section-kicker{font-size:11px}.history-heading h2{font:500 28px/1.1 var(--pixel);margin-top:6px}.entry-list{overflow-y:auto;flex:1;scrollbar-width:thin;max-height:530px}.entry-link{color:var(--ink);display:block;text-align:left;width:100%;background:none;border:0;border-bottom:1px solid #aa947235;padding:22px 47px 22px 25px;position:relative}.entry-link:hover,.entry-link.selected{background:#bfa05a15}.entry-link.selected{border-left:3px solid var(--gold);padding-left:22px}.entry-link time{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.entry-link strong{font:500 22px/1.1 var(--pixel);overflow-wrap:anywhere;display:block}.entry-link>.icon{position:absolute;right:16px;top:35px;width:18px;height:18px;color:var(--gold)}.history-empty{padding:45px 25px;color:var(--muted);font-size:14px}.history-empty span{display:block;font-size:12px;margin-top:6px}.entry-count{padding:18px 25px;color:var(--muted);font-size:12px;border-top:1px solid #aa947235}.settings{width:min(730px,100%);margin:auto;padding:40px 46px}.settings>h2{font:500 43px var(--pixel);margin-bottom:30px}.setting-row{padding:27px 0;border-top:1px solid #aa947250;display:flex;align-items:center;justify-content:space-between;gap:30px}.setting-row>label:first-child{display:flex;align-items:center;gap:18px;font:500 26px var(--pixel)}.setting-row label .icon{color:var(--gold)}.setting-row small{display:block;font:400 13px var(--body);color:var(--muted);margin-top:4px}.range-control{display:flex;align-items:center;gap:17px}.range-control input{width:145px;accent-color:var(--gold)}.range-control output{font-size:13px;min-width:38px}.switch{position:relative;width:60px;height:32px;flex-shrink:0;display:block}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;z-index:1;cursor:pointer}.switch span{position:absolute;inset:0;background:#626a73;border:2px solid #131a21;box-shadow:0 0 0 1px #939480}.switch span:after{content:'';position:absolute;left:3px;top:3px;width:20px;height:22px;background:#e4dece;box-shadow:inset 0 -3px #aaa697;transition:transform .15s}.switch input:checked+span{background:#376d58}.switch input:checked+span:after{transform:translateX(29px)}.switch input:focus-visible+span{outline:3px solid var(--gold);outline-offset:5px}.settings-access{border-top:1px solid #aa947250;margin-top:10px;padding-top:30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.settings-access>span{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.settings-access .icon{width:16px;height:16px}.modal-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 28px 17px}.modal-heading h2{font:500 31px/1.1 var(--pixel)}.close-modal{background:none;border:0;color:var(--muted);width:40px;height:40px;padding:7px;display:grid;place-items:center}.close-modal:hover{color:var(--gold)}.close-modal .icon{width:22px;height:22px}.modal-intro{font-size:14px;color:var(--muted);padding:0 28px 18px;overflow-wrap:anywhere}dialog form{padding:0 28px 28px;display:grid;gap:18px}dialog form label{display:grid;gap:7px;font-size:14px;color:var(--muted)}input:not([type="range"]):not([type="checkbox"]),textarea:not(#journal-body),select{width:100%;min-width:0;background:var(--field);color:var(--ink);border:1px solid #77818d77;padding:11px 13px;border-radius:0;font-size:16px}select{padding-right:30px}dialog input:focus,dialog textarea:focus,dialog select:focus{border-color:var(--gold)}dialog form>.pixel-button{justify-self:end;margin-top:4px;min-width:135px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-error{color:#ef9b90;font-size:14px;line-height:1.5;white-space:pre-line}.form-error:empty{display:none}.field-help{color:var(--muted);font-size:13px;line-height:1.7}.upload-field{border:1px dashed var(--line);padding:28px 22px;justify-items:center;text-align:center;background:#c49b4610}.upload-field>.icon{color:var(--gold);margin-bottom:9px}.upload-field input[type="file"]{font-size:13px;margin-top:12px}dialog.wide{width:min(850px,calc(100% - 28px))}.evidence-gallery{padding:0 28px 28px}.evidence-card+.evidence-card{border-top:1px solid var(--line);padding-top:25px;margin-top:25px}.evidence-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px}.evidence-title h3{font-size:15px;overflow-wrap:anywhere;line-height:1.4}.evidence-title small{font-size:12px;color:var(--muted)}.evidence-title a{flex-shrink:0}.evidence-card img{max-height:650px;object-fit:contain;margin:auto;background:#101922}.evidence-pdf{max-height:540px}.empty-evidence{font-size:15px;color:var(--muted);padding:30px 0}

@media(max-width:1100px){.statistics{gap:25px;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr)}.stats-sidebar{padding:20px}.mission-top{flex-direction:column;gap:14px}.mission-actions{max-width:none;justify-content:flex-start}.mission h2{font-size:25px}.journal{gap:25px;grid-template-columns:minmax(0,1.7fr) minmax(245px,1fr)}.parchment{padding:27px 27px 23px}.guild-selection{gap:55px;max-width:800px}.guild-banner{height:510px;padding-left:23px;padding-right:23px}.guild-banner img{height:315px}.guild-title{font-size:31px}.document-panel{padding:30px}.pdf-panel{padding:20px}}
@media(max-width:800px){.statistics{grid-template-columns:minmax(0,1fr) minmax(255px,.9fr);gap:20px}.stats-sidebar{padding:18px 16px}.select-wrap{min-width:150px}.select-wrap select{font-size:20px}.missions-toolbar{gap:12px}.read-only-label{font-size:11px}.mission-list{padding-right:10px}.journal{grid-template-columns:1fr;max-height:none;gap:34px}.parchment{min-height:550px}.journal-history{min-height:230px}.entry-list{max-height:400px}.guild-selection{gap:30px}.guild-banner{height:460px;padding-bottom:76px}.guild-banner img{height:285px}.guild-title{font-size:28px}.guild-caption{font-size:12px}.document-characters{height:155px}.document-characters img{height:215px}.settings{padding:30px}}
@media(max-width:680px){.statistics{grid-template-columns:1fr;gap:28px;padding-top:10px}.missions-toolbar{justify-content:space-between;margin-bottom:12px}.select-wrap{min-width:190px}.mission-list{height:auto;min-height:230px;max-height:510px;padding-right:8px}.mission-top{flex-direction:row;gap:10px}.mission-actions{max-width:97px;flex-wrap:wrap}.mission-actions .pixel-button{width:41px;padding:7px}.stats-sidebar{padding:25px}.radar-wrap{max-width:300px}.axis-bars{grid-template-columns:1fr 1fr;gap:22px}.stats-sidebar .section-kicker{text-align:center}.stats-sidebar h2{text-align:center}.axis-heading{min-height:45px}.empty-state{padding:45px 18px}.guild-selection{gap:20px;padding:15px 0 28px;max-width:420px}.guild-banner{height:350px;padding:15px 10px 65px}.guild-banner img{height:205px;margin-top:28px}.guild-title{font-size:23px;text-align:center;line-height:1.1}.guild-caption{font-size:10px;line-height:1.3}.banner-number{top:13px;font-size:18px}.guild-banner:before{inset:9px 8px 15px}.document-characters{height:140px}.document-characters img{height:190px}.guild-screen .document-characters img{height:190px}.document-panel{padding:25px 21px;max-height:calc(100svh - 310px);min-height:350px}.document-title h2{font-size:30px}.document-panel h3{font-size:25px}.document-panel p,.objectives{font-size:16px;line-height:1.75}.pdf-panel{padding:15px 10px;min-height:430px}.pdf-toolbar{gap:8px;padding:0 5px 16px}.pdf-toolbar h2{font-size:20px}.pdf-toolbar .section-kicker{font-size:10px}.pdf-toolbar .pixel-button{padding:8px}.pdf-toolbar a span{display:none}.pdf-viewer{padding:6px}.pdf-loading{padding:20px;font-size:14px}.journal{padding-top:12px}.parchment{padding:25px 24px 20px;min-height:520px}.journal-paper-heading h2{font-size:31px}.parchment textarea{min-height:290px;font-size:16px}.paper-bottom{gap:12px}.paper-bottom>span{font-size:11px}.wax-seal{width:62px;height:62px}.history-heading h2{font-size:26px}.settings{padding:27px 22px;margin:25px auto}.settings>h2{font-size:36px}.setting-row{gap:15px;flex-wrap:wrap}.setting-row>label:first-child{font-size:24px}.range-control{width:100%;padding-left:46px;justify-content:space-between}.range-control input{flex:1;width:auto}.settings-access{flex-direction:column;align-items:flex-start;gap:18px}.modal-heading{padding:21px 21px 15px}.modal-heading h2{font-size:27px}.modal-intro{padding:0 21px 17px}dialog form{padding:0 21px 23px;gap:16px}.form-row{gap:12px}.evidence-gallery{padding:0 17px 24px}.evidence-title h3{font-size:14px}.header-spacer{width:45px}.read-only-label .icon{display:none}}
@media(max-width:380px){.guild-selection{grid-template-columns:1fr;max-width:260px;gap:22px}.guild-banner{height:355px}.guild-banner img{height:215px}.guild-caption{font-size:12px}.guild-title{font-size:27px}.axis-bars{grid-template-columns:1fr}.mission-top{flex-direction:column}.mission-actions{max-width:none}.form-row{grid-template-columns:1fr}.profile-actions{gap:12px}}
@media print{.world,.page-header,.page-footer,.profile-actions,.missions-toolbar,.mission-actions,#toast,#transition,.document-characters{display:none!important}body{background:white;color:#111}.app-shell{padding:0;max-width:none}.panel{background:white;border-color:#aaa;box-shadow:none;color:#111}.document-panel,.mission-list{height:auto;max-height:none;overflow:visible}.statistics{grid-template-columns:2fr 1fr}.parchment{box-shadow:none}.parchment textarea{min-height:500px}.section-kicker,.document-panel h3{color:#4c3c23}}
@media(max-width:680px){.page-header:has(.brand-small):has(h1){justify-content:center}.page-header:has(h1) .brand-small,.page-header:has(h1) .semester{display:none}.home{grid-template-columns:minmax(0,1fr)}.home-title,.home-actions{min-width:0}.home-hero{max-width:100%}.profile-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:12px}.profile-actions .action-wrap{min-width:0}.profile-actions .pixel-button{max-width:100%}.profile-actions .action-caption{text-align:center;max-width:100%;font-size:12px;line-height:1.25}.profile-actions .diary-button{width:124px}}
@media(max-width:360px){.home-actions .action-caption{display:none}.home-actions{gap:9px}.home-actions .pixel-button.square{width:56px}.profile-actions .pixel-button.square{width:60px}.profile-actions .diary-button{width:106px}}
/* Fechas del calendario académico confirmado. */
.week-dates{margin:-10px 0 20px;color:var(--muted);font-size:13px;line-height:1.6;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.calendar-overview,.calendar-note{color:var(--muted)}
.calendar-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:20px 0}
.calendar-list article{padding:15px 0;border-top:1px solid #aa947245;min-width:0}
.calendar-list h4{margin:0 0 5px;color:var(--gold)}
.calendar-list .calendar-dates{margin:0;font-size:14px;font-variant-numeric:tabular-nums}
@media(max-width:680px){.week-dates{margin:0 0 18px}.calendar-list{grid-template-columns:minmax(0,1fr)}}

/* Segunda versión: pendones pixelados, luz diurna y gestos breves. */
:root{--axis-1:#8dc9b6;--axis-2:#e5bd76;--axis-3:#b5a2df;--axis-4:#ed9e88;--radar-fill:#71c5ac35;--radar-stroke:#89cdb4}
.banner,.guild-banner{clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% 84%,98% 84%,98% 84.64%,96% 84.64%,96% 85.28%,94% 85.28%,94% 85.92%,92% 85.92%,92% 86.56%,90% 86.56%,90% 87.2%,88% 87.2%,88% 87.84%,86% 87.84%,86% 88.48%,84% 88.48%,84% 89.12%,82% 89.12%,82% 89.76%,80% 89.76%,80% 90.4%,78% 90.4%,78% 91.04%,76% 91.04%,76% 91.68%,74% 91.68%,74% 92.32%,72% 92.32%,72% 92.96%,70% 92.96%,70% 93.6%,68% 93.6%,68% 94.24%,66% 94.24%,66% 94.88%,64% 94.88%,64% 95.52%,62% 95.52%,62% 96.16%,60% 96.16%,60% 96.8%,58% 96.8%,58% 97.44%,56% 97.44%,56% 98.08%,54% 98.08%,54% 98.72%,52% 98.72%,52% 99.36%,50% 99.36%,50% 100%,48% 100%,48% 99.36%,46% 99.36%,46% 98.72%,44% 98.72%,44% 98.08%,42% 98.08%,42% 97.44%,40% 97.44%,40% 96.8%,38% 96.8%,38% 96.16%,36% 96.16%,36% 95.52%,34% 95.52%,34% 94.88%,32% 94.88%,32% 94.24%,30% 94.24%,30% 93.6%,28% 93.6%,28% 92.96%,26% 92.96%,26% 92.32%,24% 92.32%,24% 91.68%,22% 91.68%,22% 91.04%,20% 91.04%,20% 90.4%,18% 90.4%,18% 89.76%,16% 89.76%,16% 89.12%,14% 89.12%,14% 88.48%,12% 88.48%,12% 87.84%,10% 87.84%,10% 87.2%,8% 87.2%,8% 86.56%,6% 86.56%,6% 85.92%,4% 85.92%,4% 85.28%,2% 85.28%,2% 84.64%,0% 84.64%,0% 84%,0 4px,4px 4px)}

.home-course small,.home-course p{font-family:var(--pixel)}
.banner{background:linear-gradient(90deg,#612d36 0 10%,#793740 10% 26%,#904348 26% 43%,#994a4b 43% 62%,#843b43 62% 83%,#71313b 83%)}
.guild-banner{width:100%;background:linear-gradient(90deg,#302541 0 9%,#40334e 9% 25%,#4d3e58 25% 44%,#57445f 44% 65%,#493a54 65% 84%,#32253f 84%);transition:filter .2s}
.guild-banner:hover{transform:none;filter:brightness(1.07)}
.tower-banner{background:linear-gradient(90deg,#34454b 0 9%,#42565b 9% 25%,#506367 25% 44%,#5c7070 44% 65%,#4a5e61 65% 84%,#34454b 84%)}
.banner:before,.guild-banner:before{border-left:2px dashed #c8a16b70;border-right:2px dashed #c8a16b70;border-top:0;border-bottom:0;clip-path:none}
.banner:after,.guild-banner:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 7px,#fff 7px 8px),repeating-linear-gradient(90deg,transparent 0 7px,#000 7px 8px);opacity:.025}
.guild-card{position:relative;min-width:0;isolation:isolate}
.character-scene{position:relative;display:block}
.character-scene:focus-visible{outline:2px dashed var(--gold);outline-offset:4px}
.character-art{display:block;width:100%;height:100%;image-rendering:pixelated;overflow:visible}
.profile-character{height:380px;width:100%;margin-top:auto;min-height:0}
.guild-banner .character-art{height:345px;flex-shrink:0}
.document-characters{pointer-events:auto}
.document-characters>.character-scene{height:245px;width:245px;max-width:100%;margin-bottom:-19px}
.guild-screen .document-characters>.character-scene{height:230px;width:230px}
.eye-layer{opacity:0}
.is-animated .eye-layer{opacity:1}
.speech-bubble{position:absolute;z-index:4;top:8%;max-width:calc(100% - 12px);padding:10px 15px;background:#f7eaca;border:3px solid #392e26;box-shadow:4px 4px 0 #110e1877;color:#3e3128;font:500 24px/1.05 var(--pixel);white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(3px)}
.speech-bubble:after{content:'';position:absolute;width:11px;height:11px;bottom:-11px;left:25%;border-left:3px solid #392e26;border-bottom:3px solid #392e26;background:#f7eaca}
.speech-elder{left:5%}.speech-young{right:3%}
.speech-young:after{left:auto;right:25%}
.speaking-elder .speech-elder,.speaking-young .speech-young{opacity:1;transform:none}
.document-characters .speech-bubble{top:-10px;font-size:20px;padding:8px 11px}
.document-characters .speech-elder{left:-25px}.document-characters .speech-young{right:-25px}
[data-character="mago-oscuro"].is-animated .eye-layer{animation:wizard-blink 3.2s linear 1}
[data-character="sthefan-combate"].is-animated .character-art{animation:sword-ready .85s steps(4,end) 1;transform-origin:50% 80%}
[data-character="sthefan-reposo"].is-animated .character-art{animation:sthefan-greeting 1.1s steps(5,end) 1;transform-origin:50% 90%}
@keyframes sword-ready{0%,100%{transform:none}35%{transform:translateY(-4px) rotate(-1deg)}65%{transform:translate(2px,-2px) rotate(1deg)}}
@keyframes sthefan-greeting{0%,100%{transform:none}30%{transform:translateY(-3px) rotate(-1deg)}60%{transform:translateY(-1px) rotate(1deg)}}
@keyframes wizard-blink{0%,26%,40%,64%,80%,100%{filter:brightness(1)}32%,35%,71%,74%{filter:brightness(0)}}
.delete-button{--button:#74494b;--button-dark:#493032;--button-light:#ab7974}
.mission-actions{max-width:204px}
.mission-actions .pixel-button{min-width:44px;width:44px;min-height:44px}
.evidence-actions{display:flex;gap:10px;flex-shrink:0}
.evidence-title>div:first-child{min-width:0}
.confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px;margin-top:8px}
.delete-name{font-weight:600;color:var(--ink)}
.delete-explanation{line-height:1.75;font-size:15px}
.close-modal{min-width:44px;min-height:44px}
[data-theme="light"]{color-scheme:light;--ink:#302f29;--muted:#504c41;--faint:#676154;--gold:#78501d;--line:#8b7350;--edge:#413b33;--surface:rgba(255,248,227,.45);--solid:#f5ecd8;--field:#fffaf0;--green:#287659;--red:#b1423f;--coffee:#98651e;--shadow:#9d8c73;--axis-1:#20664f;--axis-2:#84521a;--axis-3:#655091;--axis-4:#aa4a31;--radar-fill:#367c6130;--radar-stroke:#286a53}
[data-theme="light"] body{background:#d8d0bf}
[data-theme="light"] .world{background-image:url('assets/arte/sala-medieval-dia.png')}
[data-theme="light"] .world:after{background:linear-gradient(0deg,#eee6d630,transparent 42%)}
[data-theme="light"] .home-title,[data-theme="light"] .home-course strong,[data-theme="light"] .page-header h1{text-shadow:2px 3px #fff7dfa6}
[data-theme="light"] .home-hero{filter:drop-shadow(0 12px 4px #44392840)}
[data-theme="light"] .panel{border-color:#7b6d5366;box-shadow:0 6px 0 #75614325;backdrop-filter:blur(10px)}
[data-theme="light"] .banner{color:#f3eddf}
[data-theme="light"] .banner .section-kicker{color:#efc98c}
[data-theme="light"] .action-caption{color:#4c3b23}
[data-theme="light"] .debt,[data-theme="light"] .form-error{color:#8d302c}
[data-theme="light"] .radar-grid{color:#5f6a5d66}
[data-theme="light"] .meter{background:#dad1bd;border-color:#796f5b;box-shadow:0 0 0 1px #fffbef80}
[data-theme="light"] .meter-fill{box-shadow:inset 0 3px 0 #ffffff35}
[data-theme="light"] .pixel-button{box-shadow:inset 0 3px 0 var(--button-light),inset 0 -6px 0 var(--button-dark),3px 3px 0 #66544288}
[data-theme="light"] .pixel-button:active{box-shadow:inset 0 3px 0 var(--button-dark)}
[data-theme="light"] .mission{border-bottom-color:#75684c50}
[data-theme="light"] .completion-label{color:#185f43}
[data-theme="light"] .pdf-viewer{background:#d8cfba;border-color:#9b8a6b;scrollbar-color:#9a8054 #e6dcc6}
[data-theme="light"] .pdf-page figcaption,[data-theme="light"] .pdf-loading{color:#474235}
[data-theme="light"] .evidence-card img{background:#e2d9c6}
[data-theme="light"] dialog{box-shadow:8px 8px 0 #5c4d3a88}
[data-theme="light"] dialog::backdrop{background:#534b3b80}
[data-theme="light"] .parchment{background:linear-gradient(90deg,#c5a56e44,transparent 7%,transparent 93%,#a57e5444),linear-gradient(0deg,#dfc394,#f4e2bb 18%,#f4e2bb 84%,#e5cfa5);box-shadow:5px 5px 0 #745f4240,inset 0 0 50px #a7835a22}
[data-theme="light"] #toast{background:#f1f5dc;color:#284831;border-color:#487559}
[data-theme="light"] #toast.error{background:#f9e3d8;color:#78362f;border-color:#ad675b}
[data-theme="light"] button:focus-visible,[data-theme="light"] a:focus-visible,[data-theme="light"] input:focus-visible,[data-theme="light"] select:focus-visible,[data-theme="light"] textarea:focus-visible{outline-color:#6b491e}
@media(max-width:1100px){.guild-banner .character-art{height:315px}.mission-actions{max-width:none}}
@media(max-width:800px){.guild-banner .character-art{height:285px}.document-characters>.character-scene{height:215px;width:215px}}
@media(max-width:680px){
    .page-header:has([data-route="inicio"]) .semester{width:45px;font-size:0}
    .profile-character{height:190px}.guild-banner .character-art{height:205px;margin-top:28px}
    .speech-bubble{font-size:19px;padding:7px 9px;top:11%}.speech-elder{left:2%}.speech-young{right:2%}
    .document-characters>.character-scene,.guild-screen .document-characters>.character-scene{height:190px;width:190px}
    .document-characters .speech-bubble{top:0;font-size:18px}
    .mission-actions{max-width:100px}
    .evidence-title{align-items:flex-start;flex-wrap:wrap;gap:12px}
    .evidence-actions{margin-left:auto}
}
@media(max-width:380px){.guild-banner .character-art{height:215px}.speech-bubble{font-size:23px;top:9%}.mission-actions{max-width:none}.confirm-actions .pixel-button{flex:1}}
@media(prefers-reduced-motion:reduce){.speech-bubble{transform:none}.guild-banner:hover{transform:none}}
