/* ===== Toque 3D: aspecto de pieza impresa capa a capa ===== */
@font-face{font-family:"Lilita One";src:url("./fonts/lilita-one.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--layer-lines:repeating-linear-gradient(180deg,rgba(39,44,87,.028) 0 1px,transparent 1px 5px);--extrude:0 6px 0 rgba(39,44,87,.11),0 14px 26px rgba(39,44,87,.07);--display:"Lilita One","Arial Black",'Segoe UI',Arial,sans-serif}

/* Fondo: la cama de la impresora (cuadrícula suave) */
body,.portal-body{background-color:var(--paper);background-image:linear-gradient(rgba(39,44,87,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(39,44,87,.035) 1px,transparent 1px);background-size:28px 28px}

/* Títulos con volumen */
h1,.page-heading h1,.hero h1,.catalog-hero h1,.portal-copy h1{font-family:var(--display);font-weight:400;letter-spacing:.005em;text-shadow:1px 1px 0 #d9d2f5,2px 2px 0 #d9d2f5,3px 3px 0 #c9c0ee,4px 4px 0 #c9c0ee}
h1 em{text-shadow:1px 1px 0 #f8c9bd,2px 2px 0 #f8c9bd,3px 3px 0 #f2b2a2,4px 4px 0 #f2b2a2}
.hero h1 em,.catalog-hero h1 em,.portal-copy h1 em{color:#e0664d}
h2,.section-heading h2,.catalog-controls h2,.list-heading h2,.tool-heading h2{font-family:var(--display);font-weight:400;letter-spacing:.01em}

/* Tarjetas: piezas gruesas con capas */
.panel,.stat-card,.product-card,.tool-card,.catalog-hero,.module-card,.term-card,.piece-row,.order-card{box-shadow:var(--extrude);background-image:var(--layer-lines)}
.panel,.product-card,.tool-card,.catalog-hero{border-color:#e2ddd2}
.stat-card{border-width:1.5px}

/* Botones gruesos que se hunden al pulsar */
.button{border-width:1.5px;transition:transform .12s ease,box-shadow .12s ease,background .18s ease}
.button.primary{box-shadow:0 4px 0 #10132f}
.button.secondary,.button.light{box-shadow:0 4px 0 #d8d1ec;border-color:#d8d1ec}
.button.dark{box-shadow:0 4px 0 #cfc5f3}
.button:hover{transform:translateY(-2px)}
.button.primary:hover{box-shadow:0 6px 0 #10132f}
.button.secondary:hover,.button.light:hover{box-shadow:0 6px 0 #d8d1ec}
.button.dark:hover{box-shadow:0 6px 0 #cfc5f3}
.button:active{transform:translateY(3px)}
.button.primary:active{box-shadow:0 1px 0 #10132f}
.button.secondary:active,.button.light:active,.button.dark:active{box-shadow:0 1px 0 #d8d1ec}
.filter-pill{box-shadow:0 3px 0 #e3dfd6;transition:transform .12s ease,box-shadow .12s ease}
.filter-pill:active{transform:translateY(2px);box-shadow:0 1px 0 #e3dfd6}
.filter-pill.active{box-shadow:0 3px 0 #10132f}

/* Logo */
.brand-svg{display:block;width:100%;height:auto;overflow:visible}
.brand-nozzle{animation:brand-nozzle 1.6s ease-in-out infinite alternate}
@keyframes brand-nozzle{from{transform:translate(0,0)}to{transform:translate(-5px,3px)}}
.brand-mark-3d{display:block;width:44px;flex:none}
.brand-mark-3d .brand-svg{width:44px}
.brand-name{font-family:var(--display)!important;font-weight:400;font-size:17px!important;letter-spacing:.04em!important;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.brand-nozzle{animation:none}}
/* Títulos con letras en degradado (juegos): sin sombra, que la tapa */
.games-intro h1{text-shadow:none;filter:drop-shadow(3px 3px 0 #d9d2f5)}
