:root{--background:#0f0a1f;--surface:#fff;--surface-soft:#f4edff;--ink:#171123;--muted:#70677f;--line:#ded4ef;--navy:#2d155f;--blue:#7c3aed;--green:#14b8a6;--coral:#f97316;--gold:#f7c948;--purple-dark:#1c1036;--purple-mid:#6d28d9;--purple-light:#c084fc;--rose:#b42318;--shadow:0 24px 70px #1e0f4247}*{box-sizing:border-box}html{scroll-behavior:smooth;min-height:100%;overflow-x:hidden}body{background:radial-gradient(circle at 8% 5%, #c084fc57, transparent 28%), radial-gradient(circle at 90% 10%, #14b8a633, transparent 28%), linear-gradient(135deg, #140b2d 0%, #26114d 42%, #0f0a1f 100%), var(--background);min-height:100%;color:var(--ink);background-size:140% 140%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;animation:14s ease-in-out infinite alternate pageAura;position:relative;overflow-x:hidden}body:before{z-index:0;content:"";pointer-events:none;background:linear-gradient(#ffffff0b 1px,#0000 1px) 0 0/46px 46px,linear-gradient(90deg,#ffffff0b 1px,#0000 1px) 0 0/46px 46px,conic-gradient(from 120deg,#0000,#7c3aed2e,#0000,#14b8a621,#0000) 0 0/160% 160%;animation:18s linear infinite backgroundGrid;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000000e6,#0000 86%);mask-image:linear-gradient(#000000e6,#0000 86%)}a{color:var(--navy);font-weight:850;text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}.portfolioShell,.shell{z-index:1;width:min(1160px,100% - 32px);min-height:100vh;margin:0 auto;padding:22px 0 56px;position:relative}.topbar{z-index:70;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;border:1px solid #d9e0eae6;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;min-height:62px;padding:8px 10px 8px 16px;display:flex;position:sticky;top:12px;box-shadow:0 16px 36px #10182814}.brand{color:var(--navy);letter-spacing:0;white-space:nowrap;font-size:1.05rem}.navItems{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.navItems a,.navLink,.adminLink{min-height:40px;color:var(--ink);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:8px 12px;font-size:.92rem;transition:transform .16s,background .16s,border-color .16s;display:inline-flex}.navItems a:hover,.navLink:hover,.adminLink:hover{background:#f8f3ff;border-color:#7c3aed57;text-decoration:none;transform:translateY(-1px)}.adminLink,.navLink{border-color:var(--line);background:var(--surface)}.mobileMenu{display:none;position:relative}.mobileMenu summary{border:1px solid var(--line);width:42px;height:42px;color:var(--navy);cursor:pointer;background:#fbf8ff;border-radius:8px;place-items:center;padding:0;font-size:1.25rem;font-weight:900;line-height:1;list-style:none;display:grid}.mobileMenu summary::-webkit-details-marker{display:none}.mobileMenu[open] summary{background:#f4edff;border-color:#7c3aed57}.menuDots{flex-direction:column;align-items:center;gap:3px;display:flex}.menuDots span{background:currentColor;border-radius:999px;width:5px;height:5px;display:block}.mobileMenuPanel{z-index:90;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;border:1px solid #ded4efe6;border-radius:8px;gap:8px;width:min(240px,100vw - 32px);padding:10px;animation:.18s both menuDrop;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 24px 56px #1e0f4242}.mobileMenuPanel a{border:1px solid var(--line);min-height:42px;color:var(--ink);background:#fbf8ff;border-radius:8px;align-items:center;padding:10px 12px;display:flex}.mobileMenuPanel a:hover{background:#f4edff;text-decoration:none}.portfolioHero{grid-template-columns:minmax(0,.96fr) minmax(340px,500px);align-items:center;gap:36px;min-height:calc(100vh - 110px);padding:42px 0 54px;display:grid}.heroCopy{animation:.76s both fadeUp}.heroCopy h1,.sectionHeader h1,.sectionHeader h2,.contactBand h2{letter-spacing:0;margin:0}.heroCopy h1{color:#fff;text-shadow:0 18px 42px #0f0a1f5c;max-width:720px;font-size:5.6rem;line-height:.95}.heroCopy p:not(.eyebrow),.contactBand p,.aboutPanel p,.timelineItem p,.featureCard p,.projectCard p{color:var(--muted);line-height:1.68}.heroCopy p:not(.eyebrow),.contactBand p{max-width:620px;margin:24px 0 0;font-size:1.08rem}.heroCopy p:not(.eyebrow){color:#ffffffc2}.eyebrow{color:var(--purple-light);letter-spacing:0;text-transform:uppercase;margin:0 0 14px;font-size:.78rem;font-weight:900}.heroActions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;display:flex}.heroStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:580px;margin-top:34px;display:grid}.heroStats span,.featureCard,.projectCard,.statBlock,.visualCard,.checkInCard,.dashboard,.adminBar,.contactBand,.aboutPanel,.timelineItem,.achievementItem{border:1px solid var(--line);background:#ffffffe0;border-radius:8px}.heroStats span{min-height:82px;color:var(--muted);gap:4px;padding:14px;font-size:.9rem;animation:.62s both fadeUp;display:grid}.heroStats span:nth-child(2){animation-delay:.12s}.heroStats span:nth-child(3){animation-delay:.22s}.heroStats strong{color:var(--purple-mid);font-size:1.55rem}.heroVisual{min-height:620px;box-shadow:var(--shadow);background:var(--surface-soft);border-radius:8px;animation:.74s both fadeUp;position:relative;overflow:hidden}.heroVisual:before{z-index:2;content:"";pointer-events:none;background:linear-gradient(115deg,#0000 0% 34%,#fff3 48%,#0000 62% 100%);animation:6s ease-in-out infinite photoShine;position:absolute;inset:0;transform:translate(-120%)}.heroVisual img{object-fit:cover;object-position:center top;width:100%;height:100%;min-height:620px;animation:12s ease-in-out infinite alternate imageDrift}.heroVisual:after{z-index:1;content:"";pointer-events:none;background:linear-gradient(#0f0a1f05 24%,#0f0a1fd6),linear-gradient(90deg,#6d28d975,#0000 58%);position:absolute;inset:0}.visualCard{z-index:3;color:var(--ink);gap:8px;padding:16px;animation:.7s .14s both fadeUp;display:grid;position:absolute;top:18px;left:18px;right:18px}.visualCard span,.miniLabel{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:900}.floatingBadge{z-index:3;color:var(--navy);background:#ffffffd1;border:1px solid #ffffff9e;border-radius:8px;padding:10px 12px;font-weight:900;animation:4.6s ease-in-out infinite softFloat;position:absolute;box-shadow:0 18px 34px #1018282e}.floatingBadge.one{top:185px;right:22px}.floatingBadge.two{animation-delay:.9s;top:285px;left:22px}.floatingBadge.three{animation-delay:1.5s;bottom:145px;right:32px}.checkInCard{z-index:45;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffed;grid-template-columns:1fr auto;align-items:center;gap:12px;width:min(390px,100% - 36px);max-height:calc(100vh - 116px);padding:16px;animation:.32s both dockIn;display:none;position:fixed;top:-992px;right:18px;overflow-y:auto;box-shadow:0 18px 44px #1e0f4247}.checkInCard strong{margin-top:4px;display:block}.checkInCard a,.checkInCard .statusText{grid-column:1/-1}.visitorDataCard{background:linear-gradient(135deg,#7c3aed17,#0000),#fff;border:1px solid #7c3aed38;border-radius:8px;grid-column:1/-1;gap:12px;padding:14px;animation:.42s both dataReveal;display:grid}.visitorDataHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.visitorDataHeader span{color:var(--purple-mid);text-transform:uppercase;font-size:.78rem;font-weight:900}.visitorDataHeader strong{color:var(--muted);text-align:right;font-size:.86rem}.visitorDataGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.visitorDataGrid span{border:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere;background:#f8f3ffb8;border-radius:8px;gap:4px;padding:10px;font-size:.78rem;display:grid}.visitorDataGrid strong{color:var(--ink);font-size:.95rem}.mapLink{background:var(--purple-dark);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:10px 12px;display:inline-flex}.mapLink:hover{text-decoration:none}.sectionBand,.featureBand,.aboutBand,.timelineBand,.achievementBand,.galleryBand,.historyBand{padding:72px 0 18px}.featureBand{padding-top:10px}.sectionHeader{gap:10px;margin-bottom:22px;display:grid}.sectionHeader h1,.sectionHeader h2,.contactBand h2{color:#fff;max-width:780px;font-size:3.6rem;line-height:1}.contactBand h2{color:var(--ink)}.aboutGrid,.featureGrid,.projectGrid,.achievementList,.photoGrid{gap:14px;display:grid}.featureGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.aboutGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.projectGrid,.achievementList,.photoGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.aboutPanel,.featureCard,.projectCard,.achievementItem{background:var(--surface);align-content:start;gap:14px;min-height:220px;padding:22px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid}.aboutPanel:hover,.featureCard:hover,.projectCard:hover,.achievementItem:hover,.photoCard:hover{border-color:#7c3aed5c;transform:translateY(-4px);box-shadow:0 18px 48px #1e0f422e}.featureCard{background:linear-gradient(145deg,#7c3aed1a,#0000),#ffffffeb;min-height:210px}.featureCard:nth-child(2){background:linear-gradient(145deg,#14b8a61f,#0000),#fffffff0}.featureCard:nth-child(3){background:linear-gradient(145deg,#f7c94824,#0000),#fffffff0}.featureCard:nth-child(4){background:linear-gradient(145deg,#f973161f,#0000),#fffffff0}.projectCard:nth-child(2),.aboutPanel:nth-child(2){background:#f8f3ff}.projectCard:nth-child(3),.achievementItem:nth-child(3){background:#fff7ed}.aboutPanel span,.featureCard span,.projectCard span,.achievementItem span{color:var(--navy);text-transform:uppercase;font-size:.8rem;font-weight:900}.aboutPanel p,.featureCard p,.projectCard p,.achievementItem p{margin:0}.featureCard h3,.projectCard h3,.timelineItem h3{margin:0;font-size:1.45rem}.timeline{gap:12px;display:grid;position:relative}.timeline:before{background:linear-gradient(var(--purple-light), var(--blue), var(--green));content:"";width:2px;position:absolute;top:10px;bottom:10px;left:66px}.timelineItem{grid-template-columns:120px minmax(0,1fr);align-items:start;gap:20px;padding:20px;display:grid;position:relative}.timelineItem>span{z-index:1;background:linear-gradient(135deg, var(--purple-mid), var(--navy));color:#fff;border-radius:8px;justify-content:center;width:92px;padding:10px;font-weight:900;display:inline-flex;position:relative}.timelineItem p{margin:8px 0 0}.skillBand{grid-template-columns:minmax(0,.82fr) minmax(320px,1fr);align-items:start;gap:24px;display:grid}.skillCloud{flex-wrap:wrap;gap:10px;display:flex}.skillCloud span{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--ink);border-radius:8px;align-items:center;padding:12px 15px;font-weight:900;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 12px 28px #1e0f421f}.skillCloud span:hover{transform:translateY(-3px)rotate(-1deg);box-shadow:0 18px 34px #7c3aed38}.photoCard{border:1px solid var(--line);background:#ffffffdb;border-radius:8px;min-height:420px;margin:0;transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden;box-shadow:0 20px 44px #1e0f4233}.photoCard img{object-fit:cover;object-position:center top;width:100%;height:100%;min-height:420px;transition:transform .52s}.photoCard:hover img{transform:scale(1.05)}.achievementItem{min-height:170px}.contactBand{background:linear-gradient(90deg, #7c3aed1f, transparent), var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:64px;padding:28px;display:grid}.fieldLabel{color:var(--muted);margin-bottom:8px;font-size:.86rem;font-weight:900;display:block}.textInput{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--ink);font:inherit;border-radius:8px;outline:none;padding:12px 14px}.textInput:focus{border-color:var(--blue);box-shadow:0 0 0 4px #7c3aed24}.primaryButton,.secondaryButton{cursor:pointer;min-height:52px;font:inherit;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0 18px;font-weight:900;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.primaryButton{background:linear-gradient(135deg, var(--purple-mid), var(--blue));color:#fff;box-shadow:0 14px 28px #7c3aed4d}.secondaryButton{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.primaryButton:hover,.secondaryButton:hover{text-decoration:none;transform:translateY(-1px)}.primaryButton:hover{box-shadow:0 18px 34px #7c3aed5c,0 0 0 4px #c084fc1f}.primaryButton:disabled{cursor:wait;opacity:.72;transform:none}.linkButton{min-width:140px}.compact{min-height:46px}.statusText{color:var(--muted);margin:0;font-weight:800}.statusText.error{color:var(--rose)}.modalBackdrop{z-index:999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(circle at 14% 12%,#c084fc57,#0000 30%),radial-gradient(circle at 82% 20%,#14b8a62e,#0000 28%),linear-gradient(135deg,#0f0a1ff7,#26114df7);place-items:center;padding:18px;animation:.18s both fadeIn;display:grid;position:fixed;inset:0}.permissionModal{background:linear-gradient(145deg, #7c3aed1a, transparent 44%), var(--surface);width:min(100%,640px);max-height:min(720px,100vh - 36px);box-shadow:var(--shadow);border:1px solid #ffffff9e;border-radius:8px;gap:18px;padding:34px;animation:.26s both modalIn;display:grid;position:relative;overflow-y:auto}.permissionModal:before{content:"";background:linear-gradient(90deg, var(--purple-light), var(--green), var(--gold));height:5px;position:absolute;top:0;left:0;right:0}.permissionModal .primaryButton{animation:2.4s ease-in-out infinite buttonPulse}.locationHelpModal{background:linear-gradient(145deg, #f7c94824, transparent 42%), linear-gradient(145deg, transparent 48%, #14b8a61a), var(--surface);border-color:#f7c948b8}.locationHelpModal:before{background:linear-gradient(90deg, var(--gold), var(--green), var(--coral))}.modalClose{border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:8px;font-size:1.1rem;font-weight:900;position:absolute;top:12px;right:12px}.modalIcon{background:#f4edff;border:1px solid #7c3aed40;border-radius:8px;place-items:center;width:58px;height:58px;animation:3s ease-in-out infinite softFloat;display:grid}.modalIcon span{border:7px solid var(--purple-mid);border-radius:999px 999px 999px 0;width:24px;height:24px;transform:rotate(-45deg)}.modalCopy{gap:10px;display:grid}.modalCopy h2{margin:0;font-size:3.05rem;line-height:1}.modalCopy p:not(.eyebrow){color:var(--muted);margin:0;line-height:1.65}.modalActions{grid-template-columns:1fr .7fr;gap:10px;display:grid}.locationHelpList{background:#fff7edd1;border:1px solid #f7c94873;border-radius:8px;gap:8px;padding:12px;display:grid}.locationHelpList span{color:var(--ink);font-size:.94rem;font-weight:800;line-height:1.45}.saveToast{z-index:60;background:var(--surface);width:min(330px,100% - 36px);box-shadow:var(--shadow);border:1px solid #7c3aed3d;border-radius:8px;gap:4px;padding:14px 16px;display:grid;position:fixed;bottom:18px;right:18px}.saveToast span{color:var(--navy);text-transform:uppercase;font-size:.78rem;font-weight:900}.dashboard{box-shadow:var(--shadow);gap:20px;padding:20px;display:grid}.adminBar{grid-template-columns:minmax(150px,.6fr) minmax(220px,1fr) auto auto;align-items:end;gap:12px;padding:16px;display:grid}.adminBar .fieldLabel{align-self:center;margin:0}.statsGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.statBlock{background:var(--surface);gap:8px;padding:16px;display:grid}.statBlock span,.subText{color:var(--muted);font-size:.82rem}.statBlock strong{overflow-wrap:anywhere;font-size:1.3rem}.tableWrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:840px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 12px}th{color:var(--muted);text-transform:uppercase;font-size:.78rem}td{line-height:1.45}.subText{overflow-wrap:anywhere;max-width:240px;display:block}.emptyState{color:var(--muted);text-align:center;margin:0;padding:24px}.revealBlock{animation:.7s both fadeUp}.delayOne,.delay1{animation-delay:.12s}.delay2{animation-delay:.22s}.delay3{animation-delay:.32s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pageAura{0%{background-position:0 0}to{background-position:100% 36%}}@keyframes backgroundGrid{0%{background-position:0 0,0 0,0 0}to{background-position:92px 92px,92px 92px,100% 100%}}@keyframes menuDrop{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dockIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dataReveal{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes photoShine{0%,42%{transform:translate(-120%)}70%,to{transform:translate(120%)}}@keyframes buttonPulse{0%,to{box-shadow:0 14px 28px #7c3aed4d}50%{box-shadow:0 18px 38px #7c3aed70,0 0 0 6px #c084fc1f}}@keyframes softFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes imageDrift{0%{transform:scale(1)}to{transform:scale(1.05)}}@media (max-width:1060px){.heroCopy h1{font-size:4.4rem}.sectionHeader h1,.sectionHeader h2,.contactBand h2{font-size:3rem}.featureGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:920px){.portfolioHero,.skillBand,.contactBand{grid-template-columns:1fr}.portfolioHero{min-height:auto;padding-top:32px}.heroVisual,.heroVisual img{min-height:520px}.projectGrid,.featureGrid,.achievementList,.photoGrid,.aboutGrid{grid-template-columns:1fr}}@media (max-width:760px){.portfolioShell,.shell{width:min(100% - 24px,680px);padding-top:12px;padding-bottom:56px}.topbar{flex-direction:row;align-items:center;gap:10px;min-height:54px;padding:10px 12px;position:sticky;top:10px}.navItems{display:none}.mobileMenu{display:block}.heroCopy h1{font-size:3.35rem}.sectionHeader h1,.sectionHeader h2,.contactBand h2{font-size:2.45rem}.heroStats{grid-template-columns:1fr;gap:8px;margin-top:24px}.heroStats span{min-height:auto;padding:12px 14px}.heroVisual{min-height:auto;box-shadow:var(--shadow);overflow:hidden}.heroVisual img{min-height:430px;box-shadow:none}.heroVisual:after{border-radius:8px}.visualCard{top:12px;left:12px;right:12px}.visualCard strong{font-size:.96rem;line-height:1.35}.floatingBadge{display:none}.portfolioHero{gap:24px;padding:28px 0 42px}.heroCopy p:not(.eyebrow),.contactBand p{margin-top:16px;font-size:1rem}.heroActions{align-items:stretch;gap:10px;margin-top:22px}.heroActions .linkButton,.contactBand .linkButton{width:100%}.aboutPanel,.featureCard,.projectCard,.achievementItem{min-height:auto}.skillCloud span{text-align:center;flex:calc(50% - 10px);justify-content:center}.visitorDataHeader{display:grid}.visitorDataHeader strong{text-align:left}.visitorDataGrid,.modalActions,.adminBar,.statsGrid{grid-template-columns:1fr}.sectionBand,.featureBand,.aboutBand,.timelineBand,.achievementBand,.galleryBand,.historyBand{padding-top:48px}.timeline:before{left:24px}.timelineItem{grid-template-columns:1fr;gap:12px;padding-left:54px}.timelineItem>span{width:fit-content}.contactBand{margin-top:42px;padding:20px}.permissionModal{padding:24px}.modalCopy h2{font-size:2.35rem}.tableWrap{overflow-x:visible}table,thead,tbody,tr,td{width:100%;min-width:0;display:block}thead{display:none}tr{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin-bottom:12px;padding:8px 0}td{overflow-wrap:anywhere;border-bottom:0;grid-template-columns:minmax(92px,.42fr) minmax(0,1fr);gap:12px;padding:10px 12px;display:grid}td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:900}.subText{max-width:100%}}@media (max-width:430px){.portfolioShell,.shell{width:min(100% - 18px,420px)}.brand{font-size:.98rem}.heroCopy h1{font-size:2.4rem}.sectionHeader h1,.sectionHeader h2,.contactBand h2{font-size:1.9rem;line-height:1.08}.heroVisual img{object-position:center top;min-height:330px}.permissionModal{padding:18px}.modalCopy h2{font-size:1.85rem}.projectCard,.featureCard,.aboutPanel,.achievementItem{min-height:190px;padding:18px}.photoCard,.photoCard img{min-height:360px}.primaryButton,.secondaryButton{width:100%;padding:0 14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
