@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}

:root{
  --bg:#f4f5f9;
  --surface:#fff;
  --ink:#11131a;
  --muted:#697080;
  --line:rgba(15,18,27,.1);
  --night:#070a13;
  --night-soft:#0e1320;
  --violet:#7c5cff;
  --cyan:#66eadc;
  --danger:#d84e64;
  --success:#14866d;
  --shadow:0 24px 70px rgba(19,24,39,.12);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Poppins,"Avenir Next",system-ui,sans-serif;text-rendering:optimizeLegibility}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
img{max-width:100%}
::selection{background:#7c5cff;color:#fff}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid rgba(102,234,220,.55);outline-offset:3px}

.brand{display:inline-flex;align-items:center;gap:12px;font-size:.78rem;font-weight:800;letter-spacing:.22em}
.brand-mark{display:grid;width:36px;height:36px;place-items:center;border-radius:11px;color:#080b13;background:linear-gradient(145deg,#fff 5%,#70f1df 50%,#9b83ff);font-size:1rem;font-weight:800;letter-spacing:0;box-shadow:0 10px 30px rgba(110,238,221,.22)}
.brand-light{color:#fff}
.eyebrow{margin:0 0 10px;color:var(--violet);font-size:.69rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.primary-action,.secondary-action,.ghost-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:18px;border-radius:13px;padding:0 18px;font-weight:700;transition:.2s ease}
.primary-action{border:1px solid transparent;color:#080c12;background:linear-gradient(120deg,#6ce9da,#a58cff);box-shadow:0 12px 30px rgba(92,219,207,.18)}
.primary-action:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(92,219,207,.25)}
.secondary-action{border:1px solid var(--line);color:var(--ink);background:#fff}
.secondary-action:hover{border-color:rgba(124,92,255,.45);transform:translateY(-1px)}
.ghost-button{min-height:38px;border:1px solid var(--line);padding:0 14px;background:transparent}
.danger-link{border:0;color:var(--danger);background:transparent;font-size:.78rem;font-weight:700}
.field-note{margin:0;color:var(--muted);font-size:.75rem;line-height:1.6}
.secure-chip,.private-label,.status,.locked-label{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:.67rem;font-weight:700}
.secure-chip{color:#246c62;background:#e5f8f4}

.site-header{position:sticky;z-index:50;top:0;display:flex;min-height:72px;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--line);background:rgba(248,249,252,.84);backdrop-filter:blur(22px) saturate(1.25)}
.header-actions{display:flex;align-items:center;gap:16px;font-size:.8rem;font-weight:600}
.header-actions>a:not(.ghost-button){color:#606777}
.user-chip{padding:8px 12px;border-radius:999px;background:#fff;box-shadow:0 4px 18px rgba(20,24,38,.08)}
.toast{position:fixed;z-index:200;top:88px;right:24px;max-width:min(420px,calc(100vw - 48px));border:1px solid;padding:14px 17px;border-radius:13px;background:#fff;box-shadow:var(--shadow);font-size:.82rem;animation:toast-in .35s ease both}
.toast-success{border-color:rgba(20,134,109,.25);color:#0b6d59}.toast-error{border-color:rgba(216,78,100,.28);color:#aa3046}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}}

/* Login */
.login-page{overflow-x:hidden;color:#f8f9ff;background:#060913}
.login-experience{position:relative;display:grid;min-height:100svh;overflow:hidden;grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);grid-template-rows:auto 1fr auto;gap:0;padding:32px clamp(28px,5vw,84px);background:
  radial-gradient(circle at 18% 18%,rgba(65,225,210,.12),transparent 32rem),
  radial-gradient(circle at 83% 28%,rgba(125,92,255,.2),transparent 36rem),
  linear-gradient(145deg,#080b16,#05070e 68%)}
.login-grid{position:absolute;inset:0;opacity:.2;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}
.login-aurora{position:absolute;border-radius:50%;filter:blur(10px);animation:float 13s ease-in-out infinite alternate}
.aurora-one{top:-15%;right:12%;width:520px;height:520px;border:1px solid rgba(115,244,225,.32);box-shadow:inset 0 0 120px rgba(124,92,255,.12),0 0 110px rgba(102,234,220,.07)}
.aurora-two{bottom:-18%;left:10%;width:420px;height:420px;border:1px dashed rgba(157,133,255,.22);animation-delay:-5s}
@keyframes float{to{transform:translate3d(20px,18px,0) scale(1.04)}}
.login-header{position:relative;z-index:2;grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}
.private-label{border:1px solid rgba(255,255,255,.12);color:#abb3c5;background:rgba(255,255,255,.045)}
.login-message{position:relative;z-index:2;align-self:center;max-width:820px;padding:80px 8vw 90px 0}
.login-message .eyebrow{color:var(--cyan)}
.login-message h1{max-width:800px;margin:0;font-size:clamp(3.4rem,6.6vw,7.4rem);font-weight:700;letter-spacing:-.072em;line-height:.91}
.login-message>p:not(.eyebrow){max-width:620px;margin:28px 0 0;color:#aeb7ca;font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.75}
.experience-points{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}
.experience-points span{border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:9px 13px;color:#bdc5d6;background:rgba(255,255,255,.035);font-size:.72rem}
.login-card-wrap{position:relative;z-index:2;display:grid;align-self:center;justify-items:end}
.login-card{width:min(100%,480px);border:1px solid rgba(255,255,255,.16);border-radius:30px;padding:clamp(30px,4vw,52px);background:linear-gradient(150deg,rgba(255,255,255,.13),rgba(255,255,255,.055));box-shadow:0 38px 90px rgba(0,0,0,.44);backdrop-filter:blur(34px) saturate(1.35)}
.login-symbol{display:grid;width:64px;height:64px;place-items:center;margin-bottom:28px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:linear-gradient(145deg,rgba(109,236,221,.92),rgba(145,119,255,.9));box-shadow:0 18px 42px rgba(91,217,203,.2)}
.login-symbol span{color:#070a12;font-size:1.4rem;font-weight:800}
.login-card .eyebrow{color:#77eddf}
.login-card h2{margin:0;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.05em}
.login-intro{margin:12px 0 28px;color:#adb5c8;font-size:.87rem;line-height:1.65}
.floating-field{display:block;margin-bottom:14px;color:#aeb6c8;font-size:.72rem;font-weight:600}
.floating-field>span{display:block;margin:0 0 8px 4px}
.floating-field input,.login-card .password-field{width:100%}
.floating-field input{height:54px;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:0 15px;color:#fff;background:rgba(7,10,18,.5)}
.floating-field input:focus{border-color:rgba(111,238,222,.62);box-shadow:0 0 0 4px rgba(111,238,222,.08);outline:0}
.password-field{position:relative;display:flex}
.password-field input{width:100%;padding-right:74px!important}
.password-field button{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;border-radius:9px;padding:7px 10px;color:inherit;background:rgba(127,127,127,.12);font-size:.7rem;font-weight:700}
.login-submit{display:flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;margin-top:22px;border:0;border-radius:15px;padding:0 18px;color:#07100f;background:linear-gradient(120deg,#6ff0df,#aa91ff);font-weight:800;box-shadow:0 16px 36px rgba(88,218,202,.18);transition:.2s}
.login-submit:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(88,218,202,.24)}
.login-support{margin:20px 0 0;color:#7f899d;font-size:.7rem;line-height:1.55;text-align:center}
.error-message,.success-message,.form-errors{margin-bottom:18px;border:1px solid;border-radius:12px;padding:11px 13px;font-size:.76rem;line-height:1.5}
.error-message,.form-errors{border-color:rgba(255,110,135,.25);color:#ffacb9;background:rgba(132,27,47,.18)}
.success-message{border-color:rgba(102,234,220,.25);color:#8ff3e6;background:rgba(20,120,106,.15)}
.login-footer{position:relative;z-index:2;grid-column:1/-1;display:flex;justify-content:space-between;color:#667084;font-size:.67rem}

/* Installer */
.install-page{background:#080b14}
.install-shell{display:grid;min-height:100svh;grid-template-columns:minmax(360px,.78fr) minmax(600px,1.22fr);color:#fff;background:linear-gradient(145deg,#080b15,#070913)}
.install-visual{display:flex;flex-direction:column;justify-content:space-between;padding:48px clamp(34px,5vw,80px);border-right:1px solid rgba(255,255,255,.1);background:
  radial-gradient(circle at 20% 35%,rgba(101,237,219,.13),transparent 28rem),
  radial-gradient(circle at 90% 90%,rgba(124,92,255,.18),transparent 32rem)}
.install-visual h1{max-width:650px;margin:0;font-size:clamp(3rem,5.5vw,6.4rem);letter-spacing:-.07em;line-height:.93}
.install-visual>div>p:last-child{max-width:540px;color:#aeb6c8;line-height:1.75}
.install-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none;color:#788196;font-size:.78rem}
.install-steps li{display:flex;align-items:center;gap:14px}.install-steps span{display:grid;width:32px;height:32px;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:10px;font-size:.62rem}
.install-steps .active{color:#fff}.install-steps .active span{border-color:rgba(103,238,221,.6);color:#08100f;background:#6eeedd}
.install-form-panel{display:grid;place-items:center;overflow:auto;padding:50px clamp(25px,5vw,80px);color:var(--ink);background:#f3f4f8}
.glass-form{width:min(100%,760px);border:1px solid rgba(255,255,255,.8);border-radius:26px;padding:clamp(28px,4vw,48px);background:rgba(255,255,255,.74);box-shadow:0 30px 80px rgba(25,28,43,.12);backdrop-filter:blur(24px)}
.glass-form h2{margin:0 0 12px;font-size:2rem;letter-spacing:-.05em}.glass-form>p:not(.eyebrow){color:var(--muted);line-height:1.7}
.form-heading,.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.form-heading{margin-bottom:28px}
.form-heading h2,.panel-heading h3{margin:0;letter-spacing:-.04em}
.glass-form fieldset{display:grid;gap:14px;margin:0 0 22px;border:1px solid var(--line);border-radius:18px;padding:20px}
.glass-form legend{padding:0 8px;color:#34394a;font-size:.77rem;font-weight:700}
.glass-form label,.admin-panel label,.drawer-form label{display:grid;gap:7px;color:#555d6c;font-size:.73rem;font-weight:600}
.glass-form input,.glass-form textarea,.glass-form select,.admin-panel input,.admin-panel textarea,.admin-panel select,.drawer-form input,.drawer-form textarea,.drawer-form select{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px 13px;color:var(--ink);background:#fff;outline:none}
.glass-form input:focus,.admin-panel input:focus,.admin-panel textarea:focus,.admin-panel select:focus,.drawer-form input:focus,.drawer-form textarea:focus,.drawer-form select:focus{border-color:rgba(124,92,255,.6);box-shadow:0 0 0 4px rgba(124,92,255,.08)}
.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.install-form>.primary-action{width:100%;min-height:54px}
.install-key-form{max-width:520px}.install-key-form .primary-action{width:100%;margin-top:14px}
.form-errors p{margin:0}.form-errors p+p{margin-top:5px}

/* Library */
.library-shell{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:70px 0 100px}
.library-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;padding-bottom:42px;border-bottom:1px solid var(--line)}
.library-hero h1{margin:0;font-size:clamp(3rem,6vw,6.5rem);letter-spacing:-.07em;line-height:.96}
.library-hero>div>p:last-child{max-width:650px;color:var(--muted);font-size:1.02rem;line-height:1.7}
.library-count{display:grid;min-width:200px;justify-items:end}.library-count strong{font-size:4rem;letter-spacing:-.07em}.library-count span{color:var(--muted);font-size:.75rem}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:42px 0}
.product-card{overflow:hidden;border:1px solid var(--line);border-radius:25px;background:#fff;box-shadow:0 20px 55px rgba(20,25,39,.08);transition:.25s}
.product-card:hover{transform:translateY(-5px);box-shadow:0 28px 70px rgba(20,25,39,.13)}
.product-cover{position:relative;display:grid;height:290px;place-items:center;overflow:hidden;background:linear-gradient(145deg,#151b2b,var(--accent))}
.product-cover img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.03)}
.product-cover>span:not(.product-type){color:#fff;font-size:5rem;font-weight:800}
.cover-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(4,6,13,.82),transparent 70%)}
.product-type{position:absolute;left:18px;bottom:17px;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:7px 10px;color:#fff;background:rgba(8,11,19,.42);backdrop-filter:blur(12px);font-size:.64rem;font-weight:700}
.product-card-body{padding:24px}.product-card-body h2{margin:0;font-size:1.45rem;letter-spacing:-.04em}.product-card-body>p:not(.eyebrow){min-height:46px;color:var(--muted);font-size:.8rem;line-height:1.55}
.product-permissions{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0}.product-permissions span{border-radius:999px;padding:6px 9px;color:#36736c;background:#e9f7f4;font-size:.62rem;font-weight:700}
.product-card-body .primary-action{width:100%;margin-top:4px}
.empty-library{margin:42px 0;border:1px dashed rgba(124,92,255,.3);border-radius:25px;padding:80px 30px;text-align:center;background:rgba(255,255,255,.55)}
.empty-icon{font-size:2rem;color:var(--violet)}.empty-library h2{margin:15px 0 8px}.empty-library p{color:var(--muted)}
.redeem-panel{display:grid;grid-template-columns:1fr minmax(350px,.7fr);gap:50px;align-items:end;margin-top:28px;border-radius:25px;padding:35px;color:#fff;background:linear-gradient(125deg,#101625,#171329)}
.redeem-panel h2{margin:0}.redeem-panel p:not(.eyebrow){color:#aeb6c8;line-height:1.65}.redeem-panel form{display:flex;align-items:end;gap:10px}.redeem-panel label{display:grid;flex:1;gap:7px;color:#b4bdd0;font-size:.7rem}.redeem-panel input{height:47px;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:0 13px;color:#fff;background:rgba(255,255,255,.07)}

/* Admin */
.admin-page{background:#f3f4f8}
.admin-shell{display:grid;min-height:calc(100svh - 72px);grid-template-columns:270px minmax(0,1fr)}
.admin-sidebar{position:sticky;top:72px;display:flex;height:calc(100svh - 72px);flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);padding:36px 25px;background:#0b0f19;color:#fff}
.admin-sidebar h1{margin:0;font-size:1.55rem;letter-spacing:-.04em}.admin-sidebar>div>p:last-child{color:#8993a8;font-size:.74rem;line-height:1.6}
.admin-sidebar nav{display:grid;gap:6px;margin:30px 0 auto}.admin-sidebar nav a{border-radius:11px;padding:11px 13px;color:#939cb0;font-size:.78rem;font-weight:600}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{color:#07100e;background:linear-gradient(120deg,#6eeedd,#a58eff)}
.sidebar-library{border:1px solid rgba(255,255,255,.11);border-radius:11px;padding:11px 13px;color:#c5cada;font-size:.75rem;text-align:center}
.admin-main{min-width:0;padding:clamp(30px,5vw,70px)}
.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:30px}.admin-heading h2{max-width:850px;margin:0;font-size:clamp(2.5rem,5vw,5.2rem);letter-spacing:-.07em;line-height:.95}.admin-heading>div>p:last-child{color:var(--muted)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.metric-card{min-height:150px;border:1px solid var(--line);border-radius:19px;padding:23px;background:#fff;box-shadow:0 14px 40px rgba(19,23,36,.05)}.metric-card strong{display:block;font-size:2.7rem;letter-spacing:-.06em}.metric-card span{color:var(--muted);font-size:.72rem}
.admin-panel{border:1px solid var(--line);border-radius:20px;padding:24px;background:#fff;box-shadow:0 16px 45px rgba(18,23,38,.06)}
.panel-heading{margin-bottom:20px}.panel-heading h3{font-size:1.25rem}
.activity-list{display:grid}.activity-list>div{display:grid;grid-template-columns:13px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(102,234,220,.12)}.activity-list p{margin:0;font-size:.76rem}.activity-list time{color:var(--muted);font-size:.65rem}
.admin-grid{display:grid;gap:20px}.admin-grid.two-columns{grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr)}.sticky-panel{position:sticky;top:94px;align-self:start}
.admin-panel form,.admin-panel{font-size:.8rem}.admin-panel>label,.admin-panel form>label{margin-bottom:13px}
.check-field{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}.check-field input{width:18px!important;height:18px}
.admin-list{display:grid}.admin-list-row{position:relative;display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.admin-list-row:first-child{border-top:0}.avatar,.code-symbol{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#171e2d,#7c5cff);font-weight:800}.code-symbol{color:#19202c;background:#e5e7ef}
.grow{min-width:0;flex:1}.grow strong,.grow span,.grow small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grow strong{font-size:.78rem}.grow span{color:var(--muted);font-size:.68rem}.grow small{margin-top:3px;color:#8a91a0;font-size:.61rem}
.status-active,.status-published{color:#08715a;background:#e5f6f1}.status-draft{color:#8a6c12;background:#fbf3d7}.status-suspended,.status-revoked{color:#a9364b;background:#fde9ed}
.row-menu{position:relative}.row-menu>summary{cursor:pointer;list-style:none}.row-menu>div{position:absolute;z-index:20;right:0;top:28px;display:grid;width:230px;gap:10px;border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff;box-shadow:var(--shadow)}.row-menu form{display:grid;gap:7px}.row-menu button{border:0;border-radius:9px;padding:8px;background:#f1f2f6;text-align:left;font-size:.7rem}
.product-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.admin-product-card{position:relative;min-height:275px;border:1px solid var(--line);border-radius:21px;padding:22px;background:linear-gradient(145deg,#fff,#f7f7fb);box-shadow:0 14px 40px rgba(19,23,36,.05)}.admin-product-card:before{position:absolute;inset:0 0 auto;height:4px;border-radius:21px 21px 0 0;content:"";background:var(--accent)}.admin-product-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.admin-product-symbol{display:grid;width:48px;height:48px;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(145deg,#101726,var(--accent));font-size:1.2rem;font-weight:800}.admin-product-card h3{margin:0;font-size:1.2rem;letter-spacing:-.04em}.admin-product-card>p:not(.eyebrow){color:var(--muted);font-size:.72rem;line-height:1.55}
.admin-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.admin-card-actions>a,.admin-card-actions summary{display:inline-flex;cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:#fff;font-size:.67rem;font-weight:700;list-style:none}.admin-card-actions details[open]{position:static}.drawer-form{position:fixed;z-index:100;top:86px;right:18px;display:grid;width:min(520px,calc(100vw - 36px));max-height:calc(100svh - 104px);gap:12px;overflow:auto;border:1px solid var(--line);border-radius:20px;padding:24px;background:#fff;box-shadow:0 35px 100px rgba(18,22,34,.25)}
.create-project-form{max-width:980px;margin-top:22px}.create-project-form>label{margin-bottom:14px}
.new-code-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px;border:1px solid rgba(102,234,220,.4);border-radius:20px;padding:25px;color:#fff;background:linear-gradient(120deg,#101928,#14211f)}.new-code-card h3{margin:0;font-size:clamp(1.35rem,3vw,2.4rem);letter-spacing:.03em}.new-code-card p:last-child{margin-bottom:0;color:#9dabbc;font-size:.7rem}
.empty-table{color:var(--muted);font-size:.8rem}.access-row,.code-row{align-items:flex-start}

/* Generic reader */
.product-reader-shell{width:min(1100px,calc(100% - 48px));margin:0 auto;padding:55px 0 100px}.product-reader-hero{display:grid;grid-template-columns:1fr 260px;gap:60px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:45px}.product-reader-hero h1{margin:0;font-size:clamp(3rem,6vw,6rem);letter-spacing:-.07em;line-height:.95}.product-reader-hero>div>p:last-child{color:var(--muted);line-height:1.7}.product-reader-hero img{width:260px;height:310px;border-radius:22px;object-fit:cover;box-shadow:var(--shadow)}.back-link{display:inline-block;margin-bottom:35px;color:var(--muted);font-size:.72rem;font-weight:700}
.private-content{max-width:780px;margin:45px auto;color:#2c3140;font-size:1rem;line-height:1.9;white-space:normal}.download-library{margin-top:50px}.file-list{display:grid;gap:10px}.file-row{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}.file-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:12px;color:#fff;background:#171e2e;font-size:.55rem;font-weight:800}.file-row>div:nth-child(2){flex:1}.file-row strong,.file-row span{display:block}.file-row span{color:var(--muted);font-size:.65rem}
.reader-exit{position:fixed;z-index:9999;right:18px;top:17px;display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:9px 13px;color:#fff;background:rgba(9,12,20,.72);backdrop-filter:blur(18px);font-family:Poppins,sans-serif;font-size:.67rem;font-weight:700;box-shadow:0 10px 35px rgba(0,0,0,.25)}
.error-shell{display:grid;min-height:calc(100svh - 72px);place-content:center;justify-items:center;padding:30px;text-align:center}.error-shell>span{font-size:5rem;font-weight:800;color:var(--violet)}.error-shell h1{max-width:720px;margin:0;font-size:2.5rem;letter-spacing:-.05em}.error-shell p{max-width:580px;color:var(--muted)}.error-shell .primary-action{margin-top:15px}

@media(max-width:1100px){
  .login-experience{grid-template-columns:1fr 420px;padding-inline:30px}.login-message h1{font-size:4.6rem}
  .install-shell{grid-template-columns:1fr}.install-visual{min-height:560px}.install-form-panel{padding-block:45px}
  .product-grid,.product-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .site-header{min-height:64px}.user-chip,.header-actions>a:not(.ghost-button){display:none}
  .login-experience{display:flex;min-height:100svh;flex-direction:column;padding:24px}.login-message{padding:90px 0 50px}.login-message h1{font-size:clamp(3.2rem,12vw,5.5rem)}.login-card-wrap{justify-items:center;width:100%;margin-bottom:60px}.login-card{width:min(100%,540px)}.login-footer{margin-top:auto}
  .library-shell{width:min(100% - 30px,1320px);padding-top:42px}.library-hero{align-items:flex-start}.library-count{display:none}.product-grid{grid-template-columns:1fr 1fr}.redeem-panel{grid-template-columns:1fr}.redeem-panel form{align-items:stretch;flex-direction:column}
  .admin-shell{display:block}.admin-sidebar{position:relative;top:0;height:auto;padding:20px}.admin-sidebar>div,.sidebar-library{display:none}.admin-sidebar nav{display:flex;overflow-x:auto;margin:0}.admin-sidebar nav a{white-space:nowrap}.admin-main{padding:32px 20px}.admin-grid.two-columns{grid-template-columns:1fr}.sticky-panel{position:relative;top:0}.product-admin-grid{grid-template-columns:1fr 1fr}
  .product-reader-hero{grid-template-columns:1fr}.product-reader-hero img{display:none}
}
@media(max-width:600px){
  .brand>span:last-child{font-size:.67rem}.login-header .private-label{display:none}.login-experience{padding:20px}.login-message{padding:75px 0 35px}.login-message h1{font-size:3.25rem}.experience-points{display:none}.login-card{border-radius:23px;padding:27px 21px}.login-footer{gap:20px;flex-direction:column}
  .install-visual{min-height:500px;padding:28px 22px}.install-visual h1{font-size:3.5rem}.install-form-panel{padding:18px}.glass-form{border-radius:20px;padding:23px 18px}.form-grid.two,.form-grid.three{grid-template-columns:1fr}
  .header-actions{gap:8px}.site-header{padding:0 15px}.product-grid,.product-admin-grid,.metric-grid{grid-template-columns:1fr}.product-cover{height:330px}
  .library-hero h1{font-size:3.2rem}.library-shell{padding-bottom:60px}.redeem-panel{padding:24px}.admin-heading{align-items:flex-start;flex-direction:column}.admin-heading h2{font-size:3.3rem}
  .new-code-card{align-items:flex-start;flex-direction:column}.admin-list-row{align-items:flex-start;flex-wrap:wrap}.status{margin-left:auto}.drawer-form{top:75px}
  .product-reader-shell{width:min(100% - 28px,1100px);padding-top:35px}.product-reader-hero h1{font-size:3.2rem}.reader-exit span:last-child{display:none}
}

/* MONTS Cloud — interfaz luminosa 2026 */
:root{
  --bg:#f5f7ff;
  --surface:#fff;
  --ink:#182033;
  --muted:#697187;
  --line:rgba(64,76,112,.12);
  --violet:#6973f6;
  --cyan:#35cfc5;
  --shadow:0 28px 80px rgba(67,78,123,.14);
}

::selection{background:#6973f6;color:#fff}
.eyebrow{color:#5965ed}
.brand{color:#192137}
.brand-light{color:#192137}
.brand-mark{
  color:#fff;
  background:linear-gradient(145deg,#727af7 5%,#586bdf 46%,#32cfc4);
  box-shadow:0 12px 30px rgba(86,106,223,.25);
}
.primary-action{
  color:#fff;
  background:linear-gradient(120deg,#5b68e8,#697af6 55%,#34c9c0);
  box-shadow:0 14px 34px rgba(87,104,224,.23);
}
.primary-action:hover{box-shadow:0 18px 42px rgba(87,104,224,.31)}
.secure-chip{color:#32736f;background:rgba(51,205,195,.13)}

/* Instalación: una sola escena clara, fluida y centrada */
.install-page{
  color:var(--ink);
  background:#f2f6ff;
}
.install-shell{
  position:relative;
  isolation:isolate;
  display:grid;
  min-height:100svh;
  overflow:hidden auto;
  grid-template-columns:1fr;
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%,rgba(75,224,211,.40),transparent 27rem),
    radial-gradient(circle at 88% 12%,rgba(118,111,246,.38),transparent 31rem),
    radial-gradient(circle at 52% 105%,rgba(120,201,255,.48),transparent 36rem),
    linear-gradient(145deg,#eefbff 0%,#f7f4ff 48%,#edf5ff 100%);
}
.install-shell::before,
.install-shell::after{
  position:fixed;
  z-index:-1;
  width:34rem;
  height:34rem;
  border-radius:50%;
  content:"";
  opacity:.72;
  filter:blur(34px);
  animation:cloud-drift 16s ease-in-out infinite alternate;
  pointer-events:none;
}
.install-shell::before{
  top:-17rem;
  left:-8rem;
  background:linear-gradient(135deg,rgba(69,220,207,.56),rgba(98,170,255,.18));
}
.install-shell::after{
  right:-10rem;
  bottom:-20rem;
  background:linear-gradient(135deg,rgba(122,112,246,.46),rgba(83,211,220,.22));
  animation-delay:-7s;
}
@keyframes cloud-drift{
  to{transform:translate3d(28px,22px,0) scale(1.08)}
}
.install-visual{
  position:absolute;
  z-index:3;
  inset:0 0 auto;
  display:block;
  min-height:0;
  padding:30px clamp(24px,4vw,62px);
  border:0;
  background:none;
  pointer-events:none;
}
.install-visual .brand{pointer-events:auto}
.install-visual>div{
  position:absolute;
  top:104px;
  left:50%;
  width:min(820px,calc(100vw - 40px));
  transform:translateX(-50%);
  text-align:center;
}
.install-visual .eyebrow{margin-bottom:9px;color:#4a75a2}
.install-visual h1{
  max-width:none;
  margin:0;
  color:#151d31;
  font-size:clamp(2.25rem,4.2vw,4.7rem);
  font-weight:700;
  letter-spacing:-.065em;
  line-height:1;
}
.install-visual>div>p:last-child{
  max-width:610px;
  margin:17px auto 0;
  color:#68738a;
  font-size:.94rem;
  line-height:1.7;
}
.install-steps{display:none}
.install-form-panel{
  position:relative;
  z-index:2;
  display:grid;
  min-height:100svh;
  place-items:center;
  overflow:visible;
  padding:clamp(255px,32vh,320px) 22px 74px;
  color:var(--ink);
  background:transparent;
}
.install-form-panel:has(.install-form){
  align-items:start;
  padding-top:clamp(255px,29vh,300px);
}
.install-form-panel .glass-form{
  width:min(100%,760px);
  border:1px solid rgba(255,255,255,.82);
  border-radius:32px;
  padding:clamp(28px,4vw,48px);
  background:rgba(255,255,255,.72);
  box-shadow:
    0 34px 90px rgba(70,83,130,.16),
    inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter:blur(34px) saturate(1.25);
}
.install-form-panel .install-key-form{max-width:510px}
.install-form-panel .glass-form h2{
  color:#192137;
  font-size:clamp(1.65rem,3vw,2.15rem);
  font-weight:700;
  letter-spacing:-.045em;
}
.install-form-panel .glass-form>p:not(.eyebrow){color:#70798e}
.install-form-panel .glass-form fieldset{
  border-color:rgba(89,103,145,.12);
  background:rgba(255,255,255,.38);
}
.install-form-panel .glass-form input,
.install-form-panel .glass-form textarea,
.install-form-panel .glass-form select{
  min-height:48px;
  border-color:rgba(67,79,117,.13);
  border-radius:14px;
  background:rgba(255,255,255,.87);
  box-shadow:inset 0 1px 2px rgba(37,48,78,.025);
}
.install-form-panel .glass-form input:focus,
.install-form-panel .glass-form textarea:focus,
.install-form-panel .glass-form select:focus{
  border-color:rgba(91,104,232,.54);
  box-shadow:0 0 0 4px rgba(91,104,232,.09);
}
.install-form-panel .primary-action{
  min-height:54px;
  border-radius:16px;
}

/* Acceso: experiencia tipo nube, sin panel oscuro dividido */
.login-page{
  overflow-x:hidden;
  color:var(--ink);
  background:#f2f6ff;
}
.login-experience{
  position:relative;
  isolation:isolate;
  display:flex;
  min-height:100svh;
  overflow:hidden;
  align-items:center;
  flex-direction:column;
  padding:26px clamp(22px,4vw,60px);
  color:var(--ink);
  background:
    radial-gradient(circle at 11% 9%,rgba(67,220,208,.38),transparent 27rem),
    radial-gradient(circle at 88% 12%,rgba(121,111,246,.38),transparent 32rem),
    radial-gradient(circle at 50% 105%,rgba(113,199,255,.45),transparent 37rem),
    linear-gradient(145deg,#eefbff,#f8f4ff 50%,#edf5ff);
}
.login-grid{
  inset:-50%;
  opacity:.33;
  background-image:
    radial-gradient(circle,rgba(82,99,151,.16) 1px,transparent 1.3px);
  background-size:28px 28px;
  mask-image:radial-gradient(circle at 50% 45%,#000,transparent 47%);
}
.login-aurora{
  border:0;
  filter:blur(34px);
  opacity:.72;
}
.aurora-one{
  top:-20rem;
  right:-10rem;
  width:38rem;
  height:38rem;
  border:0;
  background:linear-gradient(135deg,rgba(115,106,244,.52),rgba(74,215,211,.18));
  box-shadow:none;
}
.aurora-two{
  bottom:-23rem;
  left:-10rem;
  width:40rem;
  height:40rem;
  border:0;
  background:linear-gradient(135deg,rgba(67,211,203,.55),rgba(101,155,249,.20));
}
.login-header{
  position:relative;
  z-index:3;
  display:flex;
  width:100%;
  grid-column:auto;
}
.private-label{
  border:1px solid rgba(255,255,255,.68);
  color:#536078;
  background:rgba(255,255,255,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
  backdrop-filter:blur(18px);
}
.login-message{
  position:relative;
  z-index:2;
  align-self:auto;
  width:min(820px,100%);
  max-width:none;
  padding:clamp(58px,8vh,94px) 20px 26px;
  text-align:center;
}
.login-message .eyebrow{color:#4d76a0}
.login-message h1{
  max-width:800px;
  margin:auto;
  color:#161e32;
  font-size:clamp(2.7rem,5vw,5.25rem);
  font-weight:700;
  letter-spacing:-.07em;
  line-height:.98;
}
.login-message>p:not(.eyebrow){
  max-width:590px;
  margin:19px auto 0;
  color:#69748a;
  font-size:clamp(.92rem,1.2vw,1.05rem);
  line-height:1.7;
}
.experience-points{
  justify-content:center;
  gap:8px;
  margin-top:22px;
}
.experience-points span{
  border:1px solid rgba(255,255,255,.72);
  color:#59657b;
  background:rgba(255,255,255,.44);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
  backdrop-filter:blur(16px);
}
.login-card-wrap{
  position:relative;
  z-index:2;
  display:grid;
  width:100%;
  align-self:auto;
  justify-items:center;
}
.login-card{
  width:min(100%,450px);
  border:1px solid rgba(255,255,255,.84);
  border-radius:32px;
  padding:clamp(28px,3.5vw,42px);
  color:var(--ink);
  background:rgba(255,255,255,.73);
  box-shadow:
    0 34px 90px rgba(70,83,130,.17),
    inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter:blur(34px) saturate(1.28);
}
.login-symbol{
  width:58px;
  height:58px;
  margin:0 auto 23px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:19px;
  background:linear-gradient(145deg,#737af7,#5f70e7 48%,#35cec4);
  box-shadow:0 16px 38px rgba(86,104,222,.23);
}
.login-symbol span{color:#fff}
.login-card .eyebrow{color:#5a68de;text-align:center}
.login-card h2{
  color:#182033;
  font-size:clamp(1.65rem,3vw,2.2rem);
  text-align:center;
}
.login-intro{
  margin:10px 0 25px;
  color:#70798e;
  text-align:center;
}
.floating-field{color:#566178}
.floating-field input{
  height:52px;
  border:1px solid rgba(69,81,119,.13);
  border-radius:14px;
  color:#182033;
  background:rgba(255,255,255,.86);
  box-shadow:inset 0 1px 2px rgba(37,48,78,.025);
}
.floating-field input:focus{
  border-color:rgba(91,104,232,.55);
  box-shadow:0 0 0 4px rgba(91,104,232,.09);
}
.password-field button{color:#59657a;background:rgba(92,105,145,.09)}
.login-submit{
  border-radius:16px;
  color:#fff;
  background:linear-gradient(120deg,#5b68e8,#6c7af5 55%,#33c9c0);
  box-shadow:0 15px 36px rgba(84,104,222,.23);
}
.login-submit:hover{box-shadow:0 20px 44px rgba(84,104,222,.30)}
.login-support{color:#828a9e}
.login-page .error-message,
.login-page .form-errors{
  border-color:rgba(205,67,91,.16);
  color:#a53349;
  background:rgba(255,237,241,.72);
}
.login-page .success-message{
  border-color:rgba(44,176,157,.18);
  color:#227c6f;
  background:rgba(231,250,246,.76);
}
.login-footer{
  position:relative;
  z-index:2;
  display:flex;
  width:100%;
  grid-column:auto;
  justify-content:space-between;
  margin-top:auto;
  padding-top:44px;
  color:#737e93;
}

/* El panel conserva la misma identidad luminosa */
.site-header{
  background:rgba(250,252,255,.76);
  backdrop-filter:blur(26px) saturate(1.25);
}
.admin-page,
.library-page{background:linear-gradient(145deg,#f8fbff,#f6f5ff)}
.admin-sidebar{
  border-right:1px solid rgba(67,80,117,.11);
  color:#1a2235;
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(24px);
}
.admin-sidebar>div>p:last-child{color:#737d91}
.admin-sidebar nav a{color:#687389}
.admin-sidebar nav a:hover,
.admin-sidebar nav a.active{
  color:#fff;
  background:linear-gradient(120deg,#5c69e8,#6d79f3 55%,#33c9c0);
}
.sidebar-library{
  border-color:rgba(71,84,124,.13);
  color:#536078;
  background:rgba(255,255,255,.56);
}

@media(max-width:850px){
  .install-visual>div{top:94px}
  .install-form-panel{padding-top:245px}
  .install-form-panel:has(.install-form){padding-top:245px}
  .login-message{padding-top:58px}
  .login-card-wrap{width:100%;margin-bottom:42px}
}
@media(max-width:600px){
  .install-visual{padding:20px}
  .install-visual>div{top:82px}
  .install-visual h1{font-size:2.45rem}
  .install-visual>div>p:last-child{display:none}
  .install-form-panel,
  .install-form-panel:has(.install-form){padding:205px 14px 30px}
  .install-form-panel .glass-form{border-radius:25px;padding:24px 18px}
  .login-experience{padding:20px 15px}
  .login-message{padding:50px 4px 22px}
  .login-message h1{font-size:2.75rem}
  .login-message>p:not(.eyebrow){font-size:.88rem}
  .login-card{border-radius:25px;padding:26px 19px}
  .login-footer{gap:8px;align-items:center;flex-direction:column;padding-top:22px;text-align:center}
}

/* Monts Studio Tech — identidad blanco + verde limón */
:root{
  --lime:#c9ff3d;
  --lime-bright:#baff20;
  --lime-soft:#efffc8;
  --tech-ink:#0d120e;
  --tech-muted:#647064;
  --tech-line:rgba(18,35,21,.11);
}

.brand-mark{
  color:#10170e;
  background:linear-gradient(145deg,#e9ff9f 4%,var(--lime) 48%,#9ee900);
  box-shadow:0 12px 32px rgba(154,221,0,.27);
}
.primary-action{
  color:#11170f;
  background:linear-gradient(120deg,#dfff7f,var(--lime) 52%,#a9ec00);
  box-shadow:0 14px 34px rgba(146,211,0,.22);
}
.primary-action:hover{box-shadow:0 18px 44px rgba(146,211,0,.3)}
.eyebrow{color:#5e7f13}
.secure-chip{color:#506e0e;background:#efffc9}

/* Sitio corporativo público */
.public-home-page{
  color:var(--tech-ink);
  background:#f7f9f3;
}
.tech-site{
  position:relative;
  isolation:isolate;
  min-height:100svh;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 8%,rgba(201,255,61,.34),transparent 26rem),
    radial-gradient(circle at 5% 30%,rgba(201,255,61,.16),transparent 24rem),
    #f9fbf6;
}
.tech-orb{
  position:absolute;
  z-index:-1;
  border-radius:50%;
  pointer-events:none;
  filter:blur(12px);
}
.tech-orb-one{
  top:70px;
  right:-210px;
  width:620px;
  height:620px;
  border:1px solid rgba(156,220,0,.18);
  background:radial-gradient(circle at 38% 35%,rgba(239,255,193,.93),rgba(201,255,61,.38) 45%,rgba(255,255,255,0) 72%);
  animation:tech-float 14s ease-in-out infinite alternate;
}
.tech-orb-two{
  top:580px;
  left:-180px;
  width:420px;
  height:420px;
  background:radial-gradient(circle,rgba(201,255,61,.24),rgba(201,255,61,0) 70%);
  animation:tech-float 18s ease-in-out -6s infinite alternate-reverse;
}
@keyframes tech-float{to{transform:translate3d(24px,30px,0) scale(1.06)}}
.tech-header{
  position:relative;
  z-index:20;
  display:grid;
  width:min(1500px,calc(100% - 64px));
  min-height:92px;
  align-items:center;
  margin:auto;
  grid-template-columns:1fr auto 1fr;
  border-bottom:1px solid var(--tech-line);
}
.tech-brand{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  gap:11px;
  color:#111611;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.15em;
}
.tech-brand b{color:#6d920d;font-weight:800}
.tech-brand-mark{
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border-radius:13px;
  color:#111710;
  background:linear-gradient(145deg,#f1ffc5,var(--lime) 55%,#a9ec00);
  box-shadow:0 12px 30px rgba(139,201,0,.22);
  font-size:1rem;
  font-weight:800;
  letter-spacing:0;
}
.tech-nav{display:flex;align-items:center;gap:34px}
.tech-nav a{
  color:#667064;
  font-size:.72rem;
  font-weight:600;
  transition:.2s ease;
}
.tech-nav a:hover{color:#111711}
.tech-access{
  display:inline-flex;
  min-height:43px;
  align-items:center;
  justify-self:end;
  gap:14px;
  border:1px solid rgba(19,35,21,.12);
  border-radius:999px;
  padding:0 16px 0 18px;
  background:rgba(255,255,255,.66);
  box-shadow:inset 0 1px 0 #fff,0 9px 28px rgba(28,44,27,.06);
  backdrop-filter:blur(18px);
  font-size:.69rem;
  font-weight:700;
  transition:.2s ease;
}
.tech-access span{
  display:grid;
  width:24px;
  height:24px;
  place-items:center;
  border-radius:50%;
  background:var(--lime);
}
.tech-access:hover{transform:translateY(-2px);box-shadow:0 13px 32px rgba(28,44,27,.1)}
.tech-hero{
  position:relative;
  z-index:2;
  display:grid;
  width:min(1500px,calc(100% - 64px));
  min-height:calc(100svh - 92px);
  align-items:center;
  margin:auto;
  padding:70px 0 95px;
  grid-template-columns:minmax(0,1.02fr) minmax(480px,.98fr);
  gap:55px;
}
.tech-hero-copy{max-width:850px}
.tech-kicker{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
  color:#667062;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.tech-kicker span{
  width:24px;
  height:7px;
  border-radius:999px;
  background:var(--lime);
  box-shadow:0 0 0 5px rgba(201,255,61,.19);
}
.tech-hero h1{
  max-width:900px;
  margin:0;
  color:#0b100c;
  font-size:clamp(4.2rem,7.3vw,8.6rem);
  font-weight:700;
  letter-spacing:-.078em;
  line-height:.87;
}
.tech-hero h1 em{
  position:relative;
  color:#6b8f10;
  font-style:normal;
}
.tech-hero h1 em::after{
  position:absolute;
  z-index:-1;
  right:-.04em;
  bottom:.03em;
  left:-.01em;
  height:.18em;
  border-radius:999px;
  content:"";
  background:var(--lime);
  opacity:.68;
}
.tech-lead{
  max-width:690px;
  margin:31px 0 0;
  color:#5f695f;
  font-size:clamp(.98rem,1.35vw,1.18rem);
  line-height:1.8;
}
.tech-hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:33px}
.tech-primary,.tech-secondary{
  display:inline-flex;
  min-height:53px;
  align-items:center;
  justify-content:center;
  gap:25px;
  border-radius:16px;
  padding:0 20px;
  font-size:.77rem;
  font-weight:700;
  transition:.2s ease;
}
.tech-primary{
  color:#11170f;
  background:linear-gradient(120deg,#dfff7e,var(--lime) 55%,#b2ed16);
  box-shadow:0 16px 38px rgba(141,204,0,.22);
}
.tech-primary span{font-size:1.05rem}
.tech-primary:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(141,204,0,.3)}
.tech-secondary{
  border:1px solid var(--tech-line);
  background:rgba(255,255,255,.7);
}
.tech-secondary:hover{transform:translateY(-2px);background:#fff}
.tech-hero-stage{
  position:relative;
  height:min(610px,68vw);
  min-height:500px;
  perspective:1000px;
}
.tech-stage-glow{
  position:absolute;
  top:50%;
  left:50%;
  width:440px;
  height:440px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(159,220,11,.21);
  border-radius:50%;
  background:
    radial-gradient(circle at 36% 28%,rgba(255,255,255,.96),rgba(221,255,132,.68) 38%,rgba(201,255,61,.21) 64%,transparent 71%);
  box-shadow:0 40px 100px rgba(130,189,0,.16),inset 0 0 80px rgba(255,255,255,.65);
}
.tech-stage-glow::before,
.tech-stage-glow::after{
  position:absolute;
  inset:32px;
  border:1px solid rgba(135,190,10,.14);
  border-radius:50%;
  content:"";
}
.tech-stage-glow::after{inset:82px;border-style:dashed}
.tech-core{
  position:absolute;
  z-index:3;
  top:50%;
  left:50%;
  display:flex;
  width:230px;
  height:230px;
  align-items:center;
  justify-content:center;
  transform:translate(-50%,-50%);
  flex-direction:column;
  border:1px solid rgba(255,255,255,.9);
  border-radius:58px;
  background:rgba(255,255,255,.62);
  box-shadow:0 35px 75px rgba(84,111,40,.16),inset 0 1px 0 #fff;
  backdrop-filter:blur(28px) saturate(1.2);
}
.tech-core span{font-size:2.15rem;font-weight:800;letter-spacing:.15em}
.tech-core strong{color:#6b7512;font-size:.67rem;letter-spacing:.18em;text-transform:uppercase}
.tech-core i{
  position:absolute;
  right:26px;
  bottom:26px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--lime);
  box-shadow:0 0 0 8px rgba(201,255,61,.23);
}
.tech-float-card{
  position:absolute;
  z-index:5;
  display:flex;
  min-width:210px;
  align-items:center;
  gap:12px;
  border:1px solid rgba(255,255,255,.88);
  border-radius:20px;
  padding:13px;
  background:rgba(255,255,255,.68);
  box-shadow:0 22px 55px rgba(49,66,45,.13),inset 0 1px 0 #fff;
  backdrop-filter:blur(24px);
  animation:float-card 6s ease-in-out infinite alternate;
}
@keyframes float-card{to{transform:translateY(-12px) rotate(.8deg)}}
.tech-card-apps{top:13%;left:0;transform:rotate(-4deg)}
.tech-card-web{top:24%;right:-2%;transform:rotate(4deg);animation-delay:-2s}
.tech-card-editorial{right:10%;bottom:8%;transform:rotate(-2deg);animation-delay:-4s}
.tech-card-icon{
  display:grid;
  width:48px;
  height:48px;
  flex:none;
  place-items:center;
  border-radius:15px;
  color:#101710;
  background:var(--lime);
  font-size:.9rem;
  font-weight:800;
}
.tech-float-card small,.tech-float-card strong{display:block}
.tech-float-card small{color:#768073;font-size:.53rem;font-weight:700;letter-spacing:.11em}
.tech-float-card strong{margin-top:3px;font-size:.79rem}
.tech-trust{
  display:flex;
  width:min(1500px,calc(100% - 64px));
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:auto;
  border-top:1px solid var(--tech-line);
  border-bottom:1px solid var(--tech-line);
  padding:22px 0;
  color:#747d71;
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.13em;
}
.tech-trust span+span::before{margin-right:clamp(20px,4vw,70px);color:#a8cf45;content:"•"}
.tech-section{
  width:min(1500px,calc(100% - 64px));
  margin:auto;
  padding:150px 0;
}
.tech-section-heading{
  display:grid;
  margin-bottom:55px;
  grid-template-columns:minmax(0,1fr) minmax(300px,.56fr);
  gap:20px 70px;
  align-items:end;
}
.tech-section-heading .tech-kicker{grid-column:1/-1;margin-bottom:0}
.tech-section-heading h2{
  max-width:900px;
  margin:0;
  font-size:clamp(3.1rem,5.6vw,6.8rem);
  letter-spacing:-.07em;
  line-height:.94;
}
.tech-section-heading>p:last-child{margin:0;color:#667064;line-height:1.8}
.tech-service-grid{
  display:grid;
  grid-template-columns:1.18fr .91fr .91fr;
  gap:18px;
}
.tech-service-card{
  position:relative;
  min-height:430px;
  overflow:hidden;
  border:1px solid var(--tech-line);
  border-radius:32px;
  padding:30px;
  background:rgba(255,255,255,.76);
  box-shadow:0 22px 60px rgba(44,62,40,.07);
}
.tech-service-featured{
  color:#10150f;
  background:linear-gradient(145deg,#efffc7,var(--lime) 62%,#b7f21c);
  box-shadow:0 28px 75px rgba(136,194,0,.18);
}
.tech-service-number{color:#778172;font-size:.64rem;font-weight:700;letter-spacing:.12em}
.tech-service-card h3{
  position:absolute;
  right:30px;
  bottom:102px;
  left:30px;
  margin:0;
  font-size:clamp(1.55rem,2.4vw,2.5rem);
  letter-spacing:-.05em;
}
.tech-service-card>p{
  position:absolute;
  right:30px;
  bottom:49px;
  left:30px;
  margin:0;
  color:#667064;
  font-size:.72rem;
  line-height:1.65;
}
.tech-service-featured>p{color:#52620f}
.tech-tags{
  position:absolute;
  right:30px;
  bottom:22px;
  left:30px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.tech-tags span{font-size:.48rem;font-weight:800;letter-spacing:.1em}
.tech-service-symbol{
  display:grid;
  height:170px;
  place-items:center;
  margin-top:25px;
  border:1px solid var(--tech-line);
  border-radius:24px;
  color:#71930f;
  background:linear-gradient(145deg,#fbfff5,#f0ffd1);
  font-size:2.8rem;
  font-weight:700;
  letter-spacing:-.08em;
}
.tech-service-visual{
  position:relative;
  height:190px;
  margin-top:18px;
}
.tech-service-visual span{
  position:absolute;
  left:50%;
  width:160px;
  height:102px;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.78);
  border-radius:24px;
  background:rgba(255,255,255,.48);
  box-shadow:0 18px 45px rgba(78,107,18,.12);
}
.tech-service-visual span:nth-child(1){top:4px;transform:translateX(-72%) rotate(-8deg)}
.tech-service-visual span:nth-child(2){top:35px;z-index:2}
.tech-service-visual span:nth-child(3){top:66px;transform:translateX(-28%) rotate(8deg)}
.tech-projects{
  padding:140px max(32px,calc((100vw - 1500px)/2));
  color:#f9fff3;
  background:
    radial-gradient(circle at 85% 10%,rgba(201,255,61,.2),transparent 30rem),
    #10160f;
}
.tech-heading-light .tech-kicker,
.tech-heading-light>p:last-child{color:#9ca99a}
.tech-heading-light .tech-kicker span{background:var(--lime)}
.tech-project-showcase{border-top:1px solid rgba(255,255,255,.14)}
.tech-project-showcase article{
  display:grid;
  min-height:170px;
  align-items:center;
  grid-template-columns:80px minmax(0,1fr) 55px;
  border-bottom:1px solid rgba(255,255,255,.14);
  transition:.25s ease;
}
.tech-project-showcase article:hover{
  padding-inline:20px;
  color:#10160f;
  background:var(--lime);
}
.tech-project-showcase>article>span{color:#8e998c;font-size:.62rem}
.tech-project-showcase small{color:#8e998c;font-size:.56rem;font-weight:700;letter-spacing:.12em}
.tech-project-showcase h3{max-width:950px;margin:7px 0 0;font-size:clamp(1.45rem,3vw,3.4rem);letter-spacing:-.05em}
.tech-project-showcase i{
  display:grid;
  width:48px;
  height:48px;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  font-style:normal;
}
.tech-project-showcase article:hover i{border-color:rgba(16,22,15,.2);background:rgba(255,255,255,.4)}
.tech-manifesto{
  display:grid;
  width:min(1350px,calc(100% - 64px));
  align-items:center;
  margin:auto;
  padding:150px 0;
  grid-template-columns:300px 1fr;
  gap:80px;
}
.tech-manifesto-mark{
  display:grid;
  width:260px;
  height:260px;
  place-items:center;
  border-radius:72px;
  background:linear-gradient(145deg,#efffc0,var(--lime) 53%,#a9e900);
  box-shadow:0 38px 85px rgba(135,194,0,.22);
  font-size:6rem;
  font-weight:800;
}
.tech-manifesto h2{
  max-width:980px;
  margin:0;
  font-size:clamp(3rem,5vw,6rem);
  letter-spacing:-.07em;
  line-height:.96;
}
.tech-manifesto>div:last-child>p:last-child{max-width:800px;color:#677166;line-height:1.8}
.tech-footer{
  display:grid;
  width:min(1500px,calc(100% - 64px));
  min-height:130px;
  align-items:center;
  margin:auto;
  grid-template-columns:1fr auto 1fr;
  border-top:1px solid var(--tech-line);
  color:#788175;
  font-size:.65rem;
}
.tech-footer>span{justify-self:end}

/* Login de proyectos y panel, inspirado en la sencillez de iCloud */
.login-page{
  color:var(--tech-ink);
  background:#f7fbf1;
}
.login-experience{
  display:flex;
  min-height:100svh;
  align-items:center;
  flex-direction:column;
  padding:26px clamp(22px,4vw,60px);
  color:var(--tech-ink);
  background:
    radial-gradient(circle at 12% 8%,rgba(220,255,128,.9),transparent 25rem),
    radial-gradient(circle at 88% 11%,rgba(178,241,26,.58),transparent 31rem),
    radial-gradient(circle at 50% 112%,rgba(238,255,193,.94),transparent 38rem),
    linear-gradient(145deg,#fbfff8,#f2f8ea 50%,#fbfff7);
}
.login-grid{
  opacity:.28;
  background-image:radial-gradient(circle,rgba(73,104,24,.17) 1px,transparent 1.4px);
  background-size:29px 29px;
}
.aurora-one{
  top:-21rem;
  right:-11rem;
  border:0;
  background:linear-gradient(135deg,rgba(201,255,61,.74),rgba(255,255,255,.12));
}
.aurora-two{
  bottom:-24rem;
  left:-12rem;
  border:0;
  background:linear-gradient(135deg,rgba(221,255,132,.78),rgba(157,224,0,.14));
}
.private-label{
  color:#586750;
  background:rgba(255,255,255,.52);
}
.login-message{
  width:min(760px,100%);
  padding:clamp(45px,7vh,74px) 20px 22px;
}
.login-message .eyebrow{color:#648414}
.login-message h1{
  color:#101610;
  font-size:clamp(2.35rem,4.5vw,4.65rem);
  letter-spacing:-.065em;
}
.login-message>p:not(.eyebrow){color:#657060}
.experience-points span{
  color:#596654;
  background:rgba(255,255,255,.52);
}
.login-card{
  width:min(100%,435px);
  border:1px solid rgba(255,255,255,.9);
  border-radius:34px;
  color:var(--tech-ink);
  background:rgba(255,255,255,.76);
  box-shadow:0 34px 90px rgba(67,91,41,.16),inset 0 1px 0 #fff;
  backdrop-filter:blur(34px) saturate(1.25);
}
.login-symbol{
  color:#11170f;
  background:linear-gradient(145deg,#edffaf,var(--lime) 50%,#a9e900);
  box-shadow:0 16px 38px rgba(138,199,0,.23);
}
.login-symbol span{color:#11170f}
.login-card .eyebrow{color:#698b14}
.login-card h2{color:#111711}
.login-intro{color:#717b6d}
.floating-field{color:#53604f}
.floating-field input{
  border-color:rgba(47,69,42,.13);
  color:#121811;
  background:rgba(255,255,255,.9);
}
.floating-field input:focus{
  border-color:rgba(139,199,0,.6);
  box-shadow:0 0 0 4px rgba(201,255,61,.23);
}
.login-submit{
  color:#11170f;
  background:linear-gradient(120deg,#e1ff84,var(--lime) 55%,#afea16);
  box-shadow:0 15px 36px rgba(137,199,0,.23);
}
.login-submit:hover{box-shadow:0 20px 44px rgba(137,199,0,.3)}
.login-support,.login-footer{color:#75816f}

/* Instalador discreto del sistema, separado de la web pública */
.install-page{color:var(--tech-ink);background:#f7fbf1}
.install-shell{
  color:var(--tech-ink);
  background:
    radial-gradient(circle at 12% 8%,rgba(221,255,129,.86),transparent 27rem),
    radial-gradient(circle at 88% 12%,rgba(180,241,27,.56),transparent 31rem),
    linear-gradient(145deg,#fbfff8,#f0f8e8 55%,#fbfff6);
}
.install-shell::before{background:linear-gradient(135deg,rgba(201,255,61,.64),rgba(255,255,255,.15))}
.install-shell::after{background:linear-gradient(135deg,rgba(178,237,31,.4),rgba(231,255,167,.3))}
.install-visual .eyebrow{color:#688717}
.install-visual h1{color:#101610}
.install-visual>div>p:last-child{color:#657060}
.install-form-panel .glass-form{
  border-color:rgba(255,255,255,.9);
  background:rgba(255,255,255,.76);
  box-shadow:0 34px 90px rgba(67,91,41,.15),inset 0 1px 0 #fff;
}
.install-form-panel .glass-form h2{color:#111711}
.install-form-panel .glass-form>p:not(.eyebrow){color:#6a7566}
.install-form-panel .glass-form input:focus,
.install-form-panel .glass-form textarea:focus,
.install-form-panel .glass-form select:focus{
  border-color:rgba(139,199,0,.6);
  box-shadow:0 0 0 4px rgba(201,255,61,.21);
}

/* Panel privado con la misma identidad, sin mezclarlo con la portada */
.site-header{background:rgba(250,253,247,.8)}
.admin-page,.library-page{background:linear-gradient(145deg,#fbfdf9,#f5faee)}
.admin-sidebar{
  color:#172016;
  background:rgba(251,254,248,.88);
}
.admin-sidebar nav a:hover,
.admin-sidebar nav a.active{
  color:#11170f;
  background:linear-gradient(120deg,#e2ff86,var(--lime) 55%,#afea16);
}
.admin-product-card:before{background:var(--lime)!important}

@media(max-width:1150px){
  .tech-header{grid-template-columns:1fr auto}.tech-nav{display:none}
  .tech-hero{grid-template-columns:1fr;padding-top:100px}
  .tech-hero-copy{max-width:1000px}
  .tech-hero-stage{width:min(720px,100%);margin:auto}
  .tech-service-grid{grid-template-columns:1fr 1fr}
  .tech-service-featured{grid-column:1/-1}
}
@media(max-width:800px){
  .tech-header,.tech-hero,.tech-trust,.tech-section,.tech-manifesto,.tech-footer{width:min(100% - 34px,1500px)}
  .tech-header{min-height:78px}
  .tech-brand{font-size:.62rem;letter-spacing:.1em}
  .tech-access{min-height:39px;padding-inline:13px}.tech-access span{display:none}
  .tech-hero{min-height:auto;padding:82px 0 70px;gap:25px}
  .tech-hero h1{font-size:clamp(3.8rem,14vw,6.8rem)}
  .tech-hero-stage{height:520px;min-height:0}
  .tech-trust{overflow:hidden;justify-content:flex-start;white-space:nowrap}
  .tech-section{padding:95px 0}
  .tech-section-heading{grid-template-columns:1fr}.tech-section-heading>p:last-child{max-width:680px}
  .tech-service-grid{grid-template-columns:1fr}.tech-service-featured{grid-column:auto}
  .tech-projects{padding:95px 18px}
  .tech-project-showcase article{grid-template-columns:45px minmax(0,1fr) 45px}
  .tech-manifesto{padding:100px 0;grid-template-columns:1fr;gap:45px}
  .tech-manifesto-mark{width:180px;height:180px;border-radius:50px;font-size:4rem}
  .tech-footer{grid-template-columns:1fr;gap:16px;padding:35px 0}.tech-footer>span{justify-self:start}
}
@media(max-width:560px){
  .tech-brand>span:last-child{max-width:130px;line-height:1.25}
  .tech-access{font-size:.6rem}
  .tech-hero{padding-top:65px}
  .tech-hero h1{font-size:3.65rem}
  .tech-lead{font-size:.9rem}
  .tech-hero-stage{height:400px}
  .tech-stage-glow{width:310px;height:310px}
  .tech-core{width:170px;height:170px;border-radius:44px}.tech-core span{font-size:1.55rem}
  .tech-float-card{min-width:150px;border-radius:16px;padding:9px}
  .tech-card-icon{width:38px;height:38px;border-radius:12px}
  .tech-float-card strong{font-size:.63rem}.tech-float-card small{font-size:.43rem}
  .tech-card-apps{top:6%}.tech-card-web{top:27%}.tech-card-editorial{right:2%;bottom:5%}
  .tech-trust{font-size:.49rem}
  .tech-section-heading h2,.tech-manifesto h2{font-size:3rem}
  .tech-service-card{min-height:420px;padding:23px}.tech-service-card h3{right:23px;left:23px}
  .tech-service-card>p,.tech-tags{right:23px;left:23px}
  .tech-project-showcase article{min-height:145px;grid-template-columns:32px minmax(0,1fr) 38px}
  .tech-project-showcase h3{font-size:1.35rem}
  .tech-project-showcase i{width:36px;height:36px}
  .login-message{padding-top:45px}.login-message h1{font-size:2.45rem}
  .experience-points{display:none}
}
