@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700;800&family=Manrope:wght@500;600;700;800&family=Playfair+Display:wght@500;600;700&display=swap');

:root{--ink:#0b0e12;--paper:#f4f1ea;--muted:#8b94a3;--line:rgba(255,255,255,.11);--acid:#b8ff3d;--blue:#79b8ff;--red:#a93324;--wine:#7c2d26;--cream:#f4f1ea;--brown:#302820;--soft:#dfd8cd;--radius:22px;--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}img{max-width:100%}

/* ---------- Shared shell ---------- */
.site-nav{height:78px;padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;gap:26px;position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.nav-brand{font:500 17px 'DM Mono',monospace;letter-spacing:.08em;margin-right:auto}.nav-brand span{color:var(--acid)}.site-nav nav{display:flex;align-items:center;gap:22px}.site-nav nav a{font-size:13px;font-weight:600;opacity:.48;transition:.2s}.site-nav nav a:hover,.site-nav nav a.active{opacity:1}.nav-status{display:flex;align-items:center;gap:8px;font:11px 'DM Mono',monospace;opacity:.65}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.lang-btn,.menu-btn{height:42px;min-width:42px;border:1px solid var(--line);background:transparent;color:inherit;border-radius:10px}.menu-btn{display:none}
.section-pad{width:min(var(--max),calc(100% - 40px));margin:auto;padding:112px 0}.eyebrow,.section-label,.kicker{font:500 11px 'DM Mono',monospace;letter-spacing:.17em;text-transform:uppercase}.section-label{opacity:.55}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-top:15px}.section-heading h2{margin:0;font:700 clamp(38px,5.4vw,72px)/.98 Manrope,Inter,sans-serif;letter-spacing:-.055em}.section-heading p{max-width:440px;margin:0;color:var(--muted);font-size:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;border-radius:11px;border:1px solid var(--line);background:transparent;color:inherit;font-weight:700;font-size:13px;transition:.2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--acid);color:#0a0d08;border-color:var(--acid)}.btn-ghost:hover{background:rgba(255,255,255,.06)}

/* ---------- Landing ---------- */
.landing{min-height:100vh;background:#090b0e;color:#edf1e8}.landing-shell{width:min(1240px,calc(100% - 40px));margin:auto;padding:38px 0 30px}.landing-top{display:flex;justify-content:space-between;align-items:center}.brand-mark{font:500 18px 'DM Mono',monospace;letter-spacing:.08em}.brand-mark span{color:var(--acid)}.landing-index{font:11px 'DM Mono',monospace;color:#69717c}.landing-intro{padding:15vh 0 8vh;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end}.landing h1{font:800 clamp(55px,9vw,124px)/.9 Manrope,Inter,sans-serif;letter-spacing:-.075em;margin:0}.landing h1 span{color:var(--acid)}.landing-copy{max-width:500px;color:#98a1ad;font-size:17px;margin:0 0 4px}.identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.identity-card{position:relative;min-height:330px;padding:28px;border:1px solid rgba(255,255,255,.11);border-radius:26px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;transition:.3s}.identity-card:after{content:'';position:absolute;inset:0;background:linear-gradient(130deg,rgba(184,255,61,.08),transparent 48%);pointer-events:none}.identity-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.3)}.identity-card.culinary-card:after{background:linear-gradient(130deg,rgba(211,105,76,.14),transparent 50%)}.identity-card h2{font:700 clamp(27px,3.7vw,49px)/1.03 Manrope,Inter,sans-serif;letter-spacing:-.045em;margin:14px 0}.identity-card p{max-width:450px;color:#929ba7;margin:0}.card-arrow{position:absolute;right:26px;top:25px;font:12px 'DM Mono',monospace;color:#c9d0d8}.landing-foot{display:flex;justify-content:space-between;margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font:11px 'DM Mono',monospace;color:#68717c}

/* ---------- Cyber ---------- */
.cyber-theme{background:#090c10;color:#edf1e8;background-image:radial-gradient(circle at 85% 8%,rgba(121,184,255,.08),transparent 28%),radial-gradient(circle at 15% 40%,rgba(184,255,61,.045),transparent 25%)}.cyber-theme .site-nav{background:rgba(9,12,16,.82)}.cyber-theme .eyebrow{color:var(--acid)}.cyber-theme .hero{border-bottom:1px solid var(--line)}.hero{width:min(var(--max),calc(100% - 40px));margin:auto;min-height:calc(100vh - 78px);display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:72px;align-items:center;padding:72px 0}.hero h1{font:800 clamp(55px,7.4vw,108px)/.9 Manrope,Inter,sans-serif;letter-spacing:-.075em;max-width:920px;margin:17px 0 25px}.hero-tagline{max-width:650px;color:var(--muted);font-size:18px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}.portrait-frame{aspect-ratio:4/4.7;border-radius:24px;max-width:320px;width:100%;justify-self:end;overflow:hidden;position:relative;background:#111820;border:1px solid rgba(184,255,61,.25);box-shadow:0 30px 80px rgba(0,0,0,.32)}.portrait-frame:before{content:'BMT / 404';position:absolute;top:16px;left:16px;z-index:2;padding:6px 9px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(0,0,0,.35);font:10px 'DM Mono',monospace}.portrait-frame img{width:100%;height:100%;object-fit:cover}.portrait-label{position:absolute;bottom:0;left:0;right:0;padding:45px 18px 17px;background:linear-gradient(transparent,rgba(0,0,0,.85));font:11px 'DM Mono',monospace;color:#cbd3dc}.cyber-theme .about-section{border-top:1px solid var(--line)}.two-col{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.two-col h2{font:700 clamp(40px,5vw,68px)/.98 Manrope,Inter,sans-serif;letter-spacing:-.06em;margin:0}.about-section p{color:#9ca5b1;font-size:16px;max-width:680px}.mantra{font-family:'DM Mono',monospace!important;color:var(--acid)!important;font-size:13px!important;margin-top:28px!important}.skill-grid,.media-grid,.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:45px}.skill-card,.media-card,.project-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.018);transition:.25s}.skill-card{padding:25px;min-height:170px}.skill-card:hover,.media-card:hover,.project-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.24)}.skill-number{font:11px 'DM Mono',monospace;color:#66717e}.skill-card h3{font-size:17px;line-height:1.25;margin:24px 0 8px}.skill-card p,.project-body p{font-size:13px;color:#8994a1;margin:0}.media-card img,.project-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#10151b}.media-body,.project-body{padding:19px}.media-body h3,.project-body h3{font-size:17px;line-height:1.25;margin:0 0 5px}.meta{font:11px 'DM Mono',monospace;color:#77818d}.project-body p{margin:10px 0}.tag{display:inline-block;margin:4px 4px 0 0;padding:5px 8px;border:1px solid var(--line);border-radius:999px;font:10px 'DM Mono',monospace;color:#9da7b3}.links-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:38px}.empty-state{grid-column:1/-1;min-height:150px;padding:30px;border:1px dashed var(--line);border-radius:18px;display:flex;flex-direction:column;justify-content:center;gap:5px}.empty-state strong{font-size:16px}.empty-state span{font-size:13px;color:var(--muted)}.link-tile{min-height:95px;padding:18px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.018);transition:.2s}.link-tile:hover{background:rgba(184,255,61,.06);border-color:rgba(184,255,61,.25)}.link-tile small{display:block;font:10px 'DM Mono',monospace;color:#6d7885;margin-bottom:12px}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:30px max(20px,calc((100vw - var(--max))/2));border-top:1px solid var(--line);color:#697480;font:10px 'DM Mono',monospace}

/* ---------- Culinary ---------- */
.culinary-theme{background:var(--cream);color:var(--brown)}.culinary-theme .site-nav{background:rgba(244,241,234,.86);border-color:rgba(48,40,32,.12)}.culinary-theme .nav-brand span,.culinary-theme .eyebrow,.culinary-theme .section-label{color:var(--red)}.culinary-theme .hero{min-height:calc(100vh - 78px);border-bottom:1px solid rgba(48,40,32,.12)}.culinary-theme .hero h1,.culinary-theme .section-heading h2,.culinary-theme .two-col h2{font-family:'Playfair Display',serif;letter-spacing:-.045em}.culinary-theme .hero-tagline,.culinary-theme .about-section p,.culinary-theme .section-heading p,.culinary-theme .skill-card p,.culinary-theme .project-body p{color:#73695f}.culinary-theme .btn-primary{background:var(--red);border-color:var(--red);color:#fff}.culinary-theme .portrait-frame{border-color:rgba(169,51,36,.25);box-shadow:0 30px 70px rgba(83,47,30,.12)}.culinary-theme .portrait-frame:before{content:'BMT / HOT KITCHEN';background:rgba(48,40,32,.65)}.culinary-theme .mantra{color:var(--red)!important}.culinary-theme .skill-card,.culinary-theme .media-card,.culinary-theme .project-card,.culinary-theme .link-tile{background:rgba(255,255,255,.36);border-color:rgba(48,40,32,.11)}.culinary-theme .skill-card:hover,.culinary-theme .media-card:hover,.culinary-theme .project-card:hover{border-color:rgba(169,51,36,.28)}.culinary-theme .skill-number,.culinary-theme .meta,.culinary-theme .link-tile small{color:#8a7c70}.culinary-theme .tag{border-color:rgba(48,40,32,.15);color:#6e6258}.culinary-theme .site-footer{border-color:rgba(48,40,32,.12);color:#887a6d}

/* ---------- Admin ---------- */
.admin-theme{background:#0b0e13;color:#edf1e8}.admin-shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:34px 0 70px}.admin-login{max-width:460px;margin:7vh auto;padding:38px;border:1px solid var(--line);border-radius:24px;background:#111722}.admin-login h1{font:700 42px/1 Manrope;margin:12px 0}.admin-login form{display:grid;gap:10px;margin:28px 0}.admin-login input,.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:12px 13px;background:#090d13;color:#fff;border:1px solid var(--line);border-radius:10px;outline:0}.admin-login input:focus,.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{border-color:var(--acid)}.dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:end}.dashboard-head h1{font:700 42px/1 Manrope;margin:8px 0 20px}.dash-actions{display:flex;gap:8px;flex-wrap:wrap}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0}.admin-tabs{display:flex;gap:2px;overflow:auto;border-bottom:1px solid var(--line);margin:22px 0}.tab{border:0;background:transparent;color:#7d8793;padding:14px 16px;white-space:nowrap}.tab.active{color:var(--acid);border-bottom:2px solid var(--acid)}.tab-panel{display:none;padding:20px 0}.tab-panel.active{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.form-grid label{display:grid;gap:7px;color:#adb6c2;font-size:12px}.form-grid .wide{grid-column:1/-1}.form-grid textarea{min-height:130px;resize:vertical}.admin-list{display:grid;gap:9px;margin-top:24px}.admin-item{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px;border:1px solid var(--line);border-radius:12px}.admin-item small{color:#7e8996}.form-message{min-height:20px;color:#ff8888;font-size:12px}

@media(max-width:960px){.landing-intro{grid-template-columns:1fr;padding:12vh 0 7vh}.hero{grid-template-columns:1fr;gap:48px}.portrait-frame{width:min(430px,100%)}.skill-grid,.media-grid,.project-grid{grid-template-columns:repeat(2,1fr)}.links-grid{grid-template-columns:repeat(2,1fr)}.two-col{gap:50px}}
@media(max-width:700px){.landing-shell{width:min(100% - 28px,1240px);padding-top:24px}.landing-intro{padding:90px 0 55px}.landing h1{font-size:clamp(48px,15vw,78px)}.identity-grid,.two-col,.form-grid{grid-template-columns:1fr}.identity-card{min-height:285px}.site-nav{height:68px;padding:0 16px}.site-nav nav{position:absolute;top:68px;left:0;right:0;padding:13px 16px;background:inherit;border-bottom:1px solid var(--line);display:none}.site-nav.nav-open nav{display:flex}.menu-btn{display:block}.nav-status{display:none}.section-pad,.hero{width:min(100% - 32px, var(--max));padding:78px 0}.hero{min-height:auto}.hero h1{font-size:clamp(47px,14vw,75px)}.hero-tagline{font-size:16px}.section-heading{display:block}.section-heading p{margin-top:16px}.skill-grid,.media-grid,.project-grid,.links-grid{grid-template-columns:1fr;margin-top:30px}.site-footer{padding:25px 16px;flex-direction:column}.dashboard-head{align-items:flex-start;flex-direction:column}.form-grid .wide{grid-column:auto}}
@media print{.site-nav,.hero-actions,.lang-btn,.menu-btn{display:none!important}.section-pad{padding:35px 0}.cyber-theme,.culinary-theme{background:#fff;color:#000}}

/* ---------- Refinements / upload UX ---------- */
.profile-upload{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;padding:14px;border:1px dashed var(--line);border-radius:14px}
.profile-preview{width:96px;height:96px;border-radius:16px;object-fit:cover;background:#111820;border:1px solid var(--line)}
.storage-info{font:10px 'DM Mono',monospace;color:#77818d;margin-top:8px}
.upload-help{font-size:11px;color:#77818d;line-height:1.5}
@media(max-width:700px){.profile-upload{grid-template-columns:80px 1fr}.profile-preview{width:80px;height:80px}.portrait-frame{justify-self:start;max-width:280px}.hero{gap:34px}}

/* ---------- Premium v4 refinement ---------- */
:root{--ease:cubic-bezier(.22,1,.36,1)}
::selection{background:var(--acid);color:#0a0d08}
:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
.hero{grid-template-columns:minmax(0,1fr) 260px;gap:54px;padding:64px 0}.hero h1{max-width:820px}.portrait-frame{max-width:260px;aspect-ratio:4/5;border-radius:26px}.portrait-frame img{object-position:center top}.hero:after{content:'01';position:absolute;right:max(20px,calc((100vw - var(--max))/2));bottom:34px;font:10px 'DM Mono',monospace;opacity:.22}.hero{position:relative}.hero>div:first-child{position:relative;z-index:1}.hero-actions .btn{min-width:140px}.skill-card,.media-card,.project-card,.link-tile,.identity-card{transition:transform .45s var(--ease),border-color .3s ease,background .3s ease,box-shadow .45s var(--ease)}
.skill-card:hover,.media-card:hover,.project-card:hover,.link-tile:hover{transform:translateY(-7px);box-shadow:0 18px 45px rgba(0,0,0,.14)}
.project-media{position:relative}.project-index{position:absolute;left:15px;top:15px;padding:5px 8px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(0,0,0,.48);color:#fff;font:10px 'DM Mono',monospace}.project-card img{aspect-ratio:16/10}.tag-row{min-height:25px}.project-link{display:inline-flex;gap:6px;margin-top:17px;font:11px 'DM Mono',monospace;color:var(--acid)}.culinary-theme .project-link{color:var(--red)}
.media-open{display:block;width:100%;padding:0;border:0;background:transparent;position:relative;cursor:zoom-in}.media-open img{transition:transform .6s var(--ease)}.media-open:hover img{transform:scale(1.035)}.media-zoom{position:absolute;right:13px;bottom:13px;padding:6px 8px;border-radius:7px;background:rgba(0,0,0,.62);color:#fff;font:9px 'DM Mono',monospace;opacity:0;transform:translateY(5px);transition:.25s}.media-open:hover .media-zoom,.media-open:focus-visible .media-zoom{opacity:1;transform:none}.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.84);display:grid;place-items:center;padding:28px;backdrop-filter:blur(14px)}.lightbox.hidden{display:none}.lightbox figure{margin:0;max-width:min(1000px,92vw);max-height:90vh;text-align:center}.lightbox img{display:block;max-width:100%;max-height:78vh;width:auto;margin:auto;border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.45)}.lightbox figcaption{color:#fff;font:12px 'DM Mono',monospace;margin-top:12px}.lightbox-close{position:fixed;top:20px;right:20px;width:46px;height:46px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.3);color:#fff;border-radius:50%;font-size:25px}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.is-visible{opacity:1;transform:none}

/* Admin premium */
.admin-theme{background:radial-gradient(circle at 85% 0%,rgba(184,255,61,.06),transparent 28%),#0b0e13}.admin-login{box-shadow:0 28px 90px rgba(0,0,0,.28)}.admin-login-top{display:flex;justify-content:space-between;align-items:center}.admin-chip{padding:6px 8px;border:1px solid var(--line);border-radius:999px;font:9px 'DM Mono',monospace;color:#7e8996}.admin-muted,.dash-sub{color:#7f8995;font-size:13px}.dashboard{padding-top:10px}.dashboard-head h1{font-size:clamp(38px,5vw,58px);letter-spacing:-.055em}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 20px}.dashboard-stats>div{padding:16px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.018)}.dashboard-stats span{display:block;color:#697480;font:9px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.12em}.dashboard-stats strong{display:block;margin-top:8px;font:700 18px Manrope}.panel-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:12px}.panel-head h2{font:700 clamp(30px,4vw,46px)/1 Manrope;margin:8px 0 0;letter-spacing:-.05em}.panel-note{font:10px 'DM Mono',monospace;color:#65707c}.form-grid{gap:16px}.form-grid input,.form-grid textarea,.form-grid select,.admin-login input{min-height:46px;background:#080c11}.form-grid textarea{min-height:145px}.btn-small{min-height:34px;padding:7px 11px;font-size:11px}.profile-upload{grid-template-columns:110px 1fr;min-height:140px}.profile-preview{width:110px;height:110px;border-radius:20px}.upload-actions{display:flex;align-items:center;gap:10px;margin-top:9px;flex-wrap:wrap}.file-meta{font:10px 'DM Mono',monospace;color:#66727f}.upload-preview{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:10px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.018)}.upload-preview img{width:76px;height:58px;object-fit:cover;border-radius:8px}.upload-preview strong,.upload-preview small{display:block}.upload-preview small{color:#75808d;font:10px 'DM Mono',monospace;margin-top:4px}.admin-list{gap:8px}.admin-item{padding:10px 12px;background:rgba(255,255,255,.015)}.admin-item-main{display:flex;align-items:center;gap:12px;min-width:0}.admin-thumb{width:48px;height:42px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:0 0 auto}.admin-item-title{display:block;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}.admin-item small{display:block;margin-top:3px;font:10px 'DM Mono',monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}.admin-item-actions{display:flex;gap:6px;flex:0 0 auto}.empty-admin{padding:22px;border:1px dashed var(--line);border-radius:13px;color:#7b8692;font-size:13px}.empty-admin span{color:#56616d}.toast{position:fixed;right:22px;bottom:22px;z-index:200;padding:12px 15px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#151b24;color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.35);font:11px 'DM Mono',monospace;opacity:0;transform:translateY(12px);pointer-events:none;transition:.3s var(--ease)}.toast.show{opacity:1;transform:none}.toast.error{border-color:rgba(255,100,100,.4)}.modal{position:fixed;inset:0;z-index:150;background:rgba(0,0,0,.72);backdrop-filter:blur(12px);display:grid;place-items:center;padding:20px}.modal.hidden{display:none}.modal-card{width:min(720px,100%);max-height:90vh;overflow:auto;background:#10161f;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 35px 100px rgba(0,0,0,.45)}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.modal-head h3{font:700 30px Manrope;margin:8px 0 0}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:transparent;color:#fff;font-size:24px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.edit-media-note{grid-column:1/-1;margin:0;color:#74808d;font:11px 'DM Mono',monospace}
@media(max-width:960px){.hero{grid-template-columns:minmax(0,1fr) 230px;gap:38px}.portrait-frame{max-width:230px}.dashboard-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.hero{grid-template-columns:1fr;padding-top:54px}.hero:after{display:none}.portrait-frame{max-width:190px;justify-self:start;order:-1;border-radius:20px}.hero h1{margin-top:13px}.hero-actions{margin-top:24px}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.profile-upload{grid-template-columns:78px 1fr}.profile-preview{width:78px;height:78px}.panel-head{align-items:start;flex-direction:column;gap:4px}.admin-item{align-items:flex-start}.admin-item-actions{flex-direction:column}.admin-item-title,.admin-item small{max-width:45vw}.modal-card{padding:18px}.toast{left:16px;right:16px;bottom:16px;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.skill-card,.media-card,.project-card,.link-tile{transition:none}}

/* =========================================================
   V5 / MOTION SYSTEM — cinematic, responsive, lightweight
   ========================================================= */
:root{--ease:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.22,.61,.36,1);--glow:0 0 0 1px rgba(184,255,61,.08),0 30px 90px rgba(0,0,0,.22)}
html{scroll-padding-top:90px}body{overflow-x:hidden}.modal-open{overflow:hidden}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 75%)}
.scroll-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:1000;pointer-events:none;background:transparent}.scroll-progress span{display:block;width:0;height:100%;background:var(--acid);box-shadow:0 0 16px rgba(184,255,61,.65);transition:width .08s linear}.culinary-theme .scroll-progress span{background:var(--red);box-shadow:0 0 16px rgba(169,51,36,.35)}
.site-nav{transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}.site-nav:after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;background:linear-gradient(90deg,rgba(255,255,255,.025),transparent 45%,rgba(255,255,255,.025));transition:opacity .35s}.site-nav:hover:after{opacity:1}
.nav-brand,.brand-mark{transition:letter-spacing .4s var(--ease)}.nav-brand:hover,.brand-mark:hover{letter-spacing:.14em}
.hero{isolation:isolate}.hero:before{content:"";position:absolute;width:34vw;height:34vw;max-width:520px;max-height:520px;right:2%;top:7%;border-radius:50%;background:radial-gradient(circle,rgba(121,184,255,.09),transparent 68%);filter:blur(18px);z-index:-1;animation:orbFloat 9s ease-in-out infinite}.cyber-theme .hero:after{animation:blink 2.8s ease-in-out infinite}.culinary-theme .hero:before{background:radial-gradient(circle,rgba(169,51,36,.09),transparent 68%)}
.hero h1{animation:heroIn .9s var(--ease) both}.hero-tagline{animation:heroIn .9s .1s var(--ease) both}.hero-actions{animation:heroIn .9s .18s var(--ease) both}.portrait-frame{animation:heroPhoto 1s .12s var(--ease) both;will-change:transform}.portrait-frame:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.08);border-radius:inherit;pointer-events:none}.portrait-frame img{transition:transform 1.2s var(--ease),filter .6s}.portrait-frame:hover img{transform:scale(1.035);filter:saturate(1.05)}
.eyebrow:before{content:"// ";opacity:.35}.section-label{position:relative;display:inline-flex;align-items:center;gap:8px}.section-label:after{content:"";width:26px;height:1px;background:currentColor;opacity:.45}
.section-heading h2{position:relative}.section-heading h2:after{content:"";display:block;width:72px;height:3px;margin-top:18px;background:currentColor;opacity:.1;transform-origin:left;transition:transform .7s var(--ease)}.section-heading:hover h2:after{transform:scaleX(1.7)}
.skill-card,.media-card,.project-card,.link-tile,.identity-card{position:relative;will-change:transform}.skill-card:before,.media-card:before,.project-card:before,.link-tile:before,.identity-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.055),transparent 38%);opacity:0;transition:opacity .5s var(--ease)}.skill-card:hover:before,.media-card:hover:before,.project-card:hover:before,.link-tile:hover:before,.identity-card:hover:before{opacity:1}.card-line{display:block;width:0;height:1px;background:var(--acid);margin-top:18px;transition:width .7s var(--ease)}.skill-card:hover .card-line{width:54px}.culinary-theme .card-line{background:var(--red)}
.project-card{background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.008))}.project-media{overflow:hidden}.project-media:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(184,255,61,.09),transparent 55%);opacity:0;transition:opacity .6s}.project-card:hover .project-media:after{opacity:1}.project-corner{position:absolute;right:14px;bottom:14px;padding:5px 8px;border:1px solid rgba(255,255,255,.15);border-radius:7px;background:rgba(0,0,0,.42);color:#fff;font:9px 'DM Mono',monospace;letter-spacing:.08em}.project-body{min-height:220px}.project-body h3{transition:transform .45s var(--ease)}.project-card:hover .project-body h3{transform:translateX(4px)}.project-link{transition:gap .35s var(--ease)}.project-link:hover{gap:11px}
.media-card{transform-origin:center bottom}.media-body{background:linear-gradient(180deg,transparent,rgba(0,0,0,.03))}.media-open{overflow:hidden}.media-open:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.28));opacity:0;transition:opacity .5s}.media-open:hover:after{opacity:1}.media-open img{transform-origin:center;will-change:transform}
.link-tile{overflow:hidden}.link-tile strong{display:block;transition:transform .45s var(--ease)}.link-tile>span{position:absolute;right:18px;bottom:17px;transition:transform .45s var(--ease)}.link-tile:hover strong{transform:translateX(4px)}.link-tile:hover>span{transform:translate(4px,-4px)}
.identity-card{animation:cardIn .8s var(--ease) both}.identity-card:nth-child(2){animation-delay:.08s}.landing-intro{animation:heroIn .9s var(--ease) both}.landing-copy{animation:heroIn .9s .12s var(--ease) both}.landing-foot{animation:heroIn .9s .22s var(--ease) both}.landing{background-image:radial-gradient(circle at 75% 18%,rgba(184,255,61,.06),transparent 28%),radial-gradient(circle at 15% 80%,rgba(121,184,255,.045),transparent 26%)}.landing:after{content:"";position:fixed;width:34vw;height:34vw;right:-15vw;bottom:-15vw;border-radius:50%;border:1px solid rgba(184,255,61,.08);box-shadow:0 0 0 70px rgba(184,255,61,.012),0 0 0 140px rgba(184,255,61,.008);pointer-events:none;animation:orbFloat 12s ease-in-out infinite}
.cursor-dot{position:fixed;left:0;top:0;width:16px;height:16px;border:1px solid rgba(184,255,61,.7);border-radius:50%;z-index:2000;pointer-events:none;transform:translate3d(-50%,-50%,0);transition:width .25s var(--ease),height .25s var(--ease),background .25s,transform .05s linear}.cursor-dot.active{width:34px;height:34px;background:rgba(184,255,61,.08)}.culinary-theme .cursor-dot{border-color:rgba(169,51,36,.65)}.culinary-theme .cursor-dot.active{background:rgba(169,51,36,.08)}
.lightbox{animation:fadeIn .25s ease}.lightbox figure{animation:lightboxIn .55s var(--ease)}
.reveal{opacity:0;transform:translateY(28px) scale(.985);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.is-visible{opacity:1;transform:none}.reveal:nth-child(2){transition-delay:.04s}.reveal:nth-child(3){transition-delay:.08s}.reveal:nth-child(4){transition-delay:.12s}
.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:-2px;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.28),transparent 65%);transform:translateX(-120%);transition:transform .7s var(--ease)}.btn:hover:after{transform:translateX(120%)}.btn:active{transform:translateY(1px) scale(.985)}
/* admin v5 */
.admin-theme:before{opacity:.22}.dashboard{animation:heroIn .7s var(--ease) both}.admin-login{position:relative;overflow:hidden}.admin-login:after{content:"";position:absolute;width:220px;height:220px;right:-100px;top:-100px;border-radius:50%;border:1px solid rgba(184,255,61,.12);box-shadow:0 0 0 35px rgba(184,255,61,.018),0 0 0 70px rgba(184,255,61,.01);animation:orbFloat 10s ease-in-out infinite;pointer-events:none}.dashboard-head{position:relative}.dashboard-head:after{content:"CLOUD / CMS";position:absolute;right:0;bottom:4px;color:#39434e;font:9px 'DM Mono',monospace;letter-spacing:.16em}.admin-chip{transition:all .35s var(--ease)}.admin-chip.is-online{color:var(--acid);border-color:rgba(184,255,61,.25);background:rgba(184,255,61,.04)}.admin-chip.is-local{color:#ffbf69;border-color:rgba(255,191,105,.25)}.dashboard-stats>div{position:relative;overflow:hidden;transition:transform .4s var(--ease),border-color .4s}.dashboard-stats>div:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22)}.dashboard-stats>div:after{content:"";position:absolute;left:0;bottom:0;width:32%;height:2px;background:var(--acid);opacity:.5}.tab{transition:all .35s var(--ease)}.tab.active{box-shadow:0 0 0 1px rgba(184,255,61,.08),0 10px 30px rgba(0,0,0,.14)}.tab-panel.active{animation:panelIn .55s var(--ease) both}.admin-item{transition:transform .35s var(--ease),border-color .35s}.admin-item:hover{transform:translateX(3px);border-color:rgba(255,255,255,.2)}.admin-thumb{transition:transform .45s var(--ease)}.admin-item:hover .admin-thumb{transform:scale(1.04)}.btn:disabled{opacity:.6;cursor:wait;transform:none!important}.spinner{width:12px;height:12px;border:2px solid rgba(0,0,0,.25);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}.btn-ghost .spinner{border-color:rgba(255,255,255,.2);border-top-color:currentColor}.upload-preview{animation:panelIn .45s var(--ease)}
@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes heroPhoto{from{opacity:0;transform:translateY(18px) scale(.96) rotate(1deg)}to{opacity:1;transform:none}}@keyframes cardIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes panelIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes lightboxIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}@keyframes orbFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-16px,0)}}@keyframes blink{0%,100%{opacity:.22}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.hero{grid-template-columns:1fr;padding:48px 0 76px;gap:28px}.portrait-frame{order:-1;max-width:176px;width:176px;justify-self:start;border-radius:18px}.portrait-label{font-size:8px;padding:34px 11px 10px}.hero h1{font-size:clamp(46px,14.2vw,72px);margin:10px 0 18px}.hero-tagline{font-size:15px}.hero-actions .btn{min-width:0}.dashboard-head:after{position:static;display:block;margin-top:12px}.dash-actions{width:100%}.dash-actions .btn,.dash-actions .file-btn{flex:1}.dashboard-stats>div{min-width:0}.dashboard-stats strong{font-size:16px}.admin-item{gap:10px}.admin-item-main{max-width:calc(100% - 88px)}.admin-item-actions{flex-direction:row}.admin-item-title,.admin-item small{max-width:42vw}.cursor-dot{display:none}.section-pad{padding:86px 0}.section-heading h2{font-size:clamp(38px,12vw,58px)}.links-grid{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.cursor-dot{display:none}.reveal{opacity:1;transform:none}.btn:after{display:none}}
/* V6 — editorial motion + training album system */
.hero-stats{display:flex;gap:10px;margin:26px 0 28px;flex-wrap:wrap}.stat-orbit{min-width:92px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);backdrop-filter:blur(10px);transition:transform .4s var(--ease),border-color .4s}.stat-orbit:hover{transform:translateY(-4px) rotate(-1deg);border-color:rgba(184,255,61,.3)}.stat-orbit small,.stat-orbit span{display:block;font:9px 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.stat-orbit strong{display:block;font-size:24px;line-height:1;margin:7px 0}.culinary-theme .stat-orbit:hover{border-color:rgba(169,51,36,.3)}
.section-glow{position:relative;overflow:hidden}.section-glow:before{content:"";position:absolute;width:420px;height:420px;right:-180px;top:15%;border-radius:50%;background:radial-gradient(circle,rgba(184,255,61,.055),transparent 68%);pointer-events:none}.culinary-theme .section-glow:before{background:radial-gradient(circle,rgba(169,51,36,.055),transparent 68%)}
.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.album-card{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008));transition:border-color .45s var(--ease),box-shadow .45s var(--ease);will-change:transform}.album-card:hover{border-color:rgba(184,255,61,.28);box-shadow:0 30px 70px rgba(0,0,0,.22)}.culinary-theme .album-card:hover{border-color:rgba(169,51,36,.3)}.album-cover{position:relative;width:100%;height:360px;padding:0;border:0;background:#0d1116;display:block;cursor:pointer;overflow:hidden}.album-cover img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .7s}.album-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02) 35%,rgba(0,0,0,.72));pointer-events:none}.album-card:hover .album-cover img{transform:scale(1.055)}.album-index,.album-count,.album-open{position:absolute;z-index:2;color:#fff;font:10px 'DM Mono',monospace;letter-spacing:.13em}.album-index{left:16px;top:16px}.album-count{right:16px;top:16px;padding:7px 9px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(0,0,0,.28);backdrop-filter:blur(8px)}.album-open{left:16px;bottom:16px;font-size:11px}.album-body{padding:22px}.album-body h3{font-size:28px;margin:7px 0 10px}.album-body p{color:var(--muted);max-width:60ch}.album-strip{display:flex;gap:7px;margin-top:18px;overflow:hidden}.album-strip img{width:58px;height:58px;border-radius:10px;object-fit:cover;border:1px solid var(--line);transition:transform .35s}.album-card:hover .album-strip img{transform:translateY(-2px)}
.lightbox-content{width:min(1080px,92vw);max-height:90vh;display:flex;flex-direction:column;gap:14px}.lightbox-content figure{margin:0}.lightbox-content figure img{display:block;max-width:100%;max-height:65vh;width:auto;margin:auto;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.45)}.lightbox-content figcaption{margin-top:10px;text-align:center}.lightbox-kicker{text-align:center;font:10px 'DM Mono',monospace;letter-spacing:.16em;color:rgba(255,255,255,.55)}.lightbox-album{display:flex;gap:8px;overflow-x:auto;padding:3px 2px 10px}.lightbox-album button{position:relative;flex:0 0 76px;width:76px;height:76px;padding:0;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:#111;overflow:hidden}.lightbox-album img{width:100%;height:100%;object-fit:cover}.lightbox-album span{position:absolute;left:5px;bottom:4px;color:#fff;font:8px 'DM Mono',monospace;text-shadow:0 1px 4px #000}
.command-palette{position:fixed;inset:0;z-index:2500;background:rgba(0,0,0,.64);backdrop-filter:blur(14px);display:grid;place-items:start center;padding:11vh 18px}.command-card{width:min(620px,100%);border:1px solid rgba(255,255,255,.13);border-radius:22px;background:#0c1015;box-shadow:0 40px 120px rgba(0,0,0,.5);overflow:hidden;animation:lightboxIn .35s var(--ease)}.command-head{display:flex;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);font:9px 'DM Mono',monospace;letter-spacing:.14em;color:var(--muted)}.command-head kbd{border:1px solid var(--line);padding:3px 7px;border-radius:6px}.command-card input{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:18px;font-size:18px;color:inherit;outline:0}.command-card input:focus{border-color:rgba(184,255,61,.35)}.command-card a{display:flex;justify-content:space-between;padding:14px 18px;color:inherit;border-bottom:1px solid rgba(255,255,255,.045);transition:background .25s,transform .25s}.command-card a:hover{background:rgba(184,255,61,.06);transform:translateX(5px)}.command-card a b{color:var(--acid)}.command-empty{padding:20px;color:var(--muted)}
/* Admin album UI */.album-admin-intro{display:flex;gap:14px;padding:16px 18px;margin:0 0 20px;border:1px solid rgba(184,255,61,.14);border-radius:16px;background:rgba(184,255,61,.035)}.album-admin-intro strong{white-space:nowrap}.album-admin-intro span{color:var(--muted)}.album-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.preview-tile{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}.preview-tile img{width:58px;height:58px;object-fit:cover;border-radius:8px}.preview-tile strong,.preview-tile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-tile small{color:var(--muted);margin-top:3px}.album-dots{display:flex;margin-top:7px}.album-dots img{width:24px;height:24px;object-fit:cover;border-radius:6px;border:2px solid #0b0e13;margin-right:-5px}.edit-gallery{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px}.edit-gallery>div{position:relative;flex:0 0 82px}.edit-gallery img{width:82px;height:82px;object-fit:cover;border-radius:10px}.edit-gallery .icon-btn{position:absolute;right:-4px;top:-4px;width:24px;height:24px;border-radius:50%;background:#111;color:#fff}
@media(max-width:700px){.hero-stats{margin:18px 0 20px}.stat-orbit{flex:1;min-width:82px;padding:10px}.stat-orbit strong{font-size:20px}.album-grid{grid-template-columns:1fr;gap:14px}.album-cover{height:270px}.album-body{padding:18px}.album-body h3{font-size:24px}.album-admin-intro{display:block}.album-admin-intro span{display:block;margin-top:6px}.album-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.command-palette{padding-top:8vh}.lightbox-content{width:95vw}.lightbox-content figure img{max-height:55vh}}
/* V8 — SEO detail pages + polish */
.detail-page{background:#090b0e;color:#edf1e8;min-height:100vh}.detail-shell{width:min(1120px,calc(100% - 40px));margin:auto;padding:90px 0 120px}.detail-shell h1{font:800 clamp(52px,9vw,118px)/.92 Manrope,Inter,sans-serif;letter-spacing:-.075em;max-width:1000px;margin:14px 0 20px}.detail-meta{font:11px 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#8d98a5}.detail-copy{max-width:720px;font-size:18px;color:#aeb7c2}.detail-hero-image{width:100%;max-height:680px;object-fit:cover;border-radius:26px;margin:42px 0;border:1px solid var(--line);box-shadow:0 35px 100px rgba(0,0,0,.35)}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:44px}.detail-gallery figure{margin:0}.detail-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:1px solid var(--line);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s}.detail-gallery figure:hover img{transform:scale(1.015);filter:saturate(1.08)}.detail-gallery figcaption{font-size:12px;color:#8993a0;padding:8px 3px}.detail-tags{margin:28px 0}.backup-card{border:1px solid var(--line);padding:24px;border-radius:18px;background:rgba(255,255,255,.025)}.backup-card p{color:var(--muted);max-width:60ch}@media(max-width:700px){.detail-shell{padding:62px 0 90px}.detail-gallery{grid-template-columns:1fr}.detail-shell h1{font-size:clamp(48px,14vw,76px)}.detail-copy{font-size:16px}}
/* V8 — SEO detail pages + polish */
.detail-page{background:#090b0e;color:#edf1e8;min-height:100vh}.detail-shell{width:min(1120px,calc(100% - 40px));margin:auto;padding:90px 0 120px}.detail-shell h1{font:800 clamp(52px,9vw,118px)/.92 Manrope,Inter,sans-serif;letter-spacing:-.075em;max-width:1000px;margin:14px 0 20px}.detail-meta{font:11px 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#8d98a5}.detail-copy{max-width:720px;font-size:18px;color:#aeb7c2}.detail-hero-image{width:100%;max-height:680px;object-fit:cover;border-radius:26px;margin:42px 0;border:1px solid var(--line);box-shadow:0 35px 100px rgba(0,0,0,.35)}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:44px}.detail-gallery figure{margin:0}.detail-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:1px solid var(--line);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s}.detail-gallery figure:hover img{transform:scale(1.015);filter:saturate(1.08)}.detail-gallery figcaption{font-size:12px;color:#8993a0;padding:8px 3px}.detail-tags{margin:28px 0}.backup-card{border:1px solid var(--line);padding:24px;border-radius:18px;background:rgba(255,255,255,.025)}.backup-card p{color:var(--muted);max-width:60ch}@media(max-width:700px){.detail-shell{padding:62px 0 90px}.detail-gallery{grid-template-columns:1fr}.detail-shell h1{font-size:clamp(48px,14vw,76px)}.detail-copy{font-size:16px}}

/* V15 — BIMA OS / FUN LAB */
.fun-page{background:#07090c;color:#edf2e8;min-height:100vh;overflow-x:hidden}.fun-page:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.08;background-image:radial-gradient(rgba(255,255,255,.8) .5px,transparent .5px);background-size:5px 5px;z-index:-1}.fun-nav{border-bottom-color:rgba(255,255,255,.09)}.fun-hero{padding-top:120px}.fun-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:70px;align-items:center}.fun-hero h1{font:800 clamp(62px,10vw,150px)/.82 Manrope,Inter,sans-serif;letter-spacing:-.09em;margin:14px 0 28px}.fun-hero h1 span{color:var(--acid)}.fun-lede{max-width:600px;color:#aab4bf;font-size:18px;line-height:1.7}.fun-console{border:1px solid rgba(184,255,61,.2);border-radius:28px;padding:14px;background:linear-gradient(145deg,#10161a,#080b0f);box-shadow:0 40px 120px rgba(0,0,0,.35),0 0 80px rgba(184,255,61,.04)}.console-top,.console-bottom{display:flex;justify-content:space-between;padding:8px 8px 12px;font:9px 'DM Mono',monospace;letter-spacing:.16em;color:#7f8a94}.console-bottom{padding:12px 8px 8px}.console-screen{position:relative;min-height:360px;border:1px solid rgba(255,255,255,.07);border-radius:20px;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(184,255,61,.12),transparent 28%),#070a0d;display:grid;place-items:center}.console-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.02) 50%,transparent 50%);background-size:100% 4px;opacity:.22;pointer-events:none}.console-orb{width:170px;height:170px;border-radius:50%;border:1px solid rgba(184,255,61,.35);box-shadow:0 0 80px rgba(184,255,61,.12),inset 0 0 40px rgba(184,255,61,.08);animation:funPulse 3.5s ease-in-out infinite}.console-orb:after{content:"";display:block;width:40%;height:40%;margin:30%;border-radius:50%;background:var(--acid);filter:blur(14px);opacity:.65}.console-lines{position:absolute;left:18px;bottom:18px;display:grid;gap:6px;font:9px 'DM Mono',monospace;color:#73808b}.console-lines b{color:var(--acid)}@keyframes funPulse{50%{transform:scale(1.08) rotate(4deg);box-shadow:0 0 110px rgba(184,255,61,.18),inset 0 0 55px rgba(184,255,61,.12)}}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.game-card{position:relative;min-height:390px;padding:28px;text-align:left;border:1px solid var(--line);border-radius:24px;background:#0c1014;color:inherit;cursor:pointer;overflow:hidden;transition:transform .55s cubic-bezier(.2,.7,.2,1),border-color .4s,box-shadow .55s}.game-card:before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 70% 25%,rgba(184,255,61,.12),transparent 35%);transform:translateY(20%);transition:transform .7s}.game-card:hover{transform:translateY(-10px) rotate(-.5deg);border-color:rgba(184,255,61,.35);box-shadow:0 35px 80px rgba(0,0,0,.35)}.game-card:hover:before{transform:translateY(0)}.game-card>*{position:relative;z-index:1}.game-no{position:absolute;right:22px;top:20px;font:10px 'DM Mono',monospace;color:#66717b}.game-icon{display:grid;place-items:center;width:74px;height:74px;border:1px solid rgba(184,255,61,.28);border-radius:20px;font-size:38px;color:var(--acid);margin-bottom:70px;background:rgba(184,255,61,.035)}.game-kicker{display:block;font:9px 'DM Mono',monospace;letter-spacing:.16em;color:#78848e}.game-card h3{font-size:34px;letter-spacing:-.04em;margin:10px 0}.game-card p{color:#9aa5b0;line-height:1.6;max-width:35ch}.game-cta{display:block;margin-top:28px;font:10px 'DM Mono',monospace;letter-spacing:.15em;color:var(--acid)}.game-memory:before{background:radial-gradient(circle at 70% 25%,rgba(111,170,255,.12),transparent 35%)}.game-kitchen:before{background:radial-gradient(circle at 70% 25%,rgba(255,145,61,.12),transparent 35%)}.game-memory .game-icon{color:#76b5ff;border-color:rgba(118,181,255,.25)}.game-kitchen .game-icon{color:#ff9a55;border-color:rgba(255,154,85,.25)}.score-wall{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:22px;overflow:hidden}.score-wall>div{padding:26px;border-right:1px solid var(--line)}.score-wall>div:last-child{border-right:0}.score-wall small,.score-wall span{display:block;font:9px 'DM Mono',monospace;color:#737e88;letter-spacing:.14em}.score-wall strong{display:block;font:800 48px/1 Manrope,sans-serif;margin:12px 0}.reset-scores{margin-top:14px;background:none;border:0;color:#66717b;text-decoration:underline;cursor:pointer;font:10px 'DM Mono',monospace}.fun-note{padding-bottom:130px}.game-modal[hidden]{display:none}.game-modal{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;padding:20px}.game-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(16px)}.game-window{position:relative;z-index:1;width:min(980px,96vw);max-height:92vh;overflow:auto;border:1px solid rgba(255,255,255,.13);border-radius:28px;background:#0b0f13;box-shadow:0 50px 160px rgba(0,0,0,.65);animation:gameIn .45s cubic-bezier(.2,.8,.2,1)}@keyframes gameIn{from{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:none}}.game-close{position:absolute;right:16px;top:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#12171d;color:#fff;font-size:24px;cursor:pointer;z-index:2}.game-window-head{display:flex;justify-content:space-between;align-items:flex-start;padding:28px 28px 20px;border-bottom:1px solid var(--line)}.game-window-head h2{font-size:42px;letter-spacing:-.05em;margin:6px 0 0}.game-hud{display:flex;gap:18px;padding-top:8px;font:9px 'DM Mono',monospace;color:#6f7b85;letter-spacing:.12em}.game-hud b{color:var(--acid);margin-left:5px}.game-stage{padding:28px;min-height:520px}.bug-intro,.memory-result{text-align:center;display:grid;place-items:center;min-height:440px}.bug-intro p,.memory-result p{max-width:52ch;color:#98a3ad;line-height:1.6}.mini-btn{border:0;border-radius:12px;background:var(--acid);color:#050706;padding:14px 20px;font-weight:800;cursor:pointer;box-shadow:0 12px 30px rgba(184,255,61,.13)}.bug-board{position:relative;min-height:480px;border:1px dashed rgba(184,255,61,.2);border-radius:20px;background:radial-gradient(circle at center,rgba(184,255,61,.04),transparent 45%);overflow:hidden}.bug-target{position:absolute;min-width:58px;height:38px;padding:0 12px;border:1px solid rgba(255,70,70,.5);border-radius:999px;background:#1a0f12;color:#ff6b6b;font:9px 'DM Mono',monospace;cursor:pointer;animation:bugFloat 1.3s ease-in-out infinite alternate}.bug-target.gold{border-color:rgba(255,211,73,.7);color:#ffd349;background:#211b0c;box-shadow:0 0 30px rgba(255,211,73,.16)}@keyframes bugFloat{to{margin-top:7px;transform:scale(1.05)}}.result-big{font:800 clamp(72px,14vw,140px)/.8 Manrope,sans-serif;letter-spacing:-.09em;color:var(--acid)}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:680px;margin:30px auto}.memory-card{aspect-ratio:1;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:linear-gradient(145deg,#151b21,#0d1116);color:var(--acid);cursor:pointer;transform-style:preserve-3d;transition:transform .45s,background .3s,border-color .3s}.memory-card span{display:block;font-size:34px;opacity:0;transform:rotateY(180deg);transition:.35s}.memory-card.flipped,.memory-card.matched{background:rgba(184,255,61,.08);border-color:rgba(184,255,61,.35);transform:rotateY(180deg)}.memory-card.flipped span,.memory-card.matched span{opacity:1}.memory-card.matched{box-shadow:0 0 30px rgba(184,255,61,.08)}.game-tip{text-align:center;color:#6e7983;font:10px 'DM Mono',monospace;letter-spacing:.08em}.rush-wrap{max-width:760px;margin:auto}.rush-order{display:flex;justify-content:center;gap:10px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#0e1318;margin-bottom:20px}.rush-order span{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:rgba(255,255,255,.04);color:#ffad70;font-size:26px}.rush-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ingredient{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#10151b;color:#dfe6df;cursor:pointer;text-align:left}.ingredient:hover{border-color:rgba(255,154,85,.4);transform:translateY(-2px)}.ingredient b{font-size:22px;color:#ff9a55}.ingredient span{font:9px 'DM Mono',monospace;letter-spacing:.1em}.fun-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;z-index:5000;padding:12px 16px;border:1px solid rgba(184,255,61,.3);border-radius:999px;background:#10161a;color:#dce8d8;font:10px 'DM Mono',monospace;transition:.3s;pointer-events:none}.fun-toast.show{opacity:1;transform:translate(-50%,0)}body.game-open{overflow:hidden}
@media(max-width:820px){.fun-hero{padding-top:85px}.fun-hero-grid{grid-template-columns:1fr;gap:35px}.fun-console{max-width:620px}.game-grid{grid-template-columns:1fr}.game-card{min-height:300px}.game-icon{margin-bottom:45px}.score-wall{grid-template-columns:1fr}.score-wall>div{border-right:0;border-bottom:1px solid var(--line)}.score-wall>div:last-child{border-bottom:0}.game-window-head{display:block}.game-hud{margin-top:15px;flex-wrap:wrap}.game-stage{padding:18px;min-height:430px}.bug-board{min-height:400px}.rush-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.fun-hero h1{font-size:64px}.console-screen{min-height:270px}.game-window{border-radius:20px}.game-window-head{padding:22px 18px 16px}.game-window-head h2{font-size:34px}.game-stage{padding:14px}.memory-board{gap:7px}.memory-card{border-radius:11px}.memory-card span{font-size:24px}.rush-actions{grid-template-columns:1fr 1fr}.ingredient{padding:11px}.game-card{padding:22px}}
@media(prefers-reduced-motion:reduce){.console-orb,.game-window,.bug-target{animation:none!important}.game-card,.memory-card,.ingredient{transition:none!important}}
.landing-fun{margin:18px 0 0}.landing-fun a{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:18px 20px;border:1px solid rgba(184,255,61,.16);border-radius:16px;background:rgba(184,255,61,.025);color:inherit;transition:.35s}.landing-fun a:hover{transform:translateY(-3px);border-color:rgba(184,255,61,.35);background:rgba(184,255,61,.05)}.landing-fun span,.landing-fun small{font:9px 'DM Mono',monospace;color:#78848e;letter-spacing:.13em;text-transform:uppercase}.landing-fun strong{font-size:15px}.fun-nav-link{color:var(--acid)!important}@media(max-width:700px){.landing-fun a{grid-template-columns:1fr}.landing-fun small{margin-top:-10px}}

/* =========================================================
   V20 — editorial redesign
   Goal: quieter, more human, less template-like.
   ========================================================= */
:root{
  --v20-ink:#171715;--v20-paper:#f3f0e8;--v20-muted:#77746c;--v20-line:rgba(23,23,21,.14);
  --v20-dark:#11110f;--v20-dark2:#171714;--v20-acid:#c9ff3d;--v20-white:#f8f7f2;
  --v20-serif:Georgia,"Times New Roman",serif;--v20-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
html{scroll-behavior:smooth}body.v20-page,body.v20-home{font-family:var(--v20-sans);letter-spacing:-.012em}body.v20-page{background:var(--v20-paper);color:var(--v20-ink)}body.cyber-theme{background:#11110f;color:#f2f1eb}body.culinary-theme{background:var(--v20-paper);color:var(--v20-ink)}
.v20-noise{position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}
.v20-page .scroll-progress{height:2px;background:transparent}.v20-page .scroll-progress span{background:var(--v20-acid);height:2px}
.v20-site-nav{position:sticky;top:0;z-index:80;height:76px;padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;gap:28px;background:rgba(17,17,15,.84);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08)}.culinary-theme .v20-site-nav{background:rgba(243,240,232,.9);border-color:var(--v20-line)}
.v20-site-nav .nav-brand{font-size:20px;font-weight:800;letter-spacing:-.06em;color:#fff;text-decoration:none}.culinary-theme .v20-site-nav .nav-brand{color:var(--v20-ink)}.v20-site-nav .nav-brand span,.v20-logo span{color:var(--v20-acid)}
.v20-site-nav nav{display:flex;gap:24px;margin-left:20px}.v20-site-nav nav a{font-size:13px;text-decoration:none;color:rgba(255,255,255,.6);transition:.25s ease}.culinary-theme .v20-site-nav nav a{color:rgba(23,23,21,.55)}.v20-site-nav nav a:hover,.v20-site-nav nav a.active{color:#fff}.culinary-theme .v20-site-nav nav a:hover,.culinary-theme .v20-site-nav nav a.active{color:var(--v20-ink)}
.v20-site-nav .nav-status{margin-left:auto;font-size:10px;letter-spacing:.13em;color:rgba(255,255,255,.45);display:flex;align-items:center;gap:8px}.culinary-theme .v20-site-nav .nav-status{color:var(--v20-muted)}.v20-site-nav .status-dot{width:6px;height:6px;border-radius:50%;background:var(--v20-acid);box-shadow:0 0 0 4px rgba(201,255,61,.08)}.v20-site-nav .lang-btn,.v20-site-nav .menu-btn{border:0;background:none;color:inherit}.v20-site-nav .lang-btn{font-size:11px;letter-spacing:.12em}.v20-site-nav .menu-btn{display:none;font-size:24px}
.v20-page main{overflow:hidden}.v20-page-hero{min-height:calc(100svh - 76px);padding:clamp(56px,9vw,130px) clamp(20px,7vw,110px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:clamp(40px,8vw,140px);align-items:center}.v20-hero-text{max-width:850px}.v20-kicker,.v20-section-label{font-size:10px;line-height:1;letter-spacing:.18em;text-transform:uppercase;color:var(--v20-muted)}.cyber-theme .v20-kicker,.cyber-theme .v20-section-label{color:rgba(255,255,255,.43)}.v20-page-hero h1{margin:22px 0 26px;font-size:clamp(50px,8.4vw,116px);line-height:.9;letter-spacing:-.075em;font-weight:620;max-width:900px}.v20-hero-lede{max-width:600px;font-size:clamp(18px,2vw,24px);line-height:1.45;color:var(--v20-muted)}.cyber-theme .v20-hero-lede{color:rgba(255,255,255,.58)}
.v20-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.v20-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;text-decoration:none;font:600 12px var(--v20-sans);letter-spacing:.02em;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease;cursor:pointer}.v20-btn:hover{transform:translateY(-2px)}.v20-btn-solid{background:var(--v20-ink);color:var(--v20-paper);border:1px solid var(--v20-ink)}.cyber-theme .v20-btn-solid{background:var(--v20-acid);color:#10110e;border-color:var(--v20-acid)}.v20-btn-line{background:transparent;color:inherit;border:1px solid currentColor;opacity:.72}.v20-btn-line:hover{opacity:1}
.v20-portrait{justify-self:end;width:min(100%,390px)}.v20-portrait-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:#252521;border:1px solid rgba(255,255,255,.1)}.culinary-theme .v20-portrait-frame{background:#ddd8ce;border-color:var(--v20-line)}.v20-portrait-frame:after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.16);pointer-events:none}.v20-portrait-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);filter:saturate(.9) contrast(1.03)}.v20-portrait-frame:hover img{transform:scale(1.035)}.v20-portrait-frame>span{position:absolute;left:20px;bottom:18px;z-index:2;color:#fff;font-size:9px;letter-spacing:.18em}.culinary-theme .v20-portrait-frame>span{color:var(--v20-ink)}.v20-portrait-note{margin-top:12px;font-size:9px;line-height:1.5;letter-spacing:.14em;color:var(--v20-muted)}.v20-stats{display:flex;gap:0;margin-top:44px;border-top:1px solid currentColor;max-width:620px}.v20-stats .stat-orbit{min-width:130px;padding:13px 18px 0 0;border-right:1px solid currentColor;opacity:.7}.v20-stats .stat-orbit+ .stat-orbit{padding-left:18px}.v20-stats small,.v20-stats span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--v20-muted)}.v20-stats strong{display:block;font-size:30px;line-height:1.1;margin:4px 0}.cyber-theme .v20-stats{color:rgba(255,255,255,.55)}
.v20-intro-band{padding:clamp(70px,10vw,150px) clamp(20px,7vw,110px);display:grid;grid-template-columns:.45fr 1.55fr;gap:40px;border-top:1px solid var(--v20-line)}.cyber-theme .v20-intro-band{border-color:rgba(255,255,255,.1)}.v20-intro-band>div{max-width:900px}.v20-intro-band h2{font-size:clamp(40px,6vw,78px);letter-spacing:-.065em;line-height:.95;margin:0 0 26px}.v20-intro-band p{max-width:680px;font-size:clamp(17px,1.8vw,22px);line-height:1.6;color:var(--v20-muted)}.cyber-theme .v20-intro-band p{color:rgba(255,255,255,.58)}.v20-signoff{font-family:var(--v20-serif);font-style:italic;font-size:20px!important;color:inherit!important}
.v20-content-section{padding:clamp(70px,9vw,130px) clamp(20px,7vw,110px);border-top:1px solid var(--v20-line)}.cyber-theme .v20-content-section{border-color:rgba(255,255,255,.1)}.v20-soft-section{background:#e9e5dc}.cyber-theme .v20-soft-section{background:#151512}.v20-section-head{display:grid;grid-template-columns:.45fr 1.55fr;gap:40px;margin-bottom:48px}.v20-section-head h2{font-size:clamp(38px,5vw,68px);line-height:.95;letter-spacing:-.06em;margin:0 0 16px}.v20-section-head p{max-width:620px;color:var(--v20-muted);font-size:16px;line-height:1.6;margin:0}.cyber-theme .v20-section-head p{color:rgba(255,255,255,.5)}
.v20-skill-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--v20-line);border-left:1px solid var(--v20-line)}.cyber-theme .v20-skill-grid{border-color:rgba(255,255,255,.1)}.v20-skill-grid .skill-card{min-height:220px;padding:24px;border-right:1px solid var(--v20-line);border-bottom:1px solid var(--v20-line);background:transparent;transition:background .3s ease,transform .3s ease}.cyber-theme .v20-skill-grid .skill-card{border-color:rgba(255,255,255,.1)}.v20-skill-grid .skill-card:hover{background:rgba(255,255,255,.06);transform:translateY(-3px)}.culinary-theme .v20-skill-grid .skill-card:hover{background:#f8f6f0}.v20-skill-grid .skill-number{font-size:10px;color:var(--v20-muted)}.v20-skill-grid h3{font-size:27px;letter-spacing:-.04em;margin:54px 0 12px}.v20-skill-grid p{color:var(--v20-muted);line-height:1.55;max-width:340px}.v20-skill-grid .card-line{display:block;width:38px;height:2px;background:var(--v20-acid);margin-top:26px}
.v20-media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.v20-media-grid .media-card{background:rgba(255,255,255,.5);border:1px solid var(--v20-line);overflow:hidden}.cyber-theme .v20-media-grid .media-card{background:#1b1b18;border-color:rgba(255,255,255,.1)}.v20-media-grid .media-open{position:relative;display:block;width:100%;padding:0;border:0;background:#ddd;cursor:pointer;overflow:hidden;aspect-ratio:4/3}.v20-media-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;filter:saturate(.88)}.v20-media-grid .media-open:hover img{transform:scale(1.04)}.v20-media-grid .media-zoom{position:absolute;left:14px;bottom:14px;background:rgba(17,17,15,.82);color:#fff;padding:7px 9px;font-size:9px;letter-spacing:.12em}.v20-media-grid .media-body{padding:18px 18px 22px}.v20-media-grid .meta,.v20-project-grid .meta{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--v20-muted)}.v20-media-grid h3{margin:9px 0 0;font-size:22px;letter-spacing:-.035em}
.v20-project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.v20-project-grid .project-card{border-top:1px solid var(--v20-line);padding-top:16px;background:transparent;transition:transform .3s ease}.cyber-theme .v20-project-grid .project-card{border-color:rgba(255,255,255,.1)}.v20-project-grid .project-card:hover{transform:translateY(-4px)}.v20-project-grid .project-media{position:relative;aspect-ratio:16/10;background:#292924;overflow:hidden}.v20-project-grid .project-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease,filter .4s ease}.v20-project-grid .project-card:hover .project-media img{transform:scale(1.035);filter:saturate(1)}.v20-project-grid .project-index{position:absolute;top:13px;left:14px;color:#fff;font-size:10px;letter-spacing:.12em}.v20-project-grid .project-corner{position:absolute;right:14px;bottom:13px;color:#fff;background:rgba(17,17,15,.7);padding:6px 8px;font-size:9px;letter-spacing:.1em}.v20-project-grid .project-body{padding:18px 0 10px}.v20-project-grid h3{font-size:34px;line-height:1;letter-spacing:-.055em;margin:9px 0 10px}.v20-project-grid p{max-width:560px;color:var(--v20-muted);line-height:1.55;margin:0 0 14px}.cyber-theme .v20-project-grid p{color:rgba(255,255,255,.5)}.v20-project-grid .tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.v20-project-grid .tag{font-size:9px;padding:6px 8px;border:1px solid var(--v20-line);letter-spacing:.06em}.cyber-theme .v20-project-grid .tag{border-color:rgba(255,255,255,.12)}.v20-project-grid .project-link{color:inherit;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.04em}.v20-project-grid .project-link span{color:var(--v20-acid)}
.v20-album-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.v20-album-grid .album-card{border:1px solid var(--v20-line);background:#f4f1e9;overflow:hidden}.v20-album-grid .album-cover{position:relative;display:block;width:100%;aspect-ratio:16/10;padding:0;border:0;overflow:hidden;background:#ddd;cursor:pointer}.v20-album-grid .album-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.v20-album-grid .album-cover:hover img{transform:scale(1.035)}.v20-album-grid .album-index,.v20-album-grid .album-count,.v20-album-grid .album-open{position:absolute;background:rgba(17,17,15,.75);color:#fff;font-size:9px;letter-spacing:.12em;padding:7px 8px}.v20-album-grid .album-index{left:12px;top:12px}.v20-album-grid .album-count{right:12px;top:12px}.v20-album-grid .album-open{left:12px;bottom:12px}.v20-album-grid .album-body{padding:20px}.v20-album-grid .meta{font-size:9px;letter-spacing:.12em;color:var(--v20-muted);text-transform:uppercase}.v20-album-grid h3{font-size:32px;letter-spacing:-.05em;line-height:1;margin:9px 0}.v20-album-grid p{color:var(--v20-muted);line-height:1.55}.v20-album-grid .project-link{font-size:11px;color:var(--v20-ink);font-weight:700;text-decoration:none}.v20-album-grid .album-strip{display:flex;gap:5px;margin-top:16px;overflow:hidden}.v20-album-grid .album-strip img{width:54px;height:42px;object-fit:cover;filter:saturate(.8)}
.v20-contact{padding:clamp(80px,12vw,170px) clamp(20px,7vw,110px);display:grid;grid-template-columns:.45fr 1.55fr;gap:40px;background:#181815;color:#f4f2ea}.culinary-theme .v20-contact{background:#171714;color:#f4f2ea}.v20-contact h2{font-size:clamp(48px,7vw,94px);line-height:.9;letter-spacing:-.07em;margin:0 0 22px}.v20-contact p{max-width:620px;color:rgba(255,255,255,.55);line-height:1.6;font-size:17px}.v20-link-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.14);margin-top:42px}.v20-link-grid .link-tile{padding:16px 12px 20px 0;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.14);position:relative;transition:opacity .25s ease}.v20-link-grid .link-tile:hover{opacity:.65}.v20-link-grid small{display:block;font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.35);margin-bottom:10px}.v20-link-grid strong{font-size:13px}.v20-link-grid span{position:absolute;right:8px;top:16px;color:var(--v20-acid)}
.v20-footer{display:flex;justify-content:space-between;gap:20px;padding:22px clamp(20px,7vw,110px);font-size:9px;letter-spacing:.12em;color:var(--v20-muted);border-top:1px solid var(--v20-line)}.cyber-theme .v20-footer{border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.35)}
.empty-state{grid-column:1/-1;padding:34px;border:1px dashed var(--v20-line);display:flex;flex-direction:column;gap:6px}.empty-state strong{font-size:18px}.empty-state span{color:var(--v20-muted);font-size:14px}
/* home */
body.v20-home{background:var(--v20-paper);color:var(--v20-ink);min-height:100vh}.v20-home-shell{max-width:1600px;margin:auto}.v20-home-nav{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--v20-line)}.v20-logo{font-size:20px;font-weight:850;letter-spacing:-.07em;color:inherit;text-decoration:none}.v20-nav-note,.v20-nav-fun{font-size:10px;letter-spacing:.12em;text-transform:uppercase}.v20-nav-note{color:var(--v20-muted)}.v20-nav-fun{color:inherit;text-decoration:none}.v20-nav-fun span{color:#718d00;margin-left:6px}.v20-home-hero{min-height:70vh;padding:clamp(60px,9vw,130px) clamp(20px,6vw,96px);display:grid;grid-template-columns:1.5fr .5fr;align-items:end;gap:60px}.v20-kicker{font-size:10px;letter-spacing:.17em;color:var(--v20-muted)}.v20-home-hero h1{font-size:clamp(64px,10vw,145px);line-height:.84;letter-spacing:-.085em;margin:24px 0;max-width:1100px;font-weight:620}.v20-home-hero em,.v20-world h2 em,.v20-home-story h2 em,.v20-home-fun h2 em,.v20-fun-hero h1 em{font-family:var(--v20-serif);font-weight:400}.v20-lede{font-size:clamp(18px,2vw,25px);line-height:1.45;max-width:650px;color:#5e5b54}.v20-hero-meta{display:flex;gap:28px;margin-top:35px;font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--v20-muted)}.v20-hero-mark{justify-self:end;width:170px;height:170px;border:1px solid var(--v20-line);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transform:rotate(-8deg)}.v20-hero-mark span{font:italic 20px var(--v20-serif)}.v20-hero-mark i{width:40px;height:1px;background:var(--v20-ink);margin:13px 0}.v20-hero-mark b{font-size:9px;letter-spacing:.15em}.v20-worlds{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--v20-ink);border-bottom:1px solid var(--v20-ink)}.v20-world{min-height:570px;padding:28px clamp(20px,4vw,60px);display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;transition:transform .4s ease}.v20-world:hover{transform:translateY(-5px)}.v20-world-dark{background:#161613;color:#f5f2e9}.v20-world-light{background:#e6e1d7;color:#171715;border-left:1px solid var(--v20-ink)}.v20-world .world-top,.v20-world .world-foot{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.14em}.v20-world .world-main{max-width:620px}.v20-world .world-main p{max-width:390px;font-size:15px;line-height:1.5;color:rgba(255,255,255,.5)}.v20-world-light .world-main p{color:#6e6a61}.v20-world h2{font-size:clamp(55px,7vw,100px);line-height:.86;letter-spacing:-.075em;margin:35px 0 0}.v20-world .world-foot{padding-top:20px;border-top:1px solid rgba(255,255,255,.15)}.v20-world-light .world-foot{border-color:var(--v20-line)}.v20-world .world-foot strong{font-size:20px;color:var(--v20-acid)}.v20-home-story{padding:clamp(80px,12vw,170px) clamp(20px,6vw,96px)}.v20-section-label{display:block}.v20-story-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;margin-top:55px}.v20-story-grid h2{font-size:clamp(50px,7vw,100px);line-height:.88;letter-spacing:-.07em;margin:0}.v20-story-grid p{font-size:20px;line-height:1.55;color:#625f58;max-width:520px}.v20-story-grid a{color:var(--v20-ink);font-size:12px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--v20-ink);padding-bottom:7px}.v20-home-fun{padding:clamp(55px,7vw,100px) clamp(20px,6vw,96px);display:grid;grid-template-columns:1.4fr .6fr;gap:50px;align-items:end;background:#c8f43e}.v20-home-fun h2{font-size:clamp(48px,6vw,84px);line-height:.9;letter-spacing:-.07em;margin:20px 0 0}.v20-home-fun>a{min-height:180px;color:#171715;text-decoration:none;border:1px solid rgba(23,23,21,.35);padding:22px;display:flex;flex-direction:column;justify-content:space-between}.v20-home-fun>a strong{font-size:30px;align-self:flex-end}.v20-home-fun>a small{font-size:11px;color:#575a2d}.v20-home-footer{display:flex;justify-content:space-between;padding:20px clamp(20px,6vw,96px);font-size:9px;letter-spacing:.13em;color:#77746c}
/* fun */
.v20-fun-hero{min-height:70vh;padding:clamp(60px,9vw,120px) clamp(20px,7vw,110px);display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:60px;background:#11110f;color:#f3f1e9}.v20-fun-hero h1{font-size:clamp(65px,9vw,130px);line-height:.84;letter-spacing:-.08em;margin:22px 0}.v20-fun-hero .v20-hero-lede{max-width:620px;color:rgba(255,255,255,.56)}.v20-fun-note{justify-self:end;width:min(280px,100%);border:1px solid rgba(255,255,255,.13);padding:24px;position:relative}.v20-fun-note span{font-size:9px;letter-spacing:.14em;color:rgba(255,255,255,.35)}.v20-fun-note strong{display:block;font-size:68px;line-height:1;margin:30px 0 10px;letter-spacing:-.06em}.v20-fun-note small{color:rgba(255,255,255,.45)}.v20-fun-note i{position:absolute;right:20px;top:20px;width:8px;height:8px;background:var(--v20-acid);border-radius:50%}.v20-game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--v20-line);border:1px solid var(--v20-line)}.v20-game-card{min-height:340px;border:0;padding:28px;background:var(--v20-paper);color:var(--v20-ink);text-align:left;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;transition:background .3s ease,transform .3s ease}.v20-game-card:hover{background:#c8f43e;transform:translateY(-4px)}.v20-game-card>span{font-size:9px;letter-spacing:.14em;color:var(--v20-muted)}.v20-game-card h3{font-size:40px;letter-spacing:-.06em;margin:auto 0 12px}.v20-game-card p{max-width:310px;color:#66635c;line-height:1.5}.v20-game-card strong{font-size:11px;margin-top:25px}.v20-game-card strong b{margin-left:10px;color:#718d00}.v20-score-section{padding:80px clamp(20px,7vw,110px);background:#171714;color:#f4f1e9}.v20-score-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.13);margin-top:35px}.v20-score-grid>div{padding:22px 18px 25px 0;border-bottom:1px solid rgba(255,255,255,.13)}.v20-score-grid span,.v20-score-grid small{display:block;font-size:9px;letter-spacing:.14em;color:rgba(255,255,255,.38)}.v20-score-grid strong{display:block;font-size:55px;letter-spacing:-.06em;margin:14px 0 4px}.v20-reset{margin-top:25px;background:none;border:0;color:rgba(255,255,255,.45);font-size:10px;text-decoration:underline;cursor:pointer}.v20-reset:hover{color:#fff}
/* keep game modal, but make it coherent */
.v20-page .game-modal{z-index:200}.v20-page .game-window{border:1px solid rgba(255,255,255,.12);background:#151513;border-radius:0;box-shadow:0 30px 90px rgba(0,0,0,.5)}
/* motion */
.v20-page .reveal,.v20-home .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.v20-page .reveal.is-visible,.v20-home .reveal.is-visible{opacity:1;transform:none}
@media (max-width:900px){.v20-site-nav nav{display:none}.v20-site-nav .menu-btn{display:block}.v20-site-nav.nav-open nav{display:flex;position:absolute;left:14px;right:14px;top:68px;flex-direction:column;gap:0;background:#151513;border:1px solid rgba(255,255,255,.1);padding:8px}.culinary-theme .v20-site-nav.nav-open nav{background:#f3f0e8;border-color:var(--v20-line)}.v20-site-nav.nav-open nav a{padding:15px;border-bottom:1px solid rgba(255,255,255,.08)}.culinary-theme .v20-site-nav.nav-open nav a{border-color:var(--v20-line)}.v20-site-nav .nav-status{display:none}.v20-page-hero,.v20-fun-hero{grid-template-columns:1fr;min-height:auto}.v20-portrait,.v20-fun-note{justify-self:start;width:min(340px,100%)}.v20-section-head,.v20-intro-band,.v20-contact,.v20-story-grid{grid-template-columns:1fr}.v20-skill-grid{grid-template-columns:1fr 1fr}.v20-media-grid,.v20-project-grid,.v20-album-grid{grid-template-columns:1fr}.v20-link-grid{grid-template-columns:1fr 1fr}.v20-home-hero{grid-template-columns:1fr;min-height:auto}.v20-hero-mark{display:none}.v20-worlds{grid-template-columns:1fr}.v20-world-light{border-left:0;border-top:1px solid var(--v20-ink)}.v20-home-fun{grid-template-columns:1fr}.v20-game-grid{grid-template-columns:1fr}.v20-score-grid{grid-template-columns:1fr}.v20-home-nav .v20-nav-note{display:none}}
@media (max-width:560px){.v20-site-nav{height:66px;padding:0 16px}.v20-page-hero{padding:55px 18px 70px;gap:45px}.v20-page-hero h1{font-size:clamp(48px,14vw,70px)}.v20-stats{margin-top:32px}.v20-stats .stat-orbit{min-width:0;flex:1}.v20-stats .stat-orbit+ .stat-orbit{padding-left:10px}.v20-stats strong{font-size:25px}.v20-intro-band,.v20-content-section,.v20-contact,.v20-score-section{padding-left:18px;padding-right:18px}.v20-section-head{gap:25px;margin-bottom:32px}.v20-skill-grid{grid-template-columns:1fr}.v20-skill-grid .skill-card{min-height:180px}.v20-skill-grid h3{margin-top:38px}.v20-media-grid{gap:12px}.v20-project-grid{gap:38px}.v20-project-grid h3{font-size:30px}.v20-link-grid{grid-template-columns:1fr 1fr}.v20-footer{flex-direction:column;padding:18px}.v20-home-hero{padding:55px 18px 75px}.v20-home-hero h1{font-size:clamp(58px,16vw,88px)}.v20-hero-meta{flex-direction:column;gap:8px}.v20-world{min-height:430px;padding:20px}.v20-world h2{font-size:clamp(50px,15vw,75px)}.v20-home-story{padding:75px 18px}.v20-story-grid{gap:35px;margin-top:35px}.v20-story-grid p{font-size:17px}.v20-home-fun{padding:55px 18px}.v20-home-fun>a{min-height:145px}.v20-fun-hero{padding:55px 18px 70px}.v20-fun-hero h1{font-size:clamp(58px,16vw,90px)}.v20-game-card{min-height:290px}.v20-score-grid strong{font-size:48px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.v20-page .reveal,.v20-home .reveal{opacity:1;transform:none;transition:none}.v20-world,.v20-game-card,.v20-project-grid .project-card,.v20-portrait-frame img{transition:none!important}}

/* V20 admin polish — calmer content studio */
body.admin-theme{font-family:var(--v20-sans);background:#11110f;color:#f4f1e9}.admin-theme .admin-shell{max-width:1440px}.admin-theme .admin-login{border:1px solid rgba(255,255,255,.1);background:#171714;box-shadow:none;border-radius:0}.admin-theme .brand-mark{letter-spacing:-.08em}.admin-theme .eyebrow,.admin-theme .section-label{letter-spacing:.16em}.admin-theme .dashboard-head{border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:28px}.admin-theme .dashboard-head h1{font-size:clamp(38px,5vw,68px);letter-spacing:-.065em}.admin-theme .dash-sub{color:rgba(255,255,255,.45)}.admin-theme .dashboard-stats{gap:0;border:1px solid rgba(255,255,255,.1);background:#171714}.admin-theme .dashboard-stats>div{border-right:1px solid rgba(255,255,255,.1);padding:18px}.admin-theme .dashboard-stats>div:last-child{border-right:0}.admin-theme .dashboard-stats strong{font-size:27px;letter-spacing:-.04em}.admin-theme .admin-tabs{position:sticky;top:0;z-index:20;background:rgba(17,17,15,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.1);padding:7px 0}.admin-theme .tab{border-radius:0;color:rgba(255,255,255,.48);padding:12px 14px}.admin-theme .tab.active{background:#c8f43e;color:#11110f}.admin-theme .tab-panel{background:#171714;border:1px solid rgba(255,255,255,.1);border-radius:0;box-shadow:none}.admin-theme .panel-head{border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:18px}.admin-theme .panel-head h2{font-size:32px;letter-spacing:-.05em}.admin-theme input,.admin-theme textarea,.admin-theme select{background:#121210;border-color:rgba(255,255,255,.13);border-radius:0;color:#f4f1e9}.admin-theme input:focus,.admin-theme textarea:focus,.admin-theme select:focus{border-color:#c8f43e;box-shadow:0 0 0 3px rgba(200,244,62,.08)}.admin-theme label{color:rgba(255,255,255,.55)}.admin-theme .btn-primary{background:#c8f43e;color:#11110f;border-color:#c8f43e;border-radius:999px}.admin-theme .btn-ghost{border-radius:999px}.admin-theme .admin-list .admin-item{border-radius:0;border-color:rgba(255,255,255,.1);background:#121210}.admin-theme .album-admin-intro{border-left:2px solid #c8f43e;border-radius:0;background:#121210}.admin-theme .toast{border-radius:999px}.admin-theme .modal-card{border-radius:0;background:#171714;border-color:rgba(255,255,255,.12)}
@media(max-width:800px){.admin-theme .dashboard-stats{grid-template-columns:repeat(2,1fr)}.admin-theme .dashboard-stats>div:nth-child(2n){border-right:0}.admin-theme .admin-tabs{overflow-x:auto;justify-content:flex-start}.admin-theme .tab{white-space:nowrap}.admin-theme .dashboard-head{align-items:flex-start;gap:20px}.admin-theme .dash-actions{width:100%;display:flex;flex-wrap:wrap}.admin-theme .form-grid{grid-template-columns:1fr}.admin-theme .form-grid .wide{grid-column:auto}}

/* V20 public detail pages */
.detail-page{background:#f3f0e8;color:#171715;font-family:var(--v20-sans)}.detail-page .site-nav{position:sticky;top:0;z-index:30;background:rgba(243,240,232,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--v20-line);padding:0 clamp(18px,6vw,90px);height:72px}.detail-page .nav-brand{color:#171715;text-decoration:none;font-weight:850}.detail-page .nav-brand span{color:#718d00}.detail-page .site-nav nav a{color:#77746c;text-decoration:none;font-size:12px}.detail-page .site-nav nav a:hover{color:#171715}.detail-page .detail-shell{max-width:1100px;margin:auto;padding:clamp(60px,9vw,120px) 20px}.detail-page .detail-shell>.eyebrow{font-size:10px;letter-spacing:.16em;color:#77746c}.detail-page .detail-shell h1{font-size:clamp(52px,8vw,108px);line-height:.88;letter-spacing:-.075em;max-width:950px;margin:24px 0}.detail-page .detail-meta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#77746c}.detail-page .detail-copy{font-size:19px;line-height:1.6;max-width:720px;color:#5f5b54;margin:35px 0 55px}.detail-page .detail-hero-image{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;margin-bottom:25px}.detail-page .detail-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-page .detail-gallery figure{margin:0;background:#e8e4dc}.detail-page .detail-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.detail-page .detail-gallery figcaption{padding:10px 12px;color:#77746c;font-size:11px}.detail-page .tag-row{display:flex;flex-wrap:wrap;gap:7px}.detail-page .tag{border:1px solid var(--v20-line);padding:7px 9px;font-size:10px}.detail-page .btn{border-radius:999px}.detail-page .site-footer{border-top:1px solid var(--v20-line);color:#77746c;background:#f3f0e8}.detail-page .detail-shell a{text-decoration:none}@media(max-width:650px){.detail-page .site-nav nav{display:none}.detail-page .detail-gallery{grid-template-columns:1fr}.detail-page .detail-shell h1{font-size:clamp(50px,15vw,78px)}}

/* V25 — quiet motion + Perpustakaan Ilmu */
:root{--v25-acid:#c8f43e;--v25-paper:#f3f0e8;--v25-ink:#171715;--v25-muted:#77746c;--v25-line:rgba(23,23,21,.14)}
html{scroll-behavior:smooth}body{overflow-x:hidden}.v20-noise{opacity:.018;mix-blend-mode:multiply}.v20-site-nav{transition:background .35s ease,transform .35s ease,box-shadow .35s ease}.v20-site-nav:hover{box-shadow:0 8px 30px rgba(0,0,0,.04)}
.v20-world,.v20-game-card,.project-card,.skill-card,.media-card,.album-card{will-change:transform}.v20-world:before,.v20-game-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.14) 45%,transparent 65%);transform:translateX(-120%);transition:transform .8s cubic-bezier(.2,.7,.2,1)}.v20-world:hover:before,.v20-game-card:hover:before{transform:translateX(120%)}
.v25-library{background:var(--v25-paper);color:var(--v25-ink)}.library-nav{background:rgba(243,240,232,.88)!important;border-bottom:1px solid var(--v25-line)!important}.library-nav .nav-brand,.library-nav nav a{color:var(--v25-ink)}.library-nav nav a{opacity:.58}.library-nav nav a.active,.library-nav nav a:hover{opacity:1}.library-nav .nav-status{color:#77746c}.library-nav .status-dot{background:#718d00}
.v25-library-hero{min-height:78vh;padding:clamp(95px,12vw,170px) clamp(20px,7vw,110px) 80px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:60px;align-items:end;border-bottom:1px solid var(--v25-line)}.v25-library-hero h1{font-size:clamp(70px,13vw,180px);line-height:.82;letter-spacing:-.085em;margin:22px 0 35px;max-width:900px}.v25-library-hero h1 em{font-family:Georgia,serif;font-weight:400}.v25-library-hero .v20-hero-lede{max-width:620px;color:#625f58}.library-hero-note{border-top:1px solid var(--v25-line);padding-top:18px;align-self:end}.library-hero-note span,.library-hero-note small{display:block;font-size:9px;letter-spacing:.15em;color:var(--v25-muted)}.library-hero-note strong{display:block;font-size:105px;line-height:.9;letter-spacing:-.08em;margin:18px 0 10px}.library-toolbar{padding:35px clamp(20px,7vw,110px);display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:30px;align-items:end;border-bottom:1px solid var(--v25-line);position:sticky;top:72px;z-index:20;background:rgba(243,240,232,.9);backdrop-filter:blur(16px)}.library-search-wrap label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--v25-muted);margin-bottom:10px}.library-search-wrap input{width:100%;border:0;border-bottom:1px solid var(--v25-line);background:transparent;padding:13px 0;font:inherit;font-size:20px;outline:none;color:var(--v25-ink)}.library-search-wrap input:focus{border-color:var(--v25-ink)}.library-filters{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.library-filter{border:1px solid var(--v25-line);background:transparent;border-radius:999px;padding:9px 13px;font-size:10px;letter-spacing:.08em;cursor:pointer;color:#625f58;transition:all .25s ease}.library-filter:hover,.library-filter.active{background:var(--v25-ink);color:var(--v25-paper);border-color:var(--v25-ink)}.library-grid-wrap{padding:70px clamp(20px,7vw,110px) 120px}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--v25-line);border:1px solid var(--v25-line)}.library-card{background:var(--v25-paper);min-height:510px;opacity:0;transform:translateY(18px);transition:opacity .7s ease var(--delay,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--delay,0ms)}.library-card.is-visible{opacity:1;transform:none}.library-card-main{display:grid;grid-template-columns:44% 56%;min-height:510px;color:inherit;text-decoration:none}.library-card-index{position:absolute;margin:18px;font-size:9px;letter-spacing:.14em;color:#8a877f;z-index:2}.library-card-cover{margin:55px 25px 25px;min-height:330px;background:#dedad1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:12px 15px 30px rgba(23,23,21,.08);transform:rotate(-1.5deg);transition:transform .55s cubic-bezier(.2,.7,.2,1)}.library-card:hover .library-card-cover{transform:rotate(0) translateY(-6px)}.book-spine{position:absolute;left:0;top:0;bottom:0;width:28px;background:#24231f;color:#d8d4ca;display:flex;align-items:center;justify-content:center;font-size:8px;writing-mode:vertical-rl;letter-spacing:.18em}.book-paper{margin-left:28px;width:calc(100% - 28px);height:100%;padding:32px 22px;display:flex;flex-direction:column;justify-content:space-between;background:#f8f6f0;color:#24231f}.book-paper span{font-size:8px;letter-spacing:.16em;color:#77746c}.book-paper strong{font-size:clamp(22px,2.5vw,34px);line-height:.95;letter-spacing:-.05em}.book-paper small{font-size:9px;color:#77746c}.library-card-copy{padding:70px 30px 30px 10px;display:flex;flex-direction:column}.library-card-category{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#8a877f}.library-card-copy h2{font-size:clamp(28px,3.2vw,50px);line-height:.94;letter-spacing:-.065em;margin:22px 0 18px}.library-card-copy p{color:#625f58;line-height:1.55;max-width:330px}.library-card-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:20px}.library-card-tags span{font-size:9px;border:1px solid var(--v25-line);padding:6px 8px;color:#77746c}.library-open{margin-top:auto;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.library-open span{color:#718d00;margin-left:8px}.library-loading,.library-empty{grid-column:1/-1;padding:100px 30px;text-align:center;background:var(--v25-paper)}.library-loading span{display:inline-block;width:8px;height:8px;border-radius:50%;background:#718d00;animation:v25pulse 1.1s ease-in-out infinite}.library-loading p,.library-empty p{color:#77746c}.library-empty span{font-size:9px;letter-spacing:.15em;color:#8a877f}.library-empty h2{font-size:clamp(38px,5vw,70px);letter-spacing:-.07em;margin:20px 0 10px}@keyframes v25pulse{0%,100%{transform:scale(.7);opacity:.4}50%{transform:scale(1.2);opacity:1}}
.v25-library-admin{margin-bottom:24px}.ebook-admin-badge{display:inline-block;margin-top:7px;font-size:9px;letter-spacing:.12em;color:#8fbc00}.admin-theme .v25-library-admin strong{display:block;margin-bottom:7px}.admin-theme .v25-library-admin span{display:block;line-height:1.55}
.detail-page .ebook-reader{width:100%;background:#151513;min-height:min(78vh,850px);padding:10px;box-shadow:0 25px 70px rgba(23,23,21,.15)}.detail-page .ebook-reader iframe{width:100%;height:min(76vh,830px);border:0;background:#fff}.ebook-reader-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.detail-page .ebook-reader-actions .btn{display:inline-flex}
@media(max-width:900px){.v25-library-hero{grid-template-columns:1fr;min-height:auto;padding-top:100px}.library-hero-note{max-width:260px}.library-toolbar{grid-template-columns:1fr;top:66px}.library-filters{justify-content:flex-start}.library-grid{grid-template-columns:1fr}}
@media(max-width:600px){.v25-library-hero{padding:80px 18px 60px}.v25-library-hero h1{font-size:clamp(62px,19vw,100px)}.library-toolbar{padding:25px 18px}.library-grid-wrap{padding:45px 18px 80px}.library-card-main{grid-template-columns:1fr;min-height:auto}.library-card{min-height:0}.library-card-cover{min-height:340px;margin:50px 38px 10px}.library-card-copy{padding:25px 25px 30px;min-height:300px}.library-open{margin-top:35px}.detail-page .ebook-reader{padding:5px;min-height:70vh}.detail-page .ebook-reader iframe{height:68vh}.ebook-reader-actions{flex-direction:column}.ebook-reader-actions .btn{justify-content:center}}
@media(prefers-reduced-motion:reduce){.v20-world:before,.v20-game-card:before{display:none}.library-card,.library-card-cover,.v25-library *{transition:none!important;animation:none!important}.library-card{opacity:1;transform:none}}
.v25-home-library{background:#ece8df;color:#171715}.v25-home-library>a{background:#171715;color:#f3f0e8}.v25-inline-library{padding:90px clamp(20px,7vw,110px);display:flex;justify-content:space-between;gap:30px;align-items:end;border-top:1px solid var(--v20-line);border-bottom:1px solid var(--v20-line);background:#ece8df}.v25-inline-library h2{font-size:clamp(45px,6vw,80px);line-height:.9;letter-spacing:-.07em;margin:20px 0 10px}.v25-inline-library p{color:#77746c;max-width:520px}.v25-inline-library .v20-btn{white-space:nowrap}@media(max-width:650px){.v25-inline-library{flex-direction:column;align-items:flex-start;padding:70px 18px}.v25-inline-library .v20-btn{width:100%;justify-content:center}}

/* =========================================================
   V40 FINAL VISUAL REMASTER — presentation only
   Goal: calmer rhythm, smaller portrait, clearer page separation,
   better editorial hierarchy and softer motion. No data/system changes.
   ========================================================= */
:root{
  --v40-bg:#f5f2eb;
  --v40-ink:#171715;
  --v40-muted:#77736b;
  --v40-line:rgba(23,23,21,.12);
  --v40-dark:#0e100e;
  --v40-dark-soft:#151713;
  --v40-acid:#caff43;
  --v40-warm:#a84331;
  --v40-radius:28px;
  --v40-max:1280px;
}
html{scroll-behavior:smooth}
body.v20-page,body.v20-home{background:var(--v40-bg)}
.v20-noise{opacity:.018;mix-blend-mode:multiply;z-index:9999}

/* ---- universal rhythm ---- */
.v20-page main>section{position:relative}
.v20-page main>section+section{margin-top:0}
.v20-page .v20-intro-band,
.v20-page .v20-content-section,
.v20-page .v20-contact{padding-top:clamp(88px,10vw,148px);padding-bottom:clamp(88px,10vw,148px)}
.v20-page .v20-intro-band{border-top:0;margin:0 clamp(12px,2vw,28px);padding-left:clamp(20px,7vw,105px);padding-right:clamp(20px,7vw,105px);border-radius:0 0 var(--v40-radius) var(--v40-radius)}
.v20-page .v20-content-section{border-top:0;margin:18px clamp(12px,2vw,28px) 0;border-radius:var(--v40-radius);padding-left:clamp(20px,7vw,105px);padding-right:clamp(20px,7vw,105px)}
.v20-page .v20-content-section+ .v20-content-section{margin-top:18px}
.v20-page .v20-soft-section{background:#e9e4da}
.cyber-theme .v20-content-section{background:#141612;border:1px solid rgba(255,255,255,.07)}
.cyber-theme .v20-content-section.v20-soft-section{background:#191b17}
.culinary-theme .v20-content-section{background:#f0ece4;border:1px solid rgba(23,23,21,.06)}
.v20-page .v20-contact{margin:18px 0 0;border-radius:var(--v40-radius) var(--v40-radius) 0 0;padding-left:clamp(20px,7vw,105px);padding-right:clamp(20px,7vw,105px)}
.v20-page .v20-footer{padding-top:28px;padding-bottom:28px}

/* ---- navigation ---- */
.v20-site-nav{height:72px;padding:0 clamp(20px,4.5vw,70px);background:rgba(14,16,14,.78);border-bottom-color:rgba(255,255,255,.07);box-shadow:0 8px 30px rgba(0,0,0,.04)}
.culinary-theme .v20-site-nav,.library-page .v20-site-nav{background:rgba(245,242,235,.84);border-bottom-color:rgba(23,23,21,.08)}
.v20-site-nav nav{gap:20px;margin-left:14px}
.v20-site-nav nav a{font-size:12px;letter-spacing:.01em;opacity:.7}
.v20-site-nav nav a:hover,.v20-site-nav nav a.active{opacity:1}
.v20-site-nav .lang-btn{height:34px;padding:0 10px;border:1px solid currentColor;border-radius:999px;opacity:.65}
.v20-site-nav .menu-btn{width:42px;height:42px;border:1px solid currentColor;border-radius:50%;font-size:18px;opacity:.75}

/* ---- hero: smaller photo + better composition ---- */
.v20-page-hero{min-height:min(820px,calc(100svh - 72px));max-width:1440px;margin:auto;padding:clamp(70px,9vw,118px) clamp(24px,7vw,110px);grid-template-columns:minmax(0,1fr) 245px;gap:clamp(42px,7vw,110px)}
.v20-hero-text{max-width:900px}
.v20-page-hero h1{max-width:820px;margin:20px 0 24px;font-size:clamp(52px,7.1vw,104px);line-height:.91;letter-spacing:-.072em}
.v20-hero-lede{font-size:clamp(17px,1.55vw,21px);max-width:590px;line-height:1.55}
.v20-portrait{width:230px;justify-self:end}
.v20-portrait-frame{aspect-ratio:4/5;border-radius:18px;box-shadow:0 26px 70px rgba(0,0,0,.18)}
.cyber-theme .v20-portrait-frame{border-color:rgba(202,255,67,.18)}
.v20-portrait-frame:after{inset:10px;opacity:.65}
.v20-portrait-frame img{filter:saturate(.84) contrast(1.02)}
.v20-portrait-note{font-size:8px;opacity:.72}
.v20-stats{margin-top:36px;max-width:540px}
.v20-stats strong{font-size:27px}
.v20-actions{margin-top:28px}
.v20-btn{min-height:44px;padding:0 17px}

/* subtle hero atmosphere */
.cyber-theme .v20-page-hero:before{content:"";position:absolute;width:460px;height:460px;right:8%;top:9%;border-radius:50%;background:radial-gradient(circle,rgba(202,255,67,.065),transparent 68%);filter:blur(8px);pointer-events:none}
.culinary-theme .v20-page-hero:before{content:"";position:absolute;width:430px;height:430px;right:7%;top:10%;border-radius:50%;background:radial-gradient(circle,rgba(168,67,49,.07),transparent 68%);filter:blur(12px);pointer-events:none}

/* ---- intro ---- */
.v20-intro-band{background:transparent}
.v20-intro-band>div{max-width:760px}
.v20-intro-band h2{font-size:clamp(42px,5.5vw,72px);max-width:760px}
.v20-intro-band p{font-size:clamp(16px,1.5vw,20px);max-width:700px}
.v20-signoff{opacity:.72}

/* ---- section headings ---- */
.v20-section-head{grid-template-columns:minmax(130px,.38fr) minmax(0,1.62fr);gap:30px;margin-bottom:42px;align-items:start}
.v20-section-head h2{font-size:clamp(36px,4.8vw,62px);max-width:780px}
.v20-section-head p{max-width:560px;font-size:15px}
.v20-section-label{padding-top:7px}

/* ---- skills: less cardy, more editorial ---- */
.v20-skill-grid{grid-template-columns:repeat(3,1fr);border:0;gap:1px;background:var(--v40-line);border-radius:18px;overflow:hidden}
.cyber-theme .v20-skill-grid{background:rgba(255,255,255,.08)}
.v20-skill-grid .skill-card{min-height:205px;padding:25px;background:var(--v40-bg);border:0!important;transform:none!important}
.cyber-theme .v20-skill-grid .skill-card{background:#141612}
.culinary-theme .v20-skill-grid .skill-card{background:#f7f3eb}
.v20-skill-grid .skill-card:hover{background:#fbf9f4}
.cyber-theme .v20-skill-grid .skill-card:hover{background:#1a1d18}
.v20-skill-grid h3{font-size:24px;margin:50px 0 10px}
.v20-skill-grid p{font-size:13px}
.v20-skill-grid .card-line{width:30px;height:1px;opacity:.8}

/* ---- media / recognition ---- */
.v20-media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.v20-media-grid .media-card{border-radius:18px;background:rgba(255,255,255,.42);box-shadow:0 8px 30px rgba(23,23,21,.03)}
.cyber-theme .v20-media-grid .media-card{background:#191b17}
.v20-media-grid .media-open{aspect-ratio:5/3}
.v20-media-grid .media-body{padding:17px 18px 20px}
.v20-media-grid h3{font-size:20px}

/* ---- projects: staggered editorial layout ---- */
.v20-project-grid{grid-template-columns:1.08fr .92fr;gap:42px 28px;align-items:start}
.v20-project-grid .project-card{border-top:0;padding:0;transform:none!important}
.v20-project-grid .project-card:nth-child(even){margin-top:72px}
.v20-project-grid .project-media{aspect-ratio:16/10;border-radius:20px}
.v20-project-grid .project-body{padding:18px 2px 6px}
.v20-project-grid h3{font-size:clamp(28px,3vw,42px)}
.v20-project-grid p{max-width:540px}

/* ---- contact ---- */
.v20-contact{background:#151713}
.v20-contact h2{max-width:820px;font-size:clamp(48px,6.5vw,88px)}
.v20-link-grid{max-width:760px;grid-template-columns:repeat(4,1fr)}

/* ---- home: breathing room and stronger page boundaries ---- */
.v20-home-shell{max-width:1540px}
.v20-home-nav{height:74px;padding:0 clamp(20px,4vw,58px)}
.v20-home-hero{padding:clamp(90px,11vw,150px) clamp(20px,7vw,110px) clamp(100px,12vw,170px);grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);min-height:700px}
.v20-home-hero h1{font-size:clamp(58px,8.4vw,118px);max-width:980px}
.v20-lede{max-width:560px;font-size:17px;line-height:1.65}
.v20-hero-meta{margin-top:36px}
.v20-worlds{gap:1px;background:#171715;border:1px solid #171715}
.v20-world{min-height:500px;padding:clamp(25px,3vw,46px);border-radius:0!important}
.v20-world-dark{background:#11130f}.v20-world-light{background:#eee9df}
.v20-world h2{font-size:clamp(52px,6vw,86px)}
.v20-home-story{padding:clamp(100px,12vw,170px) clamp(20px,7vw,110px);background:#ece8df}
.v20-story-grid{max-width:1120px;margin-top:52px}
.v20-story-grid h2{font-size:clamp(46px,6.5vw,88px)}
.v20-home-fun{margin-top:1px;padding:clamp(80px,9vw,120px) clamp(20px,7vw,110px);grid-template-columns:1.1fr .9fr}
.v25-home-library{background:#ded9cf}
.v25-home-library>a{border-radius:20px;min-height:170px;padding:28px}
.v20-home-footer{padding:25px clamp(20px,4vw,58px)}

/* ---- library spacing ---- */
.v25-library-hero{min-height:620px;padding:clamp(100px,11vw,150px) clamp(20px,7vw,110px);max-width:1440px;margin:auto}
.v25-library-hero h1{font-size:clamp(68px,9vw,124px);line-height:.86}
.library-toolbar{padding:26px clamp(20px,7vw,110px);background:rgba(245,242,235,.94);border-top:1px solid var(--v40-line);border-bottom:1px solid var(--v40-line)}
.library-grid-wrap{padding:90px clamp(20px,7vw,110px) 130px;background:#e9e4da}
.library-grid{max-width:1180px;margin:auto}
.library-card{border-radius:22px!important;box-shadow:0 15px 50px rgba(23,23,21,.06)!important}
.library-card+.library-card{margin-top:24px}
.library-card-cover{border-radius:16px!important}

/* ---- detail pages: clear chapters ---- */
.detail-page .detail-shell{max-width:1180px;padding:clamp(80px,10vw,145px) 20px 130px}
.detail-page .detail-shell h1{max-width:980px}
.detail-page .detail-copy{max-width:720px;font-size:18px}
.detail-page .detail-gallery{gap:18px;margin-top:60px}
.detail-page .detail-gallery img{border-radius:16px}
.detail-page .detail-hero-image{border-radius:22px;box-shadow:0 25px 80px rgba(23,23,21,.08)}

/* ---- mobile: portrait stays intentionally compact ---- */
@media(max-width:900px){
  .v20-page-hero{grid-template-columns:1fr;min-height:auto;gap:48px}
  .v20-portrait{justify-self:start;width:210px}
  .v20-section-head{grid-template-columns:1fr;gap:15px}
  .v20-project-grid{grid-template-columns:1fr;gap:48px}
  .v20-project-grid .project-card:nth-child(even){margin-top:0}
}
@media(max-width:560px){
  .v20-page .v20-content-section,.v20-page .v20-intro-band{margin-left:10px;margin-right:10px;border-radius:22px;padding-top:72px;padding-bottom:72px}
  .v20-page .v20-contact{margin-top:10px;border-radius:22px 22px 0 0;padding-top:78px;padding-bottom:80px}
  .v20-page-hero{padding:58px 18px 72px;gap:38px}
  .v20-portrait{width:174px}
  .v20-portrait-frame{border-radius:15px}
  .v20-page-hero h1{font-size:clamp(47px,13.8vw,70px);margin-top:18px}
  .v20-hero-lede{font-size:16px}
  .v20-stats{margin-top:28px}
  .v20-section-head{margin-bottom:30px}
  .v20-skill-grid{grid-template-columns:1fr}
  .v20-skill-grid .skill-card{min-height:170px}
  .v20-media-grid{grid-template-columns:1fr}
  .v20-media-grid .media-open{aspect-ratio:4/3}
  .v20-project-grid{gap:40px}
  .v20-project-grid h3{font-size:30px}
  .v20-link-grid{grid-template-columns:1fr 1fr}
  .v20-home-hero{padding:72px 18px 90px;min-height:auto}
  .v20-home-hero h1{font-size:clamp(56px,15.5vw,86px)}
  .v20-world{min-height:390px}
  .v20-home-story{padding:78px 18px}
  .v20-home-fun{padding:70px 18px}
  .v25-library-hero{padding:75px 18px 70px}
  .v25-library-hero h1{font-size:clamp(58px,18vw,92px)}
  .library-grid-wrap{padding:65px 18px 90px}
}
@media(prefers-reduced-motion:reduce){
  .v20-page-hero:before{display:none}
  .v20-portrait-frame img,.v20-project-grid .project-media img,.v20-media-grid img{transition:none!important}
}

/* =========================================================
   V45 — NEON REBALANCE / MOBILE AUTOSCALE
   Visual-only patch. No data, routes, API, auth or storage changes.
   Fixes the narrow-column/blank-right-side mobile bug and restores
   the darker neon identity while keeping motion calm.
   ========================================================= */
:root{
  --v45-bg:#090b0f;
  --v45-surface:#0f1318;
  --v45-surface-2:#141a20;
  --v45-ink:#f2f5ee;
  --v45-muted:#8b95a2;
  --v45-line:rgba(255,255,255,.105);
  --v45-neon:#b9ff3d;
  --v45-neon-soft:rgba(185,255,61,.10);
  --v45-warm:#d77a5f;
}

/* Never allow a grid child to define the viewport width. */
html,body{width:100%;max-width:100%;overflow-x:clip}
.v20-home-shell,.v20-page main,.v20-page section,.v20-home section,.v20-home header,.v20-home footer{min-width:0;max-width:100%}
.v20-home *,.v20-page *{min-width:0}
img,video,iframe{max-width:100%}

/* Home: bring back the darker neon character. */
body.v20-home{
  background:
    radial-gradient(circle at 78% 8%,rgba(185,255,61,.055),transparent 24%),
    radial-gradient(circle at 8% 58%,rgba(89,150,255,.035),transparent 22%),
    var(--v45-bg);
  color:var(--v45-ink);
}
.v20-home-shell{max-width:1500px;background:transparent}
.v20-home-nav{
  background:rgba(9,11,15,.82);
  color:var(--v45-ink);
  border-color:var(--v45-line);
  backdrop-filter:blur(16px);
  position:relative;z-index:30;
}
.v20-nav-note{color:var(--v45-muted)}
.v20-nav-fun span,.v20-home .v20-nav-fun span{color:var(--v45-neon)}
.v20-home-hero{
  position:relative;
  background:linear-gradient(180deg,#090b0f 0%,#0b0f13 100%);
  border-bottom:1px solid var(--v45-line);
  overflow:hidden;
}
.v20-home-hero:before{
  content:"";position:absolute;width:min(48vw,620px);height:min(48vw,620px);
  right:-10%;top:-28%;border-radius:50%;
  background:radial-gradient(circle,rgba(185,255,61,.12),rgba(185,255,61,.025) 36%,transparent 70%);
  filter:blur(8px);pointer-events:none;
}
.v20-home-hero:after{
  content:"";position:absolute;left:6%;bottom:0;width:220px;height:1px;background:linear-gradient(90deg,var(--v45-neon),transparent);opacity:.8
}
.v20-home .v20-kicker{color:var(--v45-neon)}
.v20-home-hero h1{color:var(--v45-ink)}
.v20-home-hero h1 em{color:#dbe3d5}
.v20-lede{color:#9aa4af}
.v20-hero-meta{color:#6f7a87}
.v20-hero-mark{border-color:rgba(185,255,61,.28);color:var(--v45-ink);box-shadow:0 0 60px rgba(185,255,61,.035)}
.v20-hero-mark i{background:var(--v45-neon)}
.v20-hero-mark b{color:#aeb8c2}

/* Two worlds: neon cyber + restrained warm culinary, never washed-out. */
.v20-worlds{background:#090b0f;border-color:rgba(255,255,255,.12)}
.v20-world{min-width:0;overflow:hidden}
.v20-world-dark{
  background:
    linear-gradient(145deg,rgba(185,255,61,.055),transparent 34%),
    #0e1310;color:#f3f6ef;
}
.v20-world-light{
  background:
    linear-gradient(145deg,rgba(215,122,95,.10),transparent 34%),
    #181614;color:#f4eee6;border-left-color:rgba(255,255,255,.12)
}
.v20-world .world-top,.v20-world .world-foot{color:#7e8994}
.v20-world-light .world-top,.v20-world-light .world-foot{color:#93877d}
.v20-world .world-main p,.v20-world-light .world-main p{color:#7e8994}
.v20-world-light .world-main p{color:#9c9085}
.v20-world h2{color:#f4f7f0}
.v20-world-light h2{color:#f4eee6}
.v20-world .world-foot{border-color:rgba(255,255,255,.10)}
.v20-world-light .world-foot{border-color:rgba(255,255,255,.10)}
.v20-world .world-foot strong{color:var(--v45-neon)}

/* Story / library / playground become distinct dark chapters. */
.v20-home-story{
  background:#0b0e12;color:var(--v45-ink);border-bottom:1px solid var(--v45-line)
}
.v20-story-grid h2{color:#f1f4ed}
.v20-story-grid p{color:#8b95a1}
.v20-story-grid a{color:#eaf0e6;border-color:rgba(185,255,61,.5)}
.v25-home-library{
  background:#11161b;color:#eef3eb;border-top:1px solid var(--v45-line);border-bottom:1px solid var(--v45-line)
}
.v25-home-library .v20-section-label{color:var(--v45-neon)}
.v25-home-library>a{
  background:#0a0d10;color:#f2f5ee;border:1px solid rgba(185,255,61,.28);box-shadow:0 18px 60px rgba(0,0,0,.22)
}
.v25-home-library>a small{color:#7d897f}
.v20-home-fun:not(.v25-home-library){
  background:
    linear-gradient(135deg,rgba(185,255,61,.08),transparent 45%),
    #101711;color:#f1f5ed;
}
.v20-home-fun:not(.v25-home-library) .v20-section-label{color:var(--v45-neon)}
.v20-home-fun>a{border-color:rgba(185,255,61,.28);background:rgba(8,12,9,.38);color:#f2f5ee}
.v20-home-fun>a strong{color:var(--v45-neon)}
.v20-home-fun>a small{color:#7d8a7d}
.v20-home-footer{background:#080a0d;color:#68727d;border-color:var(--v45-line)}

/* Page sections: dark base for a consistent professional identity. */
body.v20-page.cyber-theme{background:#090c10;color:#edf2eb}
.cyber-theme .v20-content-section{background:#0f1411;border-color:rgba(255,255,255,.07)}
.cyber-theme .v20-content-section.v20-soft-section{background:#111813}
.cyber-theme .v20-intro-band{background:#0b0f13}
.cyber-theme .v20-section-head p,.cyber-theme .v20-hero-lede{color:#8c97a3}
.cyber-theme .v20-skill-grid .skill-card{background:#111711}
.cyber-theme .v20-media-grid .media-card{background:#111711}

/* Portrait: compact on every viewport, never allowed to dominate. */
.v20-portrait{width:200px!important;max-width:200px!important}
.v20-portrait-frame{width:100%;max-width:200px;box-shadow:0 22px 60px rgba(0,0,0,.22)}
.v20-portrait-frame img{display:block}

/* Layout guards for tablet/mobile. */
@media(max-width:900px){
  .v20-home-nav{height:auto;min-height:68px;gap:14px;flex-wrap:wrap;padding:14px 18px}
  .v20-nav-note{display:none}
  .v20-home-hero{grid-template-columns:1fr;gap:42px;min-height:auto}
  .v20-hero-mark{justify-self:start;width:110px;height:110px}
  .v20-worlds{grid-template-columns:1fr!important}
  .v20-world{min-height:420px}
  .v20-world-light{border-left:0;border-top:1px solid rgba(255,255,255,.12)}
  .v20-story-grid{grid-template-columns:1fr;gap:34px}
  .v20-home-fun{grid-template-columns:1fr!important;gap:30px}
  .v20-home-fun>a{min-height:150px}
  .v20-link-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:560px){
  /* Critical fix: every formerly 2-column home section becomes one full viewport column. */
  body.v20-home{font-size:15px}
  .v20-home-nav{width:100%;padding:13px 16px}
  .v20-nav-fun{font-size:9px}
  .v20-home-hero{width:100%;padding:66px 18px 78px;grid-template-columns:minmax(0,1fr)}
  .v20-home-hero h1{font-size:clamp(52px,16vw,82px);max-width:100%;overflow-wrap:anywhere}
  .v20-lede{font-size:16px;max-width:100%}
  .v20-hero-meta{flex-direction:column;gap:7px;align-items:flex-start}
  .v20-hero-mark{width:96px;height:96px}
  .v20-hero-mark b{font-size:7px}
  .v20-worlds{width:100%;display:grid;grid-template-columns:minmax(0,1fr)!important}
  .v20-world{width:100%;min-height:390px;padding:22px 18px}
  .v20-world h2{font-size:clamp(50px,16vw,76px);overflow-wrap:anywhere}
  .v20-home-story{width:100%;padding:76px 18px}
  .v20-story-grid{width:100%;grid-template-columns:minmax(0,1fr);gap:32px}
  .v20-story-grid h2{font-size:clamp(48px,15vw,76px)}
  .v20-story-grid p{font-size:17px}
  .v20-home-fun,.v25-home-library{width:100%;grid-template-columns:minmax(0,1fr)!important;padding:62px 18px}
  .v20-home-fun h2{font-size:clamp(45px,14vw,72px)}
  .v20-home-fun>a{width:100%;min-height:145px}
  .v20-home-footer{width:100%;flex-direction:column;gap:8px;padding:20px 18px}

  /* Page hero: text first, small portrait second. */
  .v20-page-hero{width:100%;grid-template-columns:minmax(0,1fr);padding:58px 18px 70px;gap:34px}
  .v20-portrait{justify-self:start!important;width:148px!important;max-width:148px!important}
  .v20-portrait-frame{max-width:148px;border-radius:14px}
  .v20-page-hero h1{max-width:100%;font-size:clamp(46px,14vw,70px);overflow-wrap:anywhere}
  .v20-page .v20-content-section,.v20-page .v20-intro-band{width:calc(100% - 20px);margin-left:10px;margin-right:10px;padding-left:18px;padding-right:18px}
  .v20-page .v20-contact{width:100%;margin-left:0;margin-right:0;padding-left:18px;padding-right:18px}
  .v20-project-grid,.v20-media-grid,.v20-skill-grid,.v20-album-grid{grid-template-columns:minmax(0,1fr)!important}
  .v20-project-grid .project-card:nth-child(even){margin-top:0}
  .v20-link-grid{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-motion:reduce){
  .v20-home-hero:before{display:none}
}

/* =========================================================
   FINAL VISUAL PASS — BLACK / BLUSH KITCHEN / BREATHING ROOM
   Presentation-only. No data, auth, API, storage or game logic changes.
   ========================================================= */
:root{
  --final-black:#07090b;
  --final-black-2:#0c0f12;
  --final-panel:#111519;
  --final-panel-2:#151a1f;
  --final-ink:#f3f5ef;
  --final-muted:#8e98a4;
  --final-line:rgba(255,255,255,.10);
  --final-neon:#baff3f;
  --kitchen-blush:#f2ddd8;
  --kitchen-cream:#f8eee8;
  --kitchen-panel:#f6e6e1;
  --kitchen-ink:#29211f;
  --kitchen-muted:#766967;
  --kitchen-rose:#b85f69;
}

/* Public pages: no accidental cream blocks outside Culinary. */
body.v20-home,
body.v20-page.cyber-theme,
body.v20-page.fun-page,
body.library-page{
  background:var(--final-black)!important;
  color:var(--final-ink);
}
body.v20-home .v20-home-shell{background:transparent}
body.v20-home .v20-home-hero,
body.v20-home .v20-home-story,
body.v20-home .v20-home-fun,
body.v20-home .v25-home-library,
body.v20-home .v20-home-footer{
  background:var(--final-black)!important;
  color:var(--final-ink);
  border-color:var(--final-line);
}
body.v20-home .v20-home-hero{padding-bottom:clamp(120px,13vw,190px)}
body.v20-home .v20-home-story,
body.v20-home .v20-home-fun,
body.v20-home .v25-home-library{margin-top:24px;border-top:1px solid var(--final-line);border-bottom:1px solid var(--final-line)}
body.v20-home .v20-home-story{padding-top:clamp(110px,12vw,175px);padding-bottom:clamp(110px,12vw,175px)}
body.v20-home .v25-home-library,
body.v20-home .v20-home-fun{padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(90px,10vw,145px)}
body.v20-home .v25-home-library>a,
body.v20-home .v20-home-fun>a{background:var(--final-panel)!important;border-color:rgba(186,255,63,.25);border-radius:22px}
body.v20-home .v20-worlds{background:var(--final-black);border:1px solid var(--final-line);gap:24px;margin-top:24px}
body.v20-home .v20-world{border:1px solid var(--final-line)!important;border-radius:28px;min-height:520px;padding:34px}
body.v20-home .v20-world-light{background:var(--final-panel)!important;color:var(--final-ink);border-left:1px solid var(--final-line)!important}
body.v20-home .v20-world-dark{background:linear-gradient(145deg,rgba(186,255,63,.055),transparent 45%),var(--final-panel)!important}
body.v20-home .v20-world h2,
body.v20-home .v20-world-light h2{color:var(--final-ink)}
body.v20-home .v20-world-main p,
body.v20-home .v20-world-light .world-main p{color:var(--final-muted)}
body.v20-home .v20-story-grid{gap:70px}
body.v20-home .v20-home-footer{margin-top:24px;padding-top:28px;padding-bottom:28px}

/* Hacking: pure black, with neon only as a small accent. */
body.cyber-theme .v20-page-hero{background:var(--final-black);border-bottom:1px solid var(--final-line);padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(100px,11vw,155px)}
body.cyber-theme .v20-content-section,
body.cyber-theme .v20-content-section.v20-soft-section,
body.cyber-theme .v20-intro-band,
body.cyber-theme .v20-contact{background:var(--final-black)!important;color:var(--final-ink);border-color:var(--final-line)}
body.cyber-theme .v20-content-section{margin:24px 0;border-top:1px solid var(--final-line);border-bottom:1px solid var(--final-line)}
body.cyber-theme .v20-content-section{padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(90px,10vw,145px)}
body.cyber-theme .v20-skill-grid,
body.cyber-theme .v20-media-grid,
body.cyber-theme .v20-project-grid{gap:20px}
body.cyber-theme .v20-skill-grid .skill-card,
body.cyber-theme .v20-media-grid .media-card,
body.cyber-theme .v20-project-grid .project-card,
body.cyber-theme .v20-link-grid .link-tile{background:var(--final-panel);border-color:var(--final-line)}
body.cyber-theme .v20-contact{margin-top:24px;border-radius:30px;padding-top:clamp(100px,11vw,160px);padding-bottom:clamp(110px,12vw,175px)}
body.cyber-theme .v20-link-grid{gap:16px}

/* Fun Lab: dark, spacious and quiet. */
body.fun-page .v20-fun-hero{background:var(--final-black);padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(100px,11vw,155px)}
body.fun-page .v20-content-section,
body.fun-page .v20-score-section,
body.fun-page .v20-intro-band{background:var(--final-black)!important;color:var(--final-ink);border-color:var(--final-line)}
body.fun-page .v20-content-section{margin:24px 0;padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(90px,10vw,145px);border-top:1px solid var(--final-line);border-bottom:1px solid var(--final-line)}
body.fun-page .v20-game-grid{gap:20px}
body.fun-page .v20-game-card{background:var(--final-panel);border-color:var(--final-line);border-radius:24px;min-height:250px}
body.fun-page .v20-score-section{margin-top:24px;padding-top:80px;padding-bottom:90px}
body.fun-page .v20-intro-band{margin-top:24px;padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(100px,11vw,155px)}

/* Library: fully black, never washed-out cream. */
body.library-page .v20-site-nav{background:rgba(7,9,11,.90)!important;border-color:var(--final-line);color:var(--final-ink)}
body.library-page .v25-library-hero,
body.library-page .library-toolbar,
body.library-page .library-grid-wrap,
body.library-page .v20-footer{background:var(--final-black)!important;color:var(--final-ink);border-color:var(--final-line)}
body.library-page .v25-library-hero{min-height:680px;padding-top:clamp(100px,12vw,170px);padding-bottom:clamp(110px,12vw,175px)}
body.library-page .library-toolbar{margin-top:24px;padding-top:28px;padding-bottom:28px}
body.library-page .library-grid-wrap{margin-top:24px;padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(100px,11vw,160px)}
body.library-page .library-card{background:var(--final-panel)!important;border-color:var(--final-line)!important;color:var(--final-ink)}
body.library-page .library-card-copy p,
body.library-page .library-card-copy small{color:var(--final-muted)}

/* Culinary is the only public page with a light palette: blush + cream. */
body.culinary-theme{
  background:var(--kitchen-cream)!important;
  color:var(--kitchen-ink)!important;
  background-image:radial-gradient(circle at 90% 0%,rgba(184,95,105,.10),transparent 26%)!important;
}
body.culinary-theme .v20-site-nav{background:rgba(248,238,232,.92)!important;color:var(--kitchen-ink);border-color:rgba(41,33,31,.12)}
body.culinary-theme .v20-page-hero,
body.culinary-theme .v20-intro-band,
body.culinary-theme .v20-content-section,
body.culinary-theme .v20-content-section.v20-soft-section,
body.culinary-theme .v25-inline-library,
body.culinary-theme .v20-contact,
body.culinary-theme .v20-footer{background:var(--kitchen-cream)!important;color:var(--kitchen-ink);border-color:rgba(41,33,31,.12)}
body.culinary-theme .v20-page-hero{padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(100px,11vw,160px)}
body.culinary-theme .v20-intro-band,
body.culinary-theme .v20-content-section,
body.culinary-theme .v25-inline-library{margin-top:24px;border-top:1px solid rgba(41,33,31,.10);border-bottom:1px solid rgba(41,33,31,.10)}
body.culinary-theme .v20-intro-band{padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(90px,10vw,145px)}
body.culinary-theme .v20-content-section{padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(90px,10vw,145px)}
body.culinary-theme .v20-content-section.v20-soft-section{background:var(--kitchen-blush)!important}
body.culinary-theme .v20-section-head p,
body.culinary-theme .v20-hero-lede,
body.culinary-theme .v20-intro-band p{color:var(--kitchen-muted)}
body.culinary-theme .v20-skill-grid,
body.culinary-theme .v20-album-grid,
body.culinary-theme .v20-project-grid{gap:20px}
body.culinary-theme .v20-skill-grid .skill-card,
body.culinary-theme .v20-album-grid>* ,
body.culinary-theme .v20-project-grid .project-card{background:rgba(255,255,255,.35)!important;border-color:rgba(41,33,31,.11)!important;border-radius:22px}
body.culinary-theme .v20-contact{margin-top:24px;border-radius:30px;padding-top:clamp(100px,11vw,160px);padding-bottom:clamp(110px,12vw,175px);background:var(--kitchen-blush)!important}
body.culinary-theme .v20-link-grid{gap:16px}
body.culinary-theme .v20-link-grid .link-tile{background:rgba(255,255,255,.40);border-color:rgba(41,33,31,.12);border-radius:20px}
body.culinary-theme .v20-btn-solid{background:var(--kitchen-rose)!important;border-color:var(--kitchen-rose)!important;color:#fff!important}
body.culinary-theme .v20-btn-line{border-color:rgba(41,33,31,.22);color:var(--kitchen-ink)}

/* Shared breathing room + mobile stacking. */
.v20-page section,.v20-home section{scroll-margin-top:90px}
@media(max-width:900px){
  body.v20-home .v20-worlds{grid-template-columns:1fr!important}
  body.v20-home .v20-world{min-height:430px}
  body.v20-home .v20-world-light{border-top:1px solid var(--final-line)!important;border-left:1px solid var(--final-line)!important}
  .v20-page-hero{gap:42px}
}
@media(max-width:560px){
  /* One comfortable column on Android; no cramped 2-up cards. */
  body.v20-home .v20-home-story,
  body.v20-home .v25-home-library,
  body.v20-home .v20-home-fun{margin-top:16px;padding:78px 20px 88px}
  body.v20-home .v20-worlds{gap:16px;margin-top:16px}
  body.v20-home .v20-world{min-height:390px;padding:24px 20px;border-radius:24px}
  body.v20-home .v20-story-grid{gap:38px}
  body.v20-home .v25-home-library>a,
  body.v20-home .v20-home-fun>a{width:100%;min-height:150px}

  body.cyber-theme .v20-content-section,
  body.fun-page .v20-content-section,
  body.culinary-theme .v20-content-section{margin:16px 0;padding:78px 20px 88px;border-radius:26px}
  body.cyber-theme .v20-contact,
  body.culinary-theme .v20-contact{margin-top:16px;padding:82px 20px 92px;border-radius:26px}
  body.cyber-theme .v20-link-grid,
  body.culinary-theme .v20-link-grid{grid-template-columns:1fr!important;gap:14px}
  body.cyber-theme .v20-link-grid .link-tile,
  body.culinary-theme .v20-link-grid .link-tile{min-height:118px;padding:22px}
  body.fun-page .v20-score-section{margin-top:16px;padding:72px 20px 84px}
  body.fun-page .v20-intro-band{margin-top:16px;padding:78px 20px 88px}
  body.fun-page .v20-game-grid{grid-template-columns:1fr!important;gap:14px}
  body.fun-page .v20-game-card{min-height:210px}

  body.library-page .v25-library-hero{min-height:auto;padding:82px 20px 90px}
  body.library-page .library-toolbar{margin-top:16px;padding:24px 20px}
  body.library-page .library-grid-wrap{margin-top:16px;padding:72px 20px 92px}

  /* Portrait is intentionally small so it never hijacks the page. */
  .v20-portrait{width:132px!important;max-width:132px!important}
  .v20-portrait-frame{max-width:132px!important;border-radius:14px}
  .v20-page-hero h1{font-size:clamp(44px,13.5vw,68px)}

  /* Kitchen: blush panels alternate with cream for a soft, premium rhythm. */
  body.culinary-theme .v20-page-hero{padding:82px 20px 92px;background:var(--kitchen-cream)!important}
  body.culinary-theme .v20-intro-band{margin-top:16px;padding:78px 20px 88px;background:var(--kitchen-blush)!important;border-radius:26px}
  body.culinary-theme .v25-inline-library{margin-top:16px;padding:72px 20px 82px;border-radius:26px;background:var(--kitchen-panel)!important}
}

/* =========================================================
   V47 UI/UX REFINEMENT — CLEAN GRID / NO COLLISIONS
   Visual-only pass. Keep existing data, JS and backend intact.
   ========================================================= */
:root{
  --ui-max:1320px;
  --ui-gutter:clamp(20px,4vw,64px);
  --ui-section:clamp(76px,9vw,128px);
  --ui-gap:clamp(18px,2vw,28px);
}

/* predictable sizing */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}
body{overflow-x:hidden}
.v20-home-shell,.v20-page main,.v20-page>header,.v20-page>footer{width:100%;max-width:100%;min-width:0}
.v20-page main>section,.v20-home-shell>section{min-width:0}
.v20-page main>section>*,.v20-home-shell>section>*{min-width:0}

/* ---------------- NAV ---------------- */
.v20-site-nav{
  height:74px!important;
  padding:0 var(--ui-gutter)!important;
  gap:22px!important;
  background:rgba(7,9,11,.88)!important;
  border-bottom:1px solid rgba(255,255,255,.09)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.16)!important;
}
.v20-site-nav .nav-brand{flex:0 0 auto}
.v20-site-nav nav{margin-left:18px!important;gap:18px!important;min-width:0}
.v20-site-nav nav a{white-space:nowrap}
.v20-site-nav .nav-status{min-width:0;white-space:nowrap}

/* ---------------- HOME ---------------- */
body.v20-home{background:#07090b!important}
.v20-home-shell{max-width:none!important}
.v20-home-nav{
  min-height:74px!important;height:auto!important;
  padding:18px var(--ui-gutter)!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
  background:rgba(7,9,11,.94)!important;
}
.v20-home-hero{
  width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;
  margin:0 auto!important;
  min-height:min(760px,calc(100svh - 74px))!important;
  padding:clamp(90px,11vw,150px) 0!important;
  grid-template-columns:minmax(0,1fr) minmax(160px,260px)!important;
  gap:clamp(44px,8vw,120px)!important;
  align-items:end!important;
  background:transparent!important;
  border-bottom:0!important;
}
.v20-hero-copy{min-width:0}
.v20-home-hero h1{max-width:920px!important}
.v20-hero-mark{justify-self:end!important}
.v20-worlds{
  width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;
  margin:0 auto!important;
  padding:0!important;
  border:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:var(--ui-gap)!important;
  background:transparent!important;
}
.v20-world{
  min-width:0!important;
  min-height:500px!important;
  padding:clamp(28px,3.5vw,48px)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:30px!important;
}
.v20-world-main{min-width:0}
.v20-world h2{font-size:clamp(48px,5.8vw,78px)!important;overflow-wrap:anywhere}
.v20-home-story,
.v25-home-library,
.v20-home-fun{
  width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;
  margin:var(--ui-gap) auto 0!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:30px!important;
  padding:var(--ui-section) clamp(24px,5vw,72px)!important;
}
.v20-story-grid{
  margin-top:clamp(34px,4vw,58px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
  gap:clamp(36px,7vw,100px)!important;
}
.v20-story-grid>*{min-width:0}
.v20-home-fun,.v25-home-library{grid-template-columns:minmax(0,1fr) minmax(260px,.55fr)!important;gap:clamp(32px,7vw,110px)!important}
.v20-home-fun>a,.v25-home-library>a{align-self:end;min-width:0!important}
.v20-home-footer{width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;margin:var(--ui-gap) auto 0!important;border-top:1px solid rgba(255,255,255,.08)!important;padding:26px 0 32px!important}

/* ---------------- INNER PAGE FRAME ---------------- */
.v20-page-hero{
  width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;
  margin:0 auto!important;
  min-height:clamp(620px,calc(100svh - 74px),820px)!important;
  padding:clamp(86px,10vw,140px) 0!important;
  grid-template-columns:minmax(0,1fr) 220px!important;
  gap:clamp(40px,8vw,110px)!important;
  border-bottom:0!important;
}
.v20-hero-text{min-width:0}
.v20-page-hero h1{max-width:900px!important;overflow-wrap:normal!important}
.v20-portrait{width:190px!important;max-width:190px!important;justify-self:end!important}
.v20-portrait-frame{max-width:190px!important;border-radius:20px!important}
.v20-intro-band,
.v20-content-section,
.v25-inline-library,
.v20-contact{
  width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;
  margin:var(--ui-gap) auto 0!important;
  border:1px solid var(--final-line)!important;
  border-radius:30px!important;
}
.v20-intro-band,
.v20-content-section,
.v20-contact{padding:var(--ui-section) clamp(24px,5vw,72px)!important}
.v20-intro-band{display:grid!important;grid-template-columns:minmax(130px,.35fr) minmax(0,1.65fr)!important;gap:clamp(30px,6vw,90px)!important}
.v20-intro-band>*{min-width:0}
.v20-section-head{display:grid!important;grid-template-columns:minmax(130px,.34fr) minmax(0,1.66fr)!important;gap:clamp(30px,6vw,90px)!important;align-items:start!important;margin-bottom:clamp(34px,4vw,54px)!important}
.v20-section-head>*{min-width:0}
.v20-section-head h2{max-width:820px!important;overflow-wrap:anywhere}
.v20-section-head p{max-width:620px!important}
.v20-skill-grid,.v20-media-grid,.v20-album-grid,.v20-project-grid{min-width:0!important}
.v20-skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--ui-gap)!important}
.v20-skill-grid .skill-card{min-width:0!important;border:1px solid var(--final-line)!important;border-radius:22px!important}
.v20-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--ui-gap)!important}
.v20-media-grid>*{min-width:0}
.v20-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(24px,3vw,42px)!important}
.v20-project-grid>*{min-width:0!important}
.v20-project-grid .project-card:nth-child(even){margin-top:clamp(20px,4vw,70px)}
.v25-inline-library{padding:clamp(48px,6vw,78px) clamp(24px,5vw,72px)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:34px!important}
.v25-inline-library>*{min-width:0}
.v25-inline-library h2{overflow-wrap:anywhere}
.v20-contact{display:grid!important;grid-template-columns:minmax(130px,.35fr) minmax(0,1.65fr)!important;gap:clamp(30px,6vw,90px)!important}
.v20-contact>*{min-width:0}
.v20-contact h2{max-width:820px!important;overflow-wrap:anywhere}
.v20-link-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--ui-gap)!important;margin-top:34px!important}
.v20-link-grid .link-tile{min-width:0!important;min-height:120px!important;border-radius:20px!important}
.v20-footer{width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;margin:var(--ui-gap) auto 0!important;padding:28px 0 36px!important}

/* ---------------- FUN + LIBRARY ---------------- */
.v20-fun-hero,.v25-library-hero{width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;margin:0 auto!important}
.v20-fun-hero{padding:clamp(90px,10vw,140px) 0!important}
.v20-game-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--ui-gap)!important}
.v20-game-card{min-width:0!important;border-radius:24px!important;min-height:260px!important}
.v20-score-section,.v20-fun-page .v20-intro-band{width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;margin:var(--ui-gap) auto 0!important;border-radius:30px!important}
.v25-library-hero{min-height:600px!important;padding:clamp(90px,10vw,140px) 0!important}
.library-toolbar,.library-grid-wrap{width:min(var(--ui-max),calc(100% - 2*var(--ui-gutter)))!important;margin-left:auto!important;margin-right:auto!important;border-radius:26px!important}
.library-toolbar{margin-top:var(--ui-gap)!important}
.library-grid-wrap{margin-top:var(--ui-gap)!important;padding:var(--ui-section) clamp(20px,4vw,60px)!important}
.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--ui-gap)!important}
.library-card{min-width:0!important;border-radius:22px!important;overflow:hidden!important}

/* ---------------- CULINARY RHYTHM ---------------- */
body.culinary-theme .v20-page-hero{background:var(--kitchen-cream)!important}
body.culinary-theme .v20-content-section:nth-of-type(3),
body.culinary-theme .v20-content-section:nth-of-type(5){background:var(--kitchen-blush)!important}
body.culinary-theme .v20-content-section:nth-of-type(2),
body.culinary-theme .v20-content-section:nth-of-type(4){background:var(--kitchen-cream)!important}
body.culinary-theme .v20-content-section,
body.culinary-theme .v20-intro-band,
body.culinary-theme .v25-inline-library,
body.culinary-theme .v20-contact{box-shadow:0 10px 40px rgba(90,50,45,.045)}
body.culinary-theme .v20-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body.culinary-theme .v20-album-grid>*{min-width:0}

/* ---------------- MOBILE: one column, no collisions ---------------- */
@media(max-width:900px){
  .v20-home-hero,.v20-page-hero{grid-template-columns:1fr!important;min-height:auto!important}
  .v20-hero-mark{display:none!important}
  .v20-portrait{justify-self:start!important;width:168px!important;max-width:168px!important}
  .v20-portrait-frame{max-width:168px!important}
  .v20-worlds,.v20-skill-grid,.v20-media-grid,.v20-album-grid,.v20-project-grid,.v20-game-grid,.library-grid{grid-template-columns:1fr!important}
  .v20-story-grid,.v20-home-fun,.v25-home-library,.v20-intro-band,.v20-section-head,.v20-contact{grid-template-columns:1fr!important}
  .v20-project-grid .project-card:nth-child(even){margin-top:0}
  .v20-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v20-world{min-height:420px!important}
  .v25-inline-library{flex-direction:column!important;align-items:flex-start!important}
}
@media(max-width:560px){
  :root{--ui-gutter:18px;--ui-section:72px}
  .v20-site-nav{height:68px!important;padding:0 16px!important}
  .v20-site-nav .lang-btn{display:none}
  .v20-site-nav .menu-btn{display:block!important;margin-left:auto}
  .v20-home-nav{padding:15px 16px!important}
  .v20-home-nav .v20-nav-note{display:none!important}
  .v20-home-nav .v20-nav-fun{font-size:10px!important}
  .v20-home-hero{padding:76px 0 92px!important}
  .v20-home-hero h1{font-size:clamp(50px,15vw,78px)!important;line-height:.92!important}
  .v20-worlds{gap:14px!important}
  .v20-world{min-height:370px!important;padding:24px!important;border-radius:24px!important}
  .v20-world h2{font-size:clamp(46px,14vw,70px)!important;line-height:.92!important}
  .v20-home-story,.v25-home-library,.v20-home-fun{padding:72px 22px 78px!important;border-radius:24px!important}
  .v20-story-grid{gap:30px!important}
  .v20-home-fun>a,.v25-home-library>a{width:100%!important;min-height:140px!important}
  .v20-home-footer{padding:22px 0 28px!important}

  .v20-page-hero{padding:70px 0 82px!important;gap:34px!important}
  .v20-page-hero h1{font-size:clamp(44px,13.2vw,68px)!important;line-height:.94!important}
  .v20-portrait{width:132px!important;max-width:132px!important}
  .v20-portrait-frame{max-width:132px!important;border-radius:16px!important}
  .v20-intro-band,.v20-content-section,.v20-contact,.v25-inline-library{padding:70px 22px 78px!important;border-radius:24px!important}
  .v20-section-head{gap:18px!important;margin-bottom:32px!important}
  .v20-section-head h2,.v20-intro-band h2{font-size:clamp(38px,11vw,58px)!important;line-height:.98!important}
  .v20-section-head p{font-size:15px!important}
  .v20-skill-grid,.v20-media-grid,.v20-album-grid,.v20-project-grid,.v20-game-grid,.library-grid{gap:14px!important}
  .v20-project-grid .project-card:nth-child(even){margin-top:0!important}
  .v20-project-grid h3{font-size:27px!important}
  .v20-link-grid{grid-template-columns:1fr!important;gap:12px!important}
  .v20-link-grid .link-tile{min-height:108px!important}
  .v20-contact h2{font-size:clamp(42px,12vw,62px)!important}
  .v20-footer{padding:22px 0 30px!important;flex-direction:column!important;gap:7px!important}

  .v20-fun-hero,.v25-library-hero{padding:74px 0 84px!important}
  .v20-game-card{min-height:220px!important}
  .library-toolbar,.library-grid-wrap{width:calc(100% - 36px)!important}
  .library-grid-wrap{padding:70px 18px 80px!important}

  /* culinary stays soft; no light/dark collision */
  body.culinary-theme .v20-content-section:nth-of-type(3),
  body.culinary-theme .v20-content-section:nth-of-type(5){background:var(--kitchen-blush)!important}
  body.culinary-theme .v20-content-section:nth-of-type(2),
  body.culinary-theme .v20-content-section:nth-of-type(4){background:var(--kitchen-cream)!important}
  body.culinary-theme .v20-album-grid{grid-template-columns:1fr!important}
}
