:root{color-scheme:dark;--bg:#170f1a;--surface:#231726;--card:#2c1c30;--gold:#f4c581;--text:#fff3e2;--muted:#dac8d4;--line:#65465e;--focus:#ffd99b;--measure:1160px;font:100%/1.6 system-ui,sans-serif}
*{box-sizing:border-box}
html.big{font-size:120%}
html.contrast{--bg:#000;--surface:#080808;--card:#131313;--gold:#ffe16b;--text:#fff;--muted:#fff;--line:#bcbcbc;--focus:#ffea6b}
body{margin:0;background:var(--bg);color:var(--text)}
a{color:var(--gold);text-underline-offset:.2em}
a:hover{color:var(--text)}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
[hidden]{display:none!important}
.skip{position:absolute;left:.5rem;top:.5rem;background:var(--gold);color:#160b10;padding:.75rem;z-index:20;transform:translateY(-200%)}
.skip:focus{transform:none}
.top{border-bottom:1px solid var(--line);background:var(--bg)}
.top-inner,.accessbar,.footer{max-width:var(--measure);margin:auto;padding:.9rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.brand{display:flex;gap:.7rem;align-items:center;text-decoration:none;color:var(--text);font:600 1.22rem/1.1 Georgia,serif}
.brand small{font:700 .57rem/1.7 system-ui,sans-serif;letter-spacing:.2em;color:var(--gold);display:block}
.mark{width:2.2rem;aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--gold)}
.top nav,.actions,.lesson-actions,.admin-nav{display:flex;flex-wrap:wrap;gap:.65rem 1rem;align-items:center}
.top nav a,.nav-sign,.admin-nav a{text-decoration:none;font-size:.91rem;font-weight:650}
.nav-sign{border:1px solid var(--line);padding:.35rem .8rem;border-radius:.35rem}
.accessbar{justify-content:flex-end;padding-top:.45rem;padding-bottom:.45rem;gap:.35rem}
.accessbar button{font-size:.77rem;padding:.25rem .5rem;background:transparent}
main{min-height:65vh}
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:35rem;display:grid;align-items:center}
.hero-photo{position:absolute;inset:0 0 0 30%;background-image:linear-gradient(90deg,var(--bg),transparent 56%),linear-gradient(0deg,var(--bg),transparent 42%),url('retrato.webp');background-size:cover;background-position:center,center,50% 31%;opacity:.86;z-index:-1}
.contrast .hero-photo{opacity:.25}
.hero-inner{width:min(var(--measure),100%);margin:auto;padding:5rem 1.25rem;position:relative}
.hero-inner>*{max-width:36rem}
.hero h1{font-size:clamp(3.2rem,8vw,7rem);letter-spacing:-.058em;line-height:.95;margin:.6rem 0 1.2rem;max-width:49rem;text-wrap:balance;color:var(--gold)}
.hero .lead{font:1.42rem/1.25 Georgia,serif;color:var(--text)}
.hero p{color:var(--muted);max-width:29rem}
.hero-meta{display:flex;gap:.5rem 1.2rem;flex-wrap:wrap;font-size:.83rem;color:var(--muted);margin-top:2rem}
.hero-meta span::before{content:'✦';color:var(--gold);margin-right:.35rem}
.section{padding:3rem 1.25rem}
.content-width{max-width:var(--measure);margin-inline:auto}
.narrow{max-width:45rem;margin-inline:auto}
.section-heading{max-width:41rem;margin-bottom:1.75rem}
.eyebrow{color:var(--gold);font-size:.72rem;letter-spacing:.13em;font-weight:800;text-transform:uppercase}
h1,h2,h3{font-family:Georgia,serif;font-weight:600;line-height:1.15}
h1{font-size:clamp(2.25rem,5.6vw,4rem);margin:.45rem 0 1rem}
h2{font-size:clamp(1.45rem,3.6vw,2.5rem);margin:.45rem 0 .8rem}
h3{font-size:1.3rem;margin:.35rem 0 .6rem}
p{margin:.6rem 0 1rem}
.journey,.admin-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.journey article,.panel,.progress-panel,.term-box{background:var(--surface);border:1px solid var(--line);border-radius:.75rem;padding:1.2rem}
.journey article span{font-weight:750;color:var(--gold)}
.product{display:grid;grid-template-columns: minmax(125px,225px) 1fr;gap:clamp(1rem,5vw,4rem);align-items:center;border-block:1px solid var(--line)}
.product img{display:block;width:100%;height:auto;border:1px solid var(--line);box-shadow:0 .85rem 2rem #0007}
.price{font:700 2.35rem/1 Georgia,serif;color:var(--gold)}
.faq details{max-width:49rem}
details{border-bottom:1px solid var(--line);padding:.65rem 0}
summary{cursor:pointer;font-weight:650}
button,.button,.ghost{display:inline-block;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;font-weight:650;border-radius:.4rem;padding:.52rem .8rem;text-decoration:none;cursor:pointer;line-height:1.35}
.button{background:var(--gold);color:#1d0e16;border-color:var(--gold);padding:.7rem 1rem}
.button:hover{color:#1d0e16;background:#ffdaa0}
button:not(.button):hover,.ghost:hover{border-color:var(--gold)}
button:disabled{opacity:.6;cursor:default}
.actions{margin:.85rem 0}
.inline{display:inline}
.field{display:grid;gap:.3rem;margin:1rem 0;font-weight:650;min-width:0}
input,textarea,select{width:100%;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:.4rem;padding:.65rem;font:inherit;min-width:0}
textarea{resize:vertical}
input[type=checkbox],input[type=radio]{width:1.13rem;height:1.13rem;flex:0 0 auto;accent-color:var(--gold)}
.check{display:flex;align-items:flex-start;gap:.6rem;margin:.7rem 0;color:var(--text)}
fieldset{border:1px solid var(--line);border-radius:.55rem;padding:.5rem .8rem;margin:1rem 0;min-width:0}
.hint{color:var(--muted);font-size:.85rem}
.pre{white-space:pre-wrap;overflow-wrap:anywhere}
.term-box{max-height:27rem;overflow:auto}
.flash{padding:.65rem 1rem;border-left:.2rem solid var(--gold);max-width:var(--measure);margin:.7rem auto;background:var(--surface)}
.flash.error{border-color:#ff9c9a}
.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%)}
.footer{border-top:1px solid var(--line);align-items:flex-start}
.footer div:last-of-type{display:grid;gap:.25rem;font-size:.9rem}
.footer address{font-style:normal;color:var(--muted);font-size:.8rem}
.workspace-head,.progress-panel div{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.progress-panel{margin:1rem 0}
.progress-panel span{font-size:.86rem;color:var(--muted)}
progress{width:100%;height:.7rem;accent-color:var(--gold);margin-top:.5rem}
.fichario,.inbox{display:grid;grid-template-columns:minmax(12rem,17rem) minmax(0,1fr);gap:1rem;align-items:start}
.tabs,.notebook,.chat{background:var(--surface);border:1px solid var(--line);border-radius:.65rem;padding:1rem}
.tabs{max-height:72vh;overflow:auto}
.tabs .eyebrow{display:block;margin:.5rem 0}
.tabs a{display:flex;gap:.5rem;justify-content:space-between;border-radius:.35rem;padding:.45rem .55rem;text-decoration:none;font-size:.91rem;color:var(--text)}
.tabs a:hover,.selected,.tabs [aria-current=page]{background:var(--card);color:var(--gold);outline:1px solid var(--line)}
.done{color:var(--gold)}
.notebook{max-height:72vh;overflow:auto;padding:clamp(.85rem,3vw,2rem)}
.notebook p,.notebook li{max-width:69ch}
.notebook article h2,.notebook article h3{margin-top:1.15rem}
.notebook article h2:first-child{margin-top:0}
.journal{margin-top:2rem;border-top:1px solid var(--line);padding-top:1.4rem}
.day-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .8rem;max-height:25rem;overflow:auto}
.day-list .check{background:var(--card);padding:.35rem .5rem;border-radius:.3rem;margin:.2rem 0}
.day-list strong{display:block}
.downloads li{margin:.45rem 0;overflow-wrap:anywhere}
.admin-nav a{padding:.36rem .55rem;border-radius:.3rem}
.admin-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-cards h2{font-size:1.3rem}
.admin-cards p{overflow-wrap:anywhere}
.admin-user-form{display:flex;gap:.45rem;flex-wrap:wrap}
.search{display:flex;gap:.75rem;align-items:end;margin:1rem 0}
.search .field{margin:0;flex:1}
.messages{min-height:14rem;max-height:55vh;overflow:auto;background:var(--bg);padding:.6rem;border:1px solid var(--line);border-radius:.45rem}
.messages article{background:var(--card);border-radius:.4rem;padding:.45rem .6rem;margin:.4rem 0}
.messages article p{margin:.15rem 0;white-space:pre-wrap;overflow-wrap:anywhere}
.messages small{display:block;color:var(--muted)}
@media(max-width:700px){
 .top-inner,.accessbar,.footer{gap:.45rem;padding-inline:.8rem}
 .top nav{gap:.35rem .65rem}
 .top nav a{font-size:.8rem}
 .accessbar{justify-content:flex-start}
 .hero{min-height:30rem}
 .hero-photo{inset:0;opacity:.43;background-position:center,center,center 26%}
 .hero-inner{padding:3.7rem .95rem}
 .section{padding:2rem .8rem}
 .journey,.admin-cards,.fichario,.inbox{grid-template-columns:1fr}
 .tabs{max-height:11rem}
 .notebook{max-height:none}
 .day-list{grid-template-columns:1fr}
 .product{align-items:start}
 .product ul{padding-left:1rem}
}
@media(max-width:380px){.product{grid-template-columns:1fr}.product img{max-width:8.5rem}}
