@import url('https://fonts.googleapis.com/css2?family=Special+Elite&display=swap');
:root{--bg:#09090a;--panel:#151516;--panel2:#1d1d1f;--ink:#f3efe7;--muted:#99979a;--line:#2d2d30;--accent:#a7191f;--gold:#8d6a32;--serif:'Special Elite','Courier Prime','Courier New',monospace;--sans:'Special Elite','Courier Prime','Courier New',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% -20%,#191713 0,#0b0b0c 32%,#09090a 68%);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;letter-spacing:.01em}body.modal-open{overflow:hidden}a{color:inherit}.site-header{height:104px;padding:0 2.4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #242427;position:sticky;top:0;z-index:100;background:rgba(9,9,10,.92);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.logo-slot{width:60px;height:60px;display:grid;place-items:center;overflow:hidden;flex:0 0 60px}.logo-slot img{display:block;width:100%;height:100%;object-fit:cover}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-family:var(--serif);font-size:24px;letter-spacing:.04em}.brand-copy small{font-size:11px;color:var(--muted);letter-spacing:.04em}.nav{display:flex;align-items:center;gap:24px}.nav>a,.nav-drop>button{font:600 13px var(--sans);text-decoration:none;background:none;border:0;color:var(--ink);cursor:pointer;padding:12px 0}.nav-accent{color:#fff!important;background:linear-gradient(180deg,#bd242a,#8f151a)!important;padding:10px 15px!important;border-radius:8px;box-shadow:inset 0 1px 0 #ffffff22}.nav-drop{position:relative}.drop-panel{display:none;position:absolute;right:0;top:42px;width:280px;max-height:65vh;overflow:auto;background:#151517;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 20px 60px #000c}.nav-drop:hover .drop-panel,.nav-drop:focus-within .drop-panel{display:block}.drop-panel a{display:block;padding:9px 10px;text-decoration:none;border-radius:7px;color:#c8c5c0;font-size:13px}.drop-panel a:hover{background:#242426;color:#fff}.drop-all{margin-top:6px;border-top:1px solid var(--line);color:#fff!important}.menu-btn{display:none}.home-intro{max-width:1680px;margin:auto;padding:72px 3vw 44px;display:flex;justify-content:space-between;align-items:end;gap:40px}.kicker,.modal-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:#8e8b86;font-weight:700}.home-intro h1,.page-title h1,.admin-head h1,.artist-hero h1{font-family:var(--serif);font-size:clamp(46px,6vw,84px);line-height:1.02;margin:8px 0 0;font-weight:400;letter-spacing:.01em}.home-intro>p,.page-intro{max-width:520px;color:#aaa6a1;font-size:17px}.gallery-section,.page-wrap{padding:0 3vw 86px;max-width:1760px;margin:auto}.page-wrap{padding-top:66px}.page-title{margin-bottom:38px}.gallery-head{display:flex;justify-content:space-between;color:#7e7b77;font-size:11px;text-transform:uppercase;letter-spacing:.14em;margin-bottom:18px}.square-grid,.artist-gallery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:42px 24px}.square-card,.artist-gallery-card{min-width:0}.framed-art{display:block;width:100%;aspect-ratio:1/1;background:none;border:0;padding:0;cursor:pointer;text-decoration:none}.frame-shell{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#111;box-shadow:0 18px 42px #000b;transition:transform .28s ease,box-shadow .28s ease}.frame-shell:before{display:none}.frame-shell:after{content:"";position:absolute;inset:0;z-index:2;background:url("../img/frame-exact.png") center/100% 100% no-repeat;pointer-events:none}.frame-mat{position:absolute;left:13.95%;top:14.11%;width:73.55%;height:73.44%;display:grid;place-items:center;overflow:hidden;background:#111;z-index:1}.frame-mat:before,.frame-mat:after{display:none}.frame-mat img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:#111;box-shadow:none}.framed-art:hover .frame-shell,.framed-art:focus-visible .frame-shell{transform:translateY(-4px);box-shadow:0 24px 48px #000d}
.square-meta,.artist-gallery-meta{padding-top:15px;display:grid;grid-template-columns:1fr auto;gap:2px 12px}.square-meta h2,.artist-gallery-meta h2{font:400 16px/1.25 var(--serif);margin:0;grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.square-meta a,.square-meta span,.artist-gallery-meta a,.artist-gallery-meta span{font-size:11px;color:#99958f;text-decoration:none}.square-meta a:hover,.artist-gallery-meta a:hover{color:#fff}.empty-art{color:#514b43;font-family:var(--serif);font-size:20px}.pagination{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:54px;flex-wrap:wrap}.pagination a{min-width:34px;height:38px;padding:0 9px;display:grid;place-items:center;text-decoration:none;border:0;border-bottom:1px solid transparent;font-size:13px;color:#aaa6a1;transition:color .18s ease,border-color .18s ease,background .18s ease}.pagination a:hover{color:#fff;border-bottom-color:#77716a;background:#ffffff08}.pagination a.active{color:#fff;border-bottom:2px solid #d4b27b;font-weight:700;background:#ffffff08}.pagination .pagination-nav{font-size:22px;color:#d4b27b;padding:0 10px}.pagination-ellipsis{display:grid;place-items:center;min-width:28px;height:38px;color:#625e58;font-size:16px;letter-spacing:.08em}.portal-info{border-top:1px solid #29292c;border-bottom:1px solid #29292c;padding:52px 3vw;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1760px;margin:auto}.portal-info>article{background:linear-gradient(180deg,#19191b,#151517);border:1px solid #353538;border-radius:15px;padding:28px;min-height:320px;color:#b6b2ad;box-shadow:0 14px 32px #0004}.portal-info h3{color:#fff;font:400 18px var(--serif);margin:0 0 18px}.portal-info p,.portal-info li{font-size:13px}.subscribe-box{margin-top:26px;padding:20px;background:#242426;border:1px solid #444347;border-radius:13px}.subscribe-box label{font-size:12px}.subscribe-box input,.contact-box input,.contact-box textarea{display:block;width:100%;margin-top:8px;padding:12px;border-radius:9px;border:1px solid #3c3b3e;background:#101012;color:#fff}.subscribe-box button,.contact-box button{margin-top:10px;background:#64171a;border:1px solid #a3262b;color:#fff;padding:10px 18px;border-radius:9px;font-weight:700}.subscribe-box small{display:block;margin-top:10px;color:#aaa}.site-footer{max-width:1760px;margin:auto;padding:46px 3vw 60px;display:grid;grid-template-columns:1fr 1fr;gap:60px}.footer-contact h3{margin:0 0 6px}.footer-contact a,.footer-contact p{font-family:monospace;font-size:12px;text-decoration:none;color:#c7c7c7}.contact-box{justify-self:end;width:min(100%,560px);background:#18181a;border:1px solid #36363a;border-radius:15px;padding:18px}.contact-box label{display:block;font-size:11px;font-weight:700;margin-top:8px}.contact-box textarea{min-height:105px;resize:vertical}.contact-box button{width:100%}.filterbar{display:grid;grid-template-columns:1fr 280px auto;gap:10px;margin-bottom:36px}.filterbar input,.filterbar select,.admin-form input,.admin-form select,.admin-form textarea{background:#131315;color:#fff;border:1px solid #353538;border-radius:9px;padding:12px 13px;font:inherit}.filterbar button{background:#eee8dc;color:#111;border:0;border-radius:9px;padding:0 20px;font-weight:700}.catalogue-grid{margin-top:10px}.artist-gallery-grid{margin-top:16px}.artist-hero,.section{max-width:1760px;margin:auto;padding:70px 3vw}.essay-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;border-top:1px solid #2c2b2c}.prose{max-width:760px;color:#b5b2ad;font-size:16px}.section-head h2,.essay-grid h2{font:400 42px var(--serif);margin:8px 0}.work-view{min-height:calc(100vh - 104px);display:grid;grid-template-columns:1.25fr .75fr}.work-stage{display:grid;place-items:center;background:#050506;padding:52px}.work-stage img{max-width:100%;max-height:78vh;object-fit:contain}.work-info{padding:70px 5vw}.work-info h1{font:400 clamp(44px,5vw,74px)/1.02 var(--serif)}.lead{color:#b5b2ad;font-size:17px}.facts{border-top:1px solid var(--line)}.facts div{display:grid;grid-template-columns:120px 1fr;padding:10px 0;border-bottom:1px solid var(--line)}.facts dt{font-size:10px;text-transform:uppercase;color:#85827e}.facts dd{margin:0}.admin-wrap{max-width:1700px;margin:auto;padding:64px 3vw 100px}.admin-wrap.narrow{max-width:1100px}.admin-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.admin-head h1{font-size:56px}.admin-primary{display:inline-flex;align-items:center;justify-content:center;background:#eee8dc;color:#111;text-decoration:none;border:0;border-radius:9px;padding:12px 16px;font-weight:800}.admin-list{border-top:1px solid var(--line)}.admin-row{display:grid;grid-template-columns:64px 1fr 140px 70px 80px;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.admin-row img{width:56px;height:56px;object-fit:cover}.admin-row>div{display:flex;flex-direction:column}.admin-row span{color:#89868a;font-size:11px}.admin-row a{text-decoration:none;font-weight:700;font-size:12px}.admin-row form{margin:0}.admin-row button.danger{background:none;border:0;color:#d16d71;cursor:pointer}.home-badge{padding:5px 8px;border:1px solid #38383b;border-radius:999px;text-align:center}.home-badge.on{color:#fff;border-color:#68686f}.artist-admin{grid-template-columns:1fr 70px 80px}.admin-form{background:#151517;border:1px solid var(--line);border-radius:14px;padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#bab7b1}.admin-form .wide{grid-column:1/-1}.admin-form textarea{resize:vertical}.admin-form .check{flex-direction:row;align-items:center;font-size:13px}.admin-form .check input{width:auto}.admin-primary.submit{margin-top:22px;min-width:180px}.error{padding:120px 3vw;min-height:70vh}
.art-modal{position:fixed;inset:0;z-index:1000;display:none;place-items:center;padding:28px}.art-modal.is-open{display:grid}.art-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(12px);border:0}.art-modal__dialog{position:relative;width:min(1380px,96vw);max-height:92vh;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);background:#121214;border:1px solid #3b3938;border-radius:18px;box-shadow:0 36px 100px #000;animation:modalIn .24s ease}.art-modal__visual{min-height:70vh;padding:38px;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#26231f,#0b0b0c 65%)}.art-modal__frame{position:relative;width:min(70vh,760px);aspect-ratio:1/1;overflow:visible;background:transparent;box-shadow:none}.art-modal__frame>.frame-shell{width:100%;height:100%;display:block}.art-modal__frame .frame-mat img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:#111;border:0;outline:0;box-shadow:none}
.art-modal__content{padding:54px 46px;overflow:auto}.art-modal__content h2{font:400 clamp(34px,4vw,58px)/1.02 var(--serif);margin:8px 0 10px}.modal-author{font:500 20px var(--serif);color:#d4c6b1;margin:0 0 26px}.modal-description{color:#b4b0aa;font-size:15px;line-height:1.75;margin:0 0 30px}.modal-facts{margin:0;border-top:1px solid #343235}.modal-facts div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid #343235}.modal-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#7f7c77}.modal-facts dd{margin:0;color:#e9e2d8}.modal-link{display:inline-block;margin-top:28px;text-decoration:none;border-bottom:1px solid #b4976f;padding-bottom:3px}.art-modal__close{position:absolute;right:18px;top:14px;z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid #ffffff2c;background:#111113cc;color:#fff;font-size:28px;line-height:1;cursor:pointer}.art-modal__close:hover{background:#fff;color:#111}@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:1200px){.square-grid,.artist-gallery-grid{grid-template-columns:repeat(3,1fr)}.nav{gap:14px}.portal-info{grid-template-columns:1fr 1fr}.portal-info>article:last-child{grid-column:1/-1}.art-modal__dialog{grid-template-columns:1fr 420px}.admin-row{grid-template-columns:56px 1fr 120px 60px 70px}}
@media(max-width:820px){.site-header{height:82px}.brand-copy small{display:none}.nav{display:none;position:absolute;top:82px;left:0;right:0;background:#101012;padding:20px 5vw;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.site-header.menu-open .nav{display:flex}.nav-drop>button{text-align:left}.drop-panel{position:static;width:100%;max-height:230px}.menu-btn{display:block;background:none;border:1px solid var(--line);color:#fff;border-radius:7px;padding:8px 11px}.home-intro{padding-top:45px;display:block}.home-intro>p{margin-top:25px}.square-grid,.artist-gallery-grid{grid-template-columns:repeat(2,1fr);gap:30px 12px}.portal-info,.site-footer,.essay-grid{grid-template-columns:1fr}.portal-info>article:last-child{grid-column:auto}.contact-box{justify-self:stretch}.filterbar{grid-template-columns:1fr}.work-view{grid-template-columns:1fr}.work-stage{min-height:60vh;padding:30px}.admin-row{grid-template-columns:52px 1fr auto}.admin-row .home-badge{display:none}.admin-row form{grid-column:3}.form-grid{grid-template-columns:1fr}.admin-form .wide{grid-column:auto}.admin-head{align-items:flex-start;flex-direction:column}.admin-head h1{font-size:42px}.art-modal{padding:12px}.art-modal__dialog{width:100%;max-height:96vh;grid-template-columns:1fr;overflow:auto}.art-modal__visual{min-height:46vh;padding:24px}.art-modal__frame{width:min(74vw,52vh)}.art-modal__content{padding:30px 24px}.art-modal__close{position:fixed;right:22px;top:20px}}
@media(max-width:520px){.square-grid,.artist-gallery-grid{grid-template-columns:1fr}.logo-slot{width:46px;height:46px}.brand-copy strong{font-size:19px}}

/* v0.4: autor visible, cuentas y moderación */
.square-meta .artist-name,.artist-gallery-meta .artist-name{font-size:15px;line-height:1.25;color:#ddd7cf;margin-top:4px;font-weight:400}.square-meta h2,.artist-gallery-meta h2{font-size:17px}.square-meta>span:not(.artist-name),.artist-gallery-meta>span:not(.artist-name){align-self:end}.nav-inline-form{margin:0}.nav-inline-form button{font:600 13px var(--sans);color:var(--ink);background:none;border:0;cursor:pointer;padding:12px 0}.auth-wrap{min-height:calc(100vh - 104px);display:grid;place-items:center;padding:70px 20px}.auth-panel{width:min(560px,100%);background:#151517;border:1px solid #353538;border-radius:16px;padding:38px;box-shadow:0 30px 80px #0008}.auth-panel h1{font:400 48px/1 var(--serif);margin:10px 0 20px}.auth-panel>p{color:#aaa6a1}.auth-form{display:grid;gap:16px;margin-top:28px}.auth-form label{display:grid;gap:7px;font-size:12px}.auth-form input{width:100%;background:#0f0f11;border:1px solid #3a393d;border-radius:9px;padding:13px;color:#fff;font:inherit}.auth-switch{margin-top:22px!important}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:6px 9px;border:1px solid #444;border-radius:999px;font-size:11px}.status-approved{border-color:#476b4d;color:#9fd0a7}.status-pending{border-color:#7c6636;color:#e2c478}.status-rejected{border-color:#76383c;color:#e1979a}.user-work-row{grid-template-columns:64px 1fr 110px 70px 80px}.moderation-note{display:block;color:#d5bd7b;margin-top:5px}.empty-state{padding:30px 0;color:#96918a}.moderation-grid{display:grid;gap:24px}.moderation-card{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:34px;background:#141416;border:1px solid #333336;border-radius:16px;padding:24px}.moderation-preview{aspect-ratio:1/1}.moderation-data h2{font:400 34px/1.05 var(--serif);margin:7px 0}.moderation-author{font-size:19px;color:#ddd5ca}.mini-facts{border-top:1px solid #343235}.mini-facts div{display:grid;grid-template-columns:90px 1fr;padding:8px 0;border-bottom:1px solid #343235}.mini-facts dt{font-size:10px;text-transform:uppercase;color:#85817b}.mini-facts dd{margin:0}.moderation-actions textarea{width:100%;margin:16px 0 10px;background:#0f0f11;color:#fff;border:1px solid #3a393d;border-radius:8px;padding:10px;font:inherit}.moderation-actions>div{display:flex;gap:10px;align-items:center}.danger-button{background:#5a171a;border:1px solid #a4262b;color:#fff;border-radius:9px;padding:12px 16px;font:inherit;cursor:pointer}.users-row{grid-template-columns:1fr 100px 110px 100px}.users-row form{justify-self:end}
@media(max-width:900px){.moderation-card{grid-template-columns:1fr}.user-work-row,.users-row{grid-template-columns:56px 1fr auto}.user-work-row>a,.user-work-row>form,.users-row>form{grid-column:auto}.square-meta .artist-name,.artist-gallery-meta .artist-name{font-size:14px}}

.admin-review-link{display:inline-flex!important;align-items:center;gap:7px;padding:9px 12px!important;border:1px solid #7d2a2e;border-radius:8px;background:#3c1315;text-decoration:none!important}.admin-review-link strong{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#b62228;color:#fff;font-size:11px}.nav-user-role{font-size:11px;color:#8f8b86;white-space:nowrap}.nav-inline-form button{font:600 13px var(--sans);background:none;border:0;color:var(--ink);cursor:pointer;padding:12px 0}

.captcha-field strong{font-size:18px;color:#fff}.notice-panel .admin-primary{margin-top:18px}.subscribe-box{display:block}.subscribe-box button{cursor:pointer}

/* v0.4.6 */
.gallery-section{padding-top:48px}
.related-section{padding-top:54px}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 28px;margin-top:28px;max-width:1220px}
.related-card{min-width:0}
.related-meta{padding-top:15px}
.related-meta h2{font-size:18px}
.related-meta .artist-name{font-size:16px}
@media(max-width:1000px){.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.related-grid{grid-template-columns:1fr}.logo-slot{width:50px;height:50px;flex-basis:50px}}

/* v0.4.7 · suscripción en recientes + consentimiento de cookies */
.recent-subscription{max-width:1220px;margin:72px auto 0;padding:32px;border:1px solid var(--line);border-radius:16px;background:#141416;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);gap:46px;align-items:center}.recent-subscription h2{font:400 clamp(34px,4vw,52px)/1 var(--serif);margin:8px 0 14px}.recent-subscription p{color:#aaa6a1;line-height:1.65}.recent-subscription .subscribe-box{margin:0}.footer-link-button{border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}.cookie-consent{position:fixed;inset:0;z-index:2200;display:none;align-items:flex-end;justify-content:center;padding:24px;background:rgba(0,0,0,.58);backdrop-filter:blur(4px)}.cookie-consent.is-open{display:flex}.cookie-consent__panel{width:min(1050px,100%);background:#151517;border:1px solid #3b393d;border-radius:16px;box-shadow:0 30px 90px #000b;padding:28px 30px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:34px;align-items:end}.cookie-consent__copy h2{font:400 clamp(30px,4vw,44px)/1.05 var(--serif);margin:7px 0 13px}.cookie-consent__copy p{margin:0;color:#c0bbb4;line-height:1.6;max-width:760px}.cookie-consent__copy .cookie-consent__note{margin-top:10px;color:#8f8a84;font-size:12px}.cookie-consent__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.cookie-consent__actions button{border-radius:9px;padding:12px 16px;font:700 12px var(--sans);cursor:pointer}.cookie-primary{background:#eee8dc;color:#111;border:1px solid #eee8dc}.cookie-secondary{background:transparent;color:#eee8dc;border:1px solid #58545a}.cookie-consent__actions button:focus-visible,.footer-link-button:focus-visible{outline:2px solid #d2b98e;outline-offset:3px}@media(max-width:820px){.recent-subscription{grid-template-columns:1fr;margin-top:48px;padding:24px;gap:24px}.cookie-consent{padding:12px}.cookie-consent__panel{grid-template-columns:1fr;padding:22px;gap:22px}.cookie-consent__actions{justify-content:stretch}.cookie-consent__actions button{flex:1}}
