body{background:var(--paper)}.portal-main{min-height:100vh}.demobar{background:var(--ink);color:#C3C8D0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;display:flex;align-items:center;gap:14px;padding:8px 18px;flex-wrap:wrap}.demobar .lbl{color:var(--gold-soft);text-transform:uppercase;letter-spacing:.12em}.demobar .seg{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap}.demobar button{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:#C3C8D0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:5px 11px;cursor:pointer}.demobar button:hover{background:rgba(255,255,255,.14);color:#fff}.demobar button.on{background:var(--gold);border-color:var(--gold);color:#1c1708}.phead{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:rgba(244,241,234,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}html.dark .phead{background:rgba(20,24,31,.9)}.phead .row{display:flex;align-items:center;justify-content:space-between;height:74px;gap:18px}.phead .wm{font-size:26px}.phead nav{display:flex;align-items:center;gap:22px}.phead nav a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);cursor:pointer}.phead nav a.active,.phead nav a:hover{color:var(--ink)}html.dark .phead nav a.active,html.dark .phead nav a:hover{color:#fff}.crumb{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.usermenu{gap:14px}.avatar,.usermenu{display:flex;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:var(--gold);color:#1c1708;justify-content:center;font-family:var(--grotesk);font-weight:700;font-size:13px}.view{display:none}.view.active{display:block;animation:pfade .35s ease}@keyframes pfade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.auth-wrap{min-height:calc(100vh - 36px);display:grid;grid-template-columns:1.1fr .9fr}@media(max-width:860px){.auth-wrap{grid-template-columns:1fr;min-height:auto}}.auth-aside{background:var(--ink);color:var(--paper);padding:64px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-aside .wm{font-size:34px;color:var(--paper)}.auth-aside .wm .dot{background:var(--gold)}.auth-aside h2{color:#fff;font-size:clamp(28px,3vw,40px);margin-top:28px;max-width:16ch}.auth-aside p{color:#C3C8D0;font-size:15px;max-width:40ch;margin-top:16px}.auth-aside .tex{position:absolute;inset:0;opacity:.05;background:repeating-linear-gradient(135deg,#fff 0 1px,transparent 1px 22px);pointer-events:none}.auth-aside .feat{display:flex;flex-direction:column;gap:12px;margin-top:30px}.auth-aside .feat span{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--gold-soft);display:flex;gap:10px;align-items:center}.auth-aside .feat span:before{content:"—";color:var(--gold)}.auth-form{padding:64px 56px;display:flex;flex-direction:column;justify-content:center;max-width:520px}@media(max-width:640px){.auth-aside,.auth-form{padding:44px 26px}}.auth-form .kicker{margin-bottom:10px}.auth-form h1{font-size:clamp(30px,4vw,44px);margin-bottom:6px}.auth-form .sub{color:var(--slate);font-size:15px;margin-bottom:30px}.field{margin-bottom:18px}.field label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.field input{width:100%;font-family:var(--grotesk);font-size:15px;padding:13px 14px;border:1px solid var(--line);background:var(--canvas);color:var(--ink)}.field input:focus{outline:none;border-color:var(--gold)}.auth-form .row-between{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--slate);margin-bottom:24px}.auth-form .row-between a{color:var(--gold-deep);cursor:pointer}.demo-hint{font-family:var(--mono);font-size:11px;line-height:1.7;color:var(--gold-deep);background:var(--canvas);border:1px solid var(--gold-soft);padding:12px 14px;margin-top:22px}.demo-hint b{color:var(--ink)}html.dark .demo-hint b{color:#E9E5DC}.switch-auth{font-size:13px;color:var(--slate);margin:16px 0 0}.switch-auth a{color:var(--gold-deep);cursor:pointer;font-weight:600}.switch-auth a:hover{color:var(--ink)}html.dark .switch-auth a:hover{color:#fff}.section-pad{padding:38px 0 80px}.gal-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:8px}.gal-head h1{font-size:clamp(30px,4vw,46px)}.gal-meta{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);margin-top:8px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:24px 0;padding-bottom:18px;border-bottom:1px solid var(--line)}.tabs{gap:4px}.tab,.tabs{display:flex}.tab{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);background:transparent;border:1px solid var(--line);padding:9px 15px;cursor:pointer;align-items:center;gap:8px}.tab:hover{border-color:var(--gold)}.tab.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tab .ct{font-size:10px;opacity:.6}.toolbar .spacer{margin-left:auto}.layout-toggle{display:flex;gap:2px;border:1px solid var(--line)}.layout-toggle button{background:transparent;border:0;padding:8px 12px;cursor:pointer;color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.layout-toggle button.on{background:var(--gold);color:#1c1708}.btn-sm{font-family:var(--grotesk);font-weight:700;font-size:12px;padding:9px 16px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}.btn-sm:hover{background:var(--ink);color:var(--paper)}.btn-sm.gold{background:var(--gold);border-color:var(--gold);color:#1c1708}.btn-sm.gold:hover{background:var(--gold-deep);color:#fff}.btn-sm:disabled{opacity:.4;cursor:default}.mgrid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,1fr)}@media(max-width:980px){.mgrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:680px){.mgrid{grid-template-columns:repeat(2,1fr)}}.mgrid.mag{grid-auto-flow:dense}.mgrid.mag .mcard:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.mgrid.mag .mcard:nth-child(7n+4){grid-column:span 2}@media(max-width:680px){.mgrid.mag .mcard:nth-child(7n+1){grid-column:span 2;grid-row:auto}.mgrid.mag .mcard:nth-child(7n+4){grid-column:span 2}}.mcard{position:relative;background:var(--sand);overflow:hidden;cursor:pointer;aspect-ratio:4/5}.mgrid.mag .mcard{aspect-ratio:auto;min-height:200px}.mcard .ph{position:absolute;inset:0;background:linear-gradient(135deg,var(--stone),var(--sand));display:flex;align-items:center;justify-content:center}.mcard.ink .ph{background:linear-gradient(135deg,#2A2F3A,#1A1E26)}.mcard .ph .ico{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:rgba(26,30,38,.4);text-transform:uppercase}.mcard.ink .ph .ico{color:rgba(255,255,255,.45)}.mcard .tagtype{top:10px;left:10px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;background:rgba(244,241,234,.9);color:var(--ink);padding:4px 8px}.mcard .dur,.mcard .tagtype{position:absolute;font-family:var(--mono)}.mcard .dur{bottom:10px;right:10px;font-size:10px;background:rgba(26,30,38,.8);color:#fff;padding:3px 7px}.mcard .selbox{position:absolute;top:10px;right:10px;width:24px;height:24px;border:1.5px solid #fff;background:rgba(26,30,38,.35);border-radius:3px;display:flex;align-items:center;justify-content:center;color:transparent}.mcard.sel .selbox{background:var(--gold);border-color:var(--gold);color:#1c1708;font-size:14px}.mcard.sel{outline:3px solid var(--gold);outline-offset:-3px}.mcard .ovbar{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;background:linear-gradient(transparent,rgba(26,30,38,.8));color:#fff;font-size:12px;opacity:0;transition:opacity .2s;display:flex;justify-content:space-between;align-items:center}.mcard:hover .ovbar{opacity:1}.mcard .ovbar .nm{font-family:var(--mono);font-size:10px;letter-spacing:.04em}.selbar{position:-webkit-sticky;position:sticky;bottom:0;z-index:30;background:var(--ink);color:#fff;display:flex;align-items:center;gap:16px;padding:14px 22px;margin-top:24px;box-shadow:0 -8px 30px rgba(0,0,0,.2);transform:translateY(120%);transition:transform .3s}.selbar.show{transform:none}.selbar .cnt{font-family:var(--mono);font-size:12px;letter-spacing:.06em}.selbar .cnt b{color:var(--gold-soft)}.selbar .spacer{margin-left:auto}.shop-banner{background:var(--ink);color:#fff;padding:22px 26px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:22px 0}.shop-banner .bg-ico{font-family:var(--serif);font-size:30px;color:var(--gold-soft)}.shop-banner h4{font-family:var(--serif);font-weight:400;font-size:21px;margin:0}.shop-banner p{font-size:13px;color:#C3C8D0;margin:3px 0 0}.shop-banner .spacer{margin-left:auto}.watermark{position:absolute;inset:0;pointer-events:none;overflow:hidden}.watermark:before{content:"leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW  ·  leo bruni.  ·  © PREVIEW";position:absolute;top:50%;left:50%;width:240%;transform:translate(-50%,-50%) rotate(-30deg);text-align:center;font-family:var(--grotesk);font-weight:700;font-size:14px;line-height:2.9;color:rgba(26,30,38,.3);letter-spacing:.06em;word-spacing:4px;text-transform:lowercase}.mcard.ink .watermark:before{color:rgba(255,255,255,.42)}.modal .watermark:before{font-size:20px;line-height:3.2}.mcard .lock{position:absolute;top:10px;right:10px;width:26px;height:26px;background:rgba(26,30,38,.7);display:flex;align-items:center;justify-content:center}.mcard .price{position:absolute;bottom:10px;left:10px;font-family:var(--mono);font-size:12px;background:rgba(244,241,234,.94);color:var(--ink);padding:5px 9px;font-weight:500}.wm-note{display:flex;align-items:center;gap:12px;background:var(--canvas);border:1px solid var(--line);padding:13px 16px;margin:0 0 22px;font-size:13px;color:var(--slate);line-height:1.5}.wm-note .ico{font-size:15px;color:var(--gold-deep);flex:none}.wm-note b{color:var(--ink);font-weight:600}html.dark .wm-note b{color:#E9E5DC}.cartbtn{position:relative}.cartbtn .badge{position:absolute;top:-7px;right:-9px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--gold);color:#1c1708;font-family:var(--mono);font-size:10px;display:flex;font-weight:700}.cartbtn .badge,.modal-veil{align-items:center;justify-content:center}.modal-veil{position:fixed;inset:0;z-index:90;background:rgba(20,24,31,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:none;padding:24px}.modal-veil.show{display:flex}.modal{background:var(--paper);max-width:920px;width:100%;max-height:90vh;overflow:auto;display:grid;grid-template-columns:1.2fr .8fr;box-shadow:0 30px 80px rgba(0,0,0,.4)}@media(max-width:760px){.modal{grid-template-columns:1fr}}.modal .mvisual{position:relative;background:var(--sand);min-height:380px;aspect-ratio:4/5}.modal .mvisual .ph{position:absolute;inset:0;background:linear-gradient(135deg,var(--stone),var(--sand));display:flex;align-items:center;justify-content:center}.modal .mside{padding:32px 30px;display:flex;flex-direction:column}.modal .mclose{position:absolute;top:14px;right:14px;z-index:2;width:34px;height:34px;background:rgba(244,241,234,.9);border:0;cursor:pointer;font-size:18px}.modal h3{font-family:var(--serif);font-size:26px;margin:0 0 4px}.modal .mref{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.lic-list{display:flex;flex-direction:column;gap:8px;margin:22px 0}.lic{display:flex;align-items:center;gap:13px;border:1px solid var(--line);padding:13px 15px;cursor:pointer;background:var(--canvas)}.lic.on,.lic:hover{border-color:var(--gold)}.lic.on{background:var(--paper);outline:1px solid var(--gold)}.lic .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--muted);flex:none;position:relative}.lic.on .radio{border-color:var(--gold)}.lic.on .radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold)}.lic .lt{font-family:var(--grotesk);font-weight:600;font-size:14px}.lic .ld{font-size:11.5px;color:var(--slate);margin-top:2px}.lic .lp{margin-left:auto;font-family:var(--mono);font-size:14px;color:var(--ink);font-weight:500}html.dark .lic .lp{color:#E9E5DC}.lic-note{font-size:12px;color:var(--slate);line-height:1.6;border-top:1px solid var(--line-soft);padding-top:14px;margin-top:auto}.drawer-veil{position:fixed;inset:0;z-index:95;background:rgba(20,24,31,.5);display:none}.drawer-veil.show{display:block}.drawer{position:fixed;top:0;right:0;bottom:0;width:430px;max-width:92vw;background:var(--paper);z-index:96;transform:translateX(100%);transition:transform .32s ease;display:flex;flex-direction:column;box-shadow:-16px 0 50px rgba(0,0,0,.25)}.drawer.show{transform:none}.drawer .dh{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}.drawer .dh h3{font-family:var(--serif);font-size:22px}.drawer .dh button{background:none;border:0;font-size:20px;cursor:pointer;color:var(--ink)}.drawer .ditems{flex:1 1;overflow:auto;padding:10px 24px}.citem{display:flex;gap:13px;padding:14px 0;border-bottom:1px solid var(--line-soft)}.citem .cthumb{width:58px;height:72px;background:linear-gradient(135deg,var(--stone),var(--sand));flex:none}.citem .cinfo{flex:1 1;min-width:0}.citem .cinfo .cn{font-family:var(--grotesk);font-weight:600;font-size:13.5px}.citem .cinfo .cl{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-top:3px}.citem .cinfo .cremove{font-size:11px;color:var(--slate);cursor:pointer;margin-top:6px;display:inline-block}.citem .cinfo .cremove:hover{color:#B0573C}.citem .cprice{font-family:var(--mono);font-size:13px;font-weight:500}.drawer .dfoot{border-top:1px solid var(--line);padding:20px 24px}.drawer .drow{font-size:13px;color:var(--slate);margin-bottom:8px}.drawer .drow,.drawer .dtotal{display:flex;justify-content:space-between}.drawer .dtotal{font-family:var(--serif);font-size:22px;color:var(--ink);margin:8px 0 16px}html.dark .drawer .dtotal{color:#E9E5DC}.drawer .empty{text-align:center;color:var(--muted);font-size:14px;padding:60px 20px}.checkout-grid{display:grid;grid-template-columns:1.3fr .7fr;grid-gap:42px;gap:42px;align-items:start}@media(max-width:860px){.checkout-grid{grid-template-columns:1fr}}.pay-methods{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;margin:16px 0 24px}@media(max-width:520px){.pay-methods{grid-template-columns:1fr}}.pay{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:14px 15px;cursor:pointer;background:var(--canvas)}.pay.on,.pay:hover{border-color:var(--gold)}.pay.on{outline:1px solid var(--gold);background:var(--paper)}.pay .radio{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--muted);flex:none;position:relative}.pay.on .radio{border-color:var(--gold)}.pay.on .radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold)}.pay .pm{font-family:var(--grotesk);font-weight:600;font-size:13.5px}.pay .pi{margin-left:auto;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.card-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.card-fields .field.full{grid-column:1/-1}.summary{background:var(--canvas);border:1px solid var(--line);padding:26px 24px;position:-webkit-sticky;position:sticky;top:90px}.summary h4{font-family:var(--serif);font-weight:400;font-size:20px;margin:0 0 16px}.summary .srow{font-size:13px;color:var(--slate);padding:7px 0}.summary .srow,.summary .stotal{display:flex;justify-content:space-between}.summary .stotal{font-family:var(--serif);font-size:24px;color:var(--ink);border-top:1px solid var(--line);margin-top:10px;padding-top:14px}html.dark .summary .stotal{color:#E9E5DC}.legal-check{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--slate);line-height:1.55;margin:18px 0}.legal-check input{margin-top:3px}.trust{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);margin-top:14px}.success,.trust{text-align:center}.success{max-width:680px;margin:0 auto;padding:70px 0 90px}.success .seal{width:78px;height:78px;border-radius:50%;background:var(--gold);color:#1c1708;display:flex;align-items:center;justify-content:center;font-size:38px;margin:0 auto 26px}.success h1{font-size:clamp(32px,4vw,46px)}.success p{color:var(--slate);font-size:16px;max-width:52ch;margin:16px auto 0}.dl-list{text-align:left;margin:36px 0;border:1px solid var(--line)}.dl-item{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line-soft)}.dl-item:last-child{border-bottom:0}.dl-item .dthumb{width:46px;height:56px;background:linear-gradient(135deg,var(--stone),var(--sand));flex:none}.dl-item .dinfo{flex:1 1}.dl-item .dinfo .dn{font-family:var(--grotesk);font-weight:600;font-size:14px}.dl-item .dinfo .dl{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-top:2px}.admin-grid{display:grid;grid-template-columns:230px 1fr;grid-gap:0;gap:0;min-height:calc(100vh - 110px)}@media(max-width:760px){.admin-grid{grid-template-columns:1fr}}.admin-side{border-right:1px solid var(--line);padding:30px 22px}.admin-side .anav{display:flex;flex-direction:column;gap:2px}.admin-side .anav a{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);padding:11px 13px;cursor:pointer}.admin-side .anav a:hover{background:var(--canvas)}.admin-side .anav a.on{background:var(--ink);color:var(--paper)}.admin-body{padding:30px 34px}@media(max-width:640px){.admin-body{padding:24px 22px}}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:2px;gap:2px;margin-bottom:30px}@media(max-width:760px){.stat-row{grid-template-columns:1fr 1fr}}.stat{border:1px solid var(--line);padding:20px}.stat .sv{font-family:var(--serif);font-size:34px;line-height:1}.stat .sl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px}.uploadzone{border:1.5px dashed var(--line);background:var(--canvas);padding:44px 24px;text-align:center;margin-bottom:28px}.uploadzone .uico{font-size:30px;color:var(--gold)}.uploadzone h4{font-family:var(--serif);font-weight:400;font-size:20px;margin:12px 0 4px}.uploadzone p{font-size:13px;color:var(--slate);margin:0}.atable{width:100%;border-collapse:collapse;font-size:13.5px}.atable th{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);text-align:left;padding:12px 13px;border-bottom:1px solid var(--line)}.atable td{padding:13px;border-bottom:1px solid var(--line-soft);color:var(--slate);vertical-align:middle}.atable td.t{font-family:var(--grotesk);font-weight:600;color:var(--ink)}html.dark .atable td.t{color:#E9E5DC}.badge-st{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px}.badge-st.live{background:rgba(31,138,91,.14);color:#1F8A5B}.badge-st.draft{background:var(--sand);color:var(--muted)}.badge-st.paid{background:rgba(176,141,46,.16);color:var(--gold-deep)}.mini-thumb{width:38px;height:46px;background:linear-gradient(135deg,var(--stone),var(--sand))}.row-actions{display:flex;gap:8px}.row-actions button{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid var(--line);padding:6px 10px;cursor:pointer;color:var(--slate)}.row-actions button:hover{border-color:var(--ink);color:var(--ink)}.sec-title2{font-family:var(--serif);font-size:24px;margin:0 0 4px}.sec-sub2{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);margin-bottom:22px}.ptoast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(160%);background:var(--ink);color:var(--paper);padding:14px 24px;font-size:14px;z-index:120;transition:transform .4s ease;box-shadow:0 10px 34px rgba(0,0,0,.3)}.ptoast.show{transform:translateX(-50%) translateY(0)}.ptoast .dot{color:var(--gold-soft)}