:root{
    --bg:#07111f;
    --bg-2:#0b1b2d;
    --panel:rgba(255,255,255,.08);
    --panel-strong:rgba(255,255,255,.13);
    --text:#f4f8ff;
    --muted:#aebbd0;
    --soft:#dce7f8;
    --line:rgba(255,255,255,.13);
    --accent:#56d7ff;
    --accent-2:#8affd2;
    --accent-3:#ff4fd8;
    --danger:#ff5f5f;
    --shadow:0 24px 70px rgba(0,0,0,.35);
    --radius-xl:28px;
    --radius-lg:20px;
    --max:1160px;
    --font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.theme-nova{
    --bg:#07111f;
    --bg-2:#0b1b2d;
    --panel:rgba(255,255,255,.08);
    --panel-strong:rgba(255,255,255,.13);
    --text:#f4f8ff;
    --muted:#aebbd0;
    --soft:#dce7f8;
    --line:rgba(255,255,255,.13);
    --accent:#56d7ff;
    --accent-2:#8affd2;
    --accent-3:#ff4fd8;
    --shadow:0 24px 70px rgba(0,0,0,.35);
    --font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.theme-executive{
    --bg:#eef3f8;
    --bg-2:#ffffff;
    --panel:rgba(255,255,255,.74);
    --panel-strong:rgba(255,255,255,.94);
    --text:#10233d;
    --muted:#51627a;
    --soft:#233b5d;
    --line:rgba(16,35,61,.15);
    --accent:#16345c;
    --accent-2:#4573ad;
    --accent-3:#c89b3c;
    --shadow:0 24px 70px rgba(16,35,61,.16);
    --font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.theme-questboundxxx{
    --bg:#261307;
    --bg-2:#6d3d16;
    --panel:rgba(73,36,12,.72);
    --panel-strong:rgba(100,51,18,.9);
    --text:#fff3d2;
    --muted:#e2c389;
    --soft:#ffe4a6;
    --line:rgba(255,222,150,.23);
    --accent:#f0b64b;
    --accent-2:#d1482f;
    --accent-3:#7dd07c;
    --shadow:0 24px 70px rgba(26,10,2,.42);
    --font-display:Georgia,"Times New Roman",serif;
    --font-body:Georgia,"Times New Roman",serif;
}
body.theme-questbound{
    --bg:#171021;
    --bg-2:#2b1b32;
    --panel:rgba(255,239,202,.1);
    --panel-strong:rgba(255,239,202,.16);
    --text:#fff2cf;
    --muted:#d9c79a;
    --soft:#f5dfad;
    --line:rgba(255,232,177,.26);
    --accent:#e0b95d;
    --accent-2:#9b2f3f;
    --accent-3:#6f9f72;
    --shadow:0 24px 70px rgba(13,8,20,.48);
    --font-display:"IM Fell English SC",Georgia,"Times New Roman",serif;
    --font-body:"Merriweather",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    min-height:100vh;
    color:var(--text);
    font-family:var(--font-body);
    background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 22%,transparent),transparent 34rem),linear-gradient(135deg,var(--bg),var(--bg-2));
    line-height:1.5;
    overflow-x:hidden;
    transition:background .35s ease,color .25s ease;
}
a{color:inherit;text-decoration:none;}
button{font:inherit;}
.site-bg{
    position:fixed;
    inset:0;
    z-index:-1;
    overflow:hidden;
    pointer-events:none;
}
.grid-overlay{
    position:absolute;
    inset:0;
    background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:48px 48px;
    mask-image:linear-gradient(to bottom,#000,transparent 90%);
}
body.theme-executive .grid-overlay{
    background-image:linear-gradient(rgba(16,35,61,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(16,35,61,.045) 1px,transparent 1px);
    mask-image:none;
}
body.theme-questbound .grid-overlay{
    background-image:radial-gradient(circle at 25% 20%,rgba(255,226,160,.13),transparent 19rem),radial-gradient(circle at 80% 65%,rgba(50,18,6,.32),transparent 21rem);
    background-size:100% 100%;
    mask-image:none;
}
.orb{
    position:absolute;
    width:26rem;
    height:26rem;
    border-radius:999px;
    filter:blur(60px);
    opacity:.4;
}
.orb-one{
    top:8rem;
    right:-8rem;
    background:var(--accent);
}
.orb-two{
    bottom:10rem;
    left:-8rem;
    background:var(--accent-2);
}
.site-header{
    position:sticky;
    top:0;
    z-index:20;
    width:min(var(--max),calc(100% - 32px));
    margin:16px auto 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:999px;
    background:color-mix(in srgb,var(--bg) 76%,transparent);
    backdrop-filter:blur(18px);
    box-shadow:0 12px 40px rgba(0,0,0,.24);
}
.brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-weight:800;
    letter-spacing:-.02em;
}
.brand-mark{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:999px;
    color:var(--bg);
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    box-shadow:0 0 24px color-mix(in srgb,var(--accent) 34%,transparent);
}
.site-nav{
    display:flex;
    align-items:center;
    gap:8px;
}
.site-nav a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:9px 12px;
    border-radius:999px;
    color:var(--muted);
    font-size:.94rem;
    transition:.18s ease;
}
.site-nav a:hover,.resume-link{
    color:var(--text);
    background:rgba(255,255,255,.08);
}
body.theme-executive .site-nav a:hover,body.theme-executive .resume-link{background:rgba(16,35,61,.08);}
.nav-toggle{
    display:none;
    width:42px;
    height:42px;
    border:1px solid var(--line);
    border-radius:999px;
    background:rgba(255,255,255,.07);
    cursor:pointer;
}
.nav-toggle span{
    display:block;
    width:18px;
    height:2px;
    margin:4px auto;
    background:var(--text);
    border-radius:999px;
}
.section{
    width:min(var(--max),calc(100% - 32px));
    margin:0 auto;
    padding:88px 0;
}
.theme-console{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:22px;
    align-items:stretch;
    padding-top:48px;
    padding-bottom:12px;
}
.theme-console-copy,.theme-picker{
    border:1px solid var(--line);
    border-radius:var(--radius-xl);
    background:linear-gradient(180deg,var(--panel-strong),var(--panel));
    box-shadow:var(--shadow);
    backdrop-filter:blur(16px);
}
.theme-console-copy{padding:28px;}
.theme-console-copy h2{
    margin:0 0 12px;
    font-size:clamp(2rem,4vw,4.2rem);
    line-height:.9;
    letter-spacing:-.06em;
}
.theme-console-copy p:not(.eyebrow){
    margin:0;
    color:var(--muted);
    font-size:1.02rem;
}
.theme-picker{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    padding:14px;
}
.theme-choice{
    position:relative;
    min-height:158px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:22px;
    color:var(--text);
    background:rgba(255,255,255,.055);
    text-align:left;
    cursor:pointer;
    overflow:hidden;
    transition:.2s ease;
}
.theme-choice::before{
    content:"";
    position:absolute;
    inset:auto -40px -50px auto;
    width:120px;
    height:120px;
    border-radius:999px;
    background:radial-gradient(circle,var(--accent),transparent 68%);
    opacity:.22;
}
.theme-choice:hover,.theme-choice.active{
    transform:translateY(-3px);
    border-color:color-mix(in srgb,var(--accent) 58%,white);
    box-shadow:0 18px 44px color-mix(in srgb,var(--accent) 23%,transparent);
}
.choice-kicker{
    display:block;
    margin-bottom:38px;
    color:var(--accent-2);
    font-size:.75rem;
    font-weight:900;
    letter-spacing:.16em;
}
.theme-choice strong{
    position:relative;
    z-index:1;
    display:block;
    margin-bottom:6px;
    font-family:var(--font-display);
    font-size:1.3rem;
}
.theme-choice span:last-child{
    position:relative;
    z-index:1;
    display:block;
    color:var(--muted);
    font-size:.9rem;
}
.hero{
    min-height:calc(100vh - 76px);
    display:grid;
    grid-template-columns:minmax(0,1.04fr) minmax(330px,.96fr);
    align-items:center;
    gap:42px;
    padding-top:54px;
}
.eyebrow{
    margin:0 0 14px;
    color:var(--accent-2);
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
}
h1,h2,h3,p{margin-top:0;}
.hero-title{
    margin-bottom:18px;
    max-width:760px;
    font-family:var(--font-display);
    font-size:clamp(3.1rem,8.2vw,6.4rem);
    line-height:.88;
    letter-spacing:-.07em;
    text-transform:uppercase;
}
body.theme-executive .hero-title{
    font-size:clamp(2.75rem,7.1vw,5.8rem);
    letter-spacing:-.06em;
    text-transform:none;
}
body.theme-questbound .hero-title{
    font-size:clamp(3rem,7.4vw,6rem);
    letter-spacing:-.045em;
    text-transform:none;
    text-shadow:0 4px 0 rgba(0,0,0,.28);
}
.hero-icons{
    display:block;
    margin-bottom:.16em;
    color:var(--accent);
    font-size:.38em;
    letter-spacing:.05em;
}
.hero-icons svg:nth-child(n+4){opacity:.5;}
.headline-text{display:block;}
.hero-subtitle{
    max-width:760px;
    color:var(--soft);
    font-size:clamp(1.08rem,1.8vw,1.32rem);
}
.hero-actions,.contact-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:28px 0;
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    padding:0 18px;
    border:1px solid transparent;
    border-radius:999px;
    font-weight:800;
    transition:.18s ease;
}
.btn.primary{
    color:var(--bg);
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 25%,transparent);
}
.btn.primary:hover{
    transform:translateY(-2px);
    box-shadow:0 18px 44px color-mix(in srgb,var(--accent) 34%,transparent);
}
.btn.ghost{
    color:var(--text);
    border-color:var(--line);
    background:rgba(255,255,255,.07);
}
.btn.ghost:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.12);
}
.hero-tags{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    max-width:760px;
}
.hero-tags span,.chips span{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border:1px solid var(--line);
    border-radius:999px;
    color:var(--muted);
    background:rgba(255,255,255,.055);
    font-size:.84rem;
}
.hero-panel{
    display:grid;
    gap:18px;
}
.showcase-card,.contact-card,.feature-card,.work-card{
    border:1px solid var(--line);
    border-radius:var(--radius-xl);
    background:linear-gradient(180deg,var(--panel-strong),var(--panel));
    box-shadow:var(--shadow);
    backdrop-filter:blur(16px);
}
.showcase-card{
    overflow:hidden;
}
.showcase-top{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:10px;
    padding:14px 16px;
    border-bottom:1px solid var(--line);
    background:rgba(255,255,255,.05);
}
.showcase-status{
    width:12px;
    height:12px;
    border-radius:999px;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    box-shadow:0 0 22px var(--accent);
}
.showcase-label{
    color:var(--muted);
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.showcase-theme-name{
    color:var(--accent);
    font-size:.86rem;
    font-weight:900;
}
.showcase-stage{
    position:relative;
    min-height:360px;
    background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 18rem),rgba(255,255,255,.035);
    overflow:hidden;
}
#themeCanvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
}
.showcase-caption{
    display:grid;
    gap:4px;
    padding:18px 20px 20px;
}
.showcase-title{
    color:var(--text);
    font-size:1.08rem;
}
.showcase-copy{
    color:var(--muted);
    font-size:.94rem;
}
.quest-map-overlay{
    position:absolute;
    inset:18px;
    display:none;
    pointer-events:none;
}
body.theme-questbound .quest-map-overlay{display:block;}
.quest-map-overlay svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}
.map-coast{
    fill:rgba(226,177,92,.28);
    stroke:rgba(91,50,18,.9);
    stroke-width:4;
    stroke-linejoin:round;
}
.map-river{
    fill:none;
    stroke:rgba(68,128,142,.75);
    stroke-width:5;
    stroke-linecap:round;
    stroke-dasharray:12 9;
}
.map-road{
    fill:none;
    stroke:rgba(89,52,20,.82);
    stroke-width:4;
    stroke-linecap:round;
    stroke-dasharray:8 8;
}
.map-marker{fill:#a3261d;stroke:#ffe2a0;stroke-width:3;}
.map-label{
    position:absolute;
    padding:4px 8px;
    border:1px solid rgba(92,47,17,.38);
    border-radius:999px;
    color:#4b250d;
    background:rgba(255,228,166,.72);
    font-size:.72rem;
    font-weight:900;
    box-shadow:0 6px 15px rgba(50,18,6,.16);
}
.label-one{left:13%;top:21%;}
.label-two{right:15%;top:24%;}
.label-three{left:36%;bottom:18%;}
.label-four{right:13%;bottom:10%;}
.mini-dashboard{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}
.metric{
    min-height:108px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    background:rgba(255,255,255,.075);
}
.metric-label{
    display:block;
    margin-bottom:10px;
    color:var(--muted);
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.12em;
}
.metric strong{
    display:block;
    font-size:1.2rem;
    line-height:1.1;
}
.section-heading{
    max-width:820px;
    margin-bottom:32px;
}
.section-heading h2{
    margin-bottom:14px;
    font-family:var(--font-display);
    font-size:clamp(2rem,5vw,4rem);
    line-height:.96;
    letter-spacing:-.055em;
}
.section-heading p:not(.eyebrow){
    color:var(--muted);
    font-size:1.07rem;
}
.service-feature-grid,.work-grid{
    display:grid;
    gap:18px;
}
.service-feature-grid{grid-template-columns:repeat(3,1fr);}
.feature-card{
    padding:26px;
    transition:.18s ease;
}
.feature-card:hover,.work-card:hover{
    transform:translateY(-4px);
    border-color:color-mix(in srgb,var(--accent) 42%,transparent);
}
.feature-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:28px;
}
.feature-number{
    color:var(--accent);
    font-size:.82rem;
    font-weight:900;
    letter-spacing:.16em;
}
.feature-icon{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:16px;
    color:var(--bg);
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    font-weight:900;
}
.feature-card h3,.work-card h3{
    margin-bottom:10px;
    font-size:1.16rem;
    letter-spacing:-.025em;
}
.feature-list{
    color:var(--soft)!important;
    font-weight:750;
}
.feature-card p,.work-card p,.about-copy p,.contact-card p{
    color:var(--muted);
}
.work-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:22px;
}
.filter-btn{
    min-height:38px;
    padding:0 14px;
    border:1px solid var(--line);
    border-radius:999px;
    color:var(--muted);
    background:rgba(255,255,255,.06);
    cursor:pointer;
    transition:.18s ease;
}
.filter-btn:hover,.filter-btn.active{
    color:var(--bg);
    border-color:transparent;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
}
.work-grid{grid-template-columns:repeat(2,1fr);}
.work-card{
    overflow:hidden;
    transition:.18s ease;
}
.work-card.is-hidden{display:none;}
.mockup{
    min-height:250px;
    padding:22px;
    border-bottom:1px solid var(--line);
    background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent) 26%,transparent),transparent 18rem),rgba(255,255,255,.045);
}
.mockup-header{
    display:flex;
    gap:8px;
    margin-bottom:22px;
}
.mockup-header span{
    width:12px;
    height:12px;
    border-radius:999px;
    background:rgba(255,255,255,.32);
}
.mockup-title{
    width:52%;
    height:22px;
    margin-bottom:18px;
    border-radius:999px;
    background:rgba(255,255,255,.7);
}
.mockup-metrics{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:13px;
    margin-bottom:16px;
}
.mockup-metrics i{
    height:64px;
    border-radius:16px;
    background:rgba(255,255,255,.18);
}
.mockup-table{
    display:grid;
    gap:9px;
}
.mockup-table b{
    display:block;
    height:13px;
    border-radius:999px;
    background:rgba(255,255,255,.2);
}
.work-content{padding:24px;}
.work-meta{
    margin-bottom:10px;
    color:var(--accent-2);
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.chips{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:18px;
}
.spreadsheet-mockup{
    display:grid;
    align-content:start;
    gap:10px;
}
.sheet-row{
    display:grid;
    grid-template-columns:1.3fr .8fr .9fr 1fr;
    gap:8px;
}
.sheet-row span{
    height:18px;
    border-radius:6px;
    background:rgba(255,255,255,.18);
}
.sheet-row.head span{background:color-mix(in srgb,var(--accent-2) 46%,transparent);}
.sheet-chart{
    width:64%;
    height:74px;
    margin-top:18px;
    border-radius:18px;
    background:linear-gradient(90deg,rgba(255,255,255,.15) 20%,transparent 20% 26%,rgba(255,255,255,.15) 26% 44%,transparent 44% 51%,rgba(255,255,255,.15) 51% 78%,transparent 78%),rgba(255,255,255,.08);
}
.deck-mockup{
    display:grid;
    grid-template-columns:1.3fr .7fr;
    gap:12px;
}
.slide{
    min-height:86px;
    border-radius:18px;
    background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(255,255,255,.12)),rgba(255,255,255,.12);
}
.active-slide{grid-row:span 3;}
.product-mockup{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    align-items:center;
    gap:18px;
}
.product-photo{
    aspect-ratio:1;
    border-radius:26px;
    background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 80%,transparent),color-mix(in srgb,var(--accent) 12%,transparent) 52%,transparent 54%),rgba(255,255,255,.11);
}
.product-lines{
    display:grid;
    gap:12px;
}
.product-lines span{
    height:18px;
    border-radius:999px;
    background:rgba(255,255,255,.22);
}
.product-lines span:nth-child(1){width:80%;}
.product-lines span:nth-child(2){width:100%;}
.product-lines span:nth-child(3){width:64%;}
.product-button{
    width:68%;
    height:44px;
    margin-top:18px;
    border-radius:999px;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
}
.code-mockup{
    display:grid;
    align-content:start;
    gap:12px;
}
.code-line{
    height:14px;
    border-radius:999px;
    background:color-mix(in srgb,var(--accent-2) 34%,transparent);
}
.code-line.wide{width:72%;}
.code-line.mid{width:52%;}
.code-line.short{width:34%;}
.code-window{
    position:relative;
    min-height:132px;
    margin-top:12px;
    border:1px solid var(--line);
    border-radius:22px;
    background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,transparent),color-mix(in srgb,var(--accent-2) 8%,transparent)),rgba(255,255,255,.06);
    overflow:hidden;
}
.floating-cube{
    position:absolute;
    left:50%;
    top:50%;
    width:68px;
    height:68px;
    border-radius:18px;
    transform:translate(-50%,-50%) rotate(18deg);
    background:linear-gradient(135deg,var(--accent),var(--accent-2));
    box-shadow:0 22px 44px color-mix(in srgb,var(--accent) 25%,transparent);
    animation:floatCube 4s ease-in-out infinite;
}
.diagram-mockup{position:relative;}
.node{
    position:absolute;
    width:74px;
    height:74px;
    border-radius:24px;
    background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(255,255,255,.16));
    box-shadow:0 20px 45px rgba(0,0,0,.18);
}
.node:nth-child(1){
    left:14%;
    top:34%;
}
.node:nth-child(2){
    left:42%;
    top:18%;
}
.node:nth-child(3){
    right:15%;
    bottom:22%;
}
.line{
    position:absolute;
    height:3px;
    border-radius:999px;
    background:color-mix(in srgb,var(--accent-2) 62%,transparent);
    transform-origin:left center;
}
.line-one{
    left:28%;
    top:43%;
    width:24%;
    transform:rotate(-18deg);
}
.line-two{
    left:54%;
    top:41%;
    width:26%;
    transform:rotate(31deg);
}
.split-section{
    display:grid;
    grid-template-columns:.78fr 1.22fr;
    gap:44px;
    align-items:start;
}
.about-copy{
    padding:30px;
    border:1px solid var(--line);
    border-radius:var(--radius-xl);
    background:rgba(255,255,255,.065);
}
.about-copy p:last-child{margin-bottom:0;}
.contact-section{padding-bottom:52px;}
.contact-card{
    max-width:880px;
    margin:0 auto;
    padding:clamp(28px,5vw,56px);
    text-align:center;
}
.contact-card h2{
    margin-bottom:14px;
    font-family:var(--font-display);
    font-size:clamp(2rem,5vw,4rem);
    line-height:.96;
    letter-spacing:-.055em;
}
.contact-actions{justify-content:center;}
.fine-print{
    margin:16px auto 0;
    max-width:600px;
    font-size:.88rem;
}
.site-footer{
    width:min(var(--max),calc(100% - 32px));
    margin:0 auto;
    padding:26px 0 42px;
    color:var(--muted);
    text-align:center;
    border-top:1px solid var(--line);
}
.reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .7s ease,transform .7s ease;
}
.reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}
.messy-word{
    display:inline-flex;
    align-items:baseline;
    gap:.015em;
    position:relative;
    color:var(--text);
    text-shadow:0 0 18px color-mix(in srgb,var(--accent) 34%,transparent),0 0 34px color-mix(in srgb,var(--accent-2) 16%,transparent);
    white-space:nowrap;
}
.messy-letter{
    display:inline-block;
    animation-name:messyShift;
    animation-duration:2.6s;
    animation-timing-function:ease-in-out;
    animation-iteration-count:infinite;
    transform-origin:center;
}
.messy-letter:nth-child(1){animation-delay:0s;}
.messy-letter:nth-child(2){animation-delay:-.42s;}
.messy-letter:nth-child(3){animation-delay:-.18s;}
.messy-letter:nth-child(4){animation-delay:-.63s;}
.messy-letter:nth-child(5){animation-delay:-.31s;}
.clean-word{
    position:relative;
    display:inline-block;
    color:transparent;
    -webkit-text-fill-color:transparent;
    background:linear-gradient(115deg,rgba(244,248,255,.92) 0%,rgba(244,248,255,.92) 34%,#fff 43%,color-mix(in srgb,var(--accent-2) 95%,white) 49%,color-mix(in srgb,var(--accent) 95%,white) 55%,rgba(244,248,255,.92) 66%,rgba(244,248,255,.92) 100%);
    background-size:260% 100%;
    background-position:140% 0;
    background-clip:text;
    -webkit-background-clip:text;
    -webkit-text-stroke:.012em rgba(255,255,255,.55);
    paint-order:stroke fill;
    text-shadow:0 0 10px rgba(255,255,255,.22),0 0 22px color-mix(in srgb,var(--accent) 22%,transparent),0 0 34px color-mix(in srgb,var(--accent-2) 12%,transparent);
    animation:cleanTextGlisten 3.8s ease-in-out infinite;
}
.clean-text{display:inline;}
.clean-word::after{
    content:"✦";
    position:absolute;
    right:-.28em;
    top:-.24em;
    z-index:3;
    color:rgba(255,255,255,.96);
    -webkit-text-fill-color:rgba(255,255,255,.96);
    font-size:.24em;
    line-height:1;
    text-shadow:0 0 8px rgba(255,255,255,.9),0 0 18px color-mix(in srgb,var(--accent) 62%,transparent),0 0 26px color-mix(in srgb,var(--accent-2) 45%,transparent);
    animation:cleanSparkle 2.4s ease-in-out infinite;
}
body.theme-executive .clean-word,body.theme-executive .messy-word{
    color:var(--accent);
    -webkit-text-fill-color:currentColor;
    background:none;
    text-shadow:none;
    animation:none;
}
body.theme-executive .clean-word::after{display:none;}
body.theme-questbound .clean-word{
    background:linear-gradient(115deg,#fff3d2 0%,#fff3d2 34%,#fff 46%,#f0b64b 56%,#fff3d2 72%);
    background-size:260% 100%;
    background-clip:text;
    -webkit-background-clip:text;
}
@keyframes floatCube{
    0%,100%{transform:translate(-50%,-50%) rotate(18deg);}
    50%{transform:translate(-50%,-62%) rotate(31deg);}
}
@keyframes messyShift{
    0%{transform:translate(0,0) rotate(0deg);}
    20%{transform:translate(-.035em,.025em) rotate(-1.4deg);}
    42%{transform:translate(.028em,-.035em) rotate(1.7deg);}
    66%{transform:translate(-.018em,-.012em) rotate(-.8deg);}
    84%{transform:translate(.034em,.018em) rotate(1.1deg);}
    100%{transform:translate(0,0) rotate(0deg);}
}
@keyframes cleanTextGlisten{
    0%{background-position:140% 0;}
    46%{background-position:140% 0;}
    68%{background-position:-60% 0;}
    100%{background-position:-60% 0;}
}
@keyframes cleanSparkle{
    0%,100%{
        transform:scale(.6) rotate(0deg);
        opacity:.25;
    }
    35%{
        transform:scale(1.15) rotate(18deg);
        opacity:1;
    }
    52%{
        transform:scale(.82) rotate(38deg);
        opacity:.55;
    }
    68%{
        transform:scale(1.35) rotate(58deg);
        opacity:.95;
    }
}
@media (max-width:980px){
    .service-feature-grid{grid-template-columns:1fr;}
    .theme-console,.hero,.split-section{grid-template-columns:1fr;}
}
@media (max-width:900px){
    .site-header{border-radius:26px;}
    .nav-toggle{display:block;}
    .site-nav{
        position:absolute;
        top:calc(100% + 10px);
        left:0;
        right:0;
        display:none;
        flex-direction:column;
        align-items:stretch;
        padding:12px;
        border:1px solid var(--line);
        border-radius:24px;
        background:color-mix(in srgb,var(--bg) 94%,transparent);
        backdrop-filter:blur(18px);
    }
    .site-nav.open{display:flex;}
    .site-nav a{
        padding:12px 14px;
        inline-size:max-content;
    }
    .hero{min-height:auto;}
    .work-grid{grid-template-columns:1fr;}
}
@media (max-width:720px){
    .theme-picker{grid-template-columns:1fr;}
    .theme-choice{min-height:124px;}
    .choice-kicker{margin-bottom:20px;}
    .mini-dashboard{grid-template-columns:1fr;}
}
@media (max-width:620px){
    .section{
        width:min(100% - 24px,var(--max));
        padding:62px 0;
    }
    .site-header{
        width:calc(100% - 24px);
        margin-top:12px;
    }
    .brand-text{display:none;}
    .hero-title{font-size:clamp(3.1rem,16vw,5.2rem);}
    .deck-mockup,.product-mockup{grid-template-columns:1fr;}
    .active-slide{grid-row:auto;}
    .mockup{min-height:220px;}
    .showcase-stage{min-height:310px;}
}
@media (prefers-reduced-motion:reduce){
    .messy-letter,.clean-word,.clean-word::after,.floating-cube{animation:none;}
}

/* === Theme cards stay in their own lanes. Current page theme should not repaint the selector. === */
.site-header{overflow:visible;}
.theme-choice{
    --choice-bg:#07111f;
    --choice-bg-2:#0b1b2d;
    --choice-text:#f4f8ff;
    --choice-muted:#aebbd0;
    --choice-line:rgba(255,255,255,.13);
    --choice-accent:#56d7ff;
    --choice-accent-2:#8affd2;
    color:var(--choice-text);
    border-color:var(--choice-line);
    background:radial-gradient(circle at 86% 18%,color-mix(in srgb,var(--choice-accent) 24%,transparent),transparent 36%),linear-gradient(135deg,var(--choice-bg),var(--choice-bg-2));
}
.theme-choice::before{background:radial-gradient(circle,var(--choice-accent),transparent 68%);}
.theme-choice:hover,.theme-choice.active{
    border-color:color-mix(in srgb,var(--choice-accent) 70%,white);
    box-shadow:0 18px 44px color-mix(in srgb,var(--choice-accent) 28%,transparent);
}
.theme-choice .choice-kicker{color:var(--choice-accent-2);}
.theme-choice span:last-child{color:var(--choice-muted);}
.theme-choice-nova{
    --choice-bg:#07111f;
    --choice-bg-2:#0b1b2d;
    --choice-text:#f4f8ff;
    --choice-muted:#aebbd0;
    --choice-line:rgba(86,215,255,.24);
    --choice-accent:#56d7ff;
    --choice-accent-2:#8affd2;
}
.theme-choice-executive{
    --choice-bg:#f8fbff;
    --choice-bg-2:#e8eff8;
    --choice-text:#10233d;
    --choice-muted:#51627a;
    --choice-line:rgba(22,52,92,.2);
    --choice-accent:#16345c;
    --choice-accent-2:#c89b3c;
}
.theme-choice-questbound{
    --choice-bg:#e9d4a3;
    --choice-bg-2:#b89968;
    --choice-text:#351d14;
    --choice-muted:#684334;
    --choice-line:rgba(70,34,24,.32);
    --choice-accent:#7b1f25;
    --choice-accent-2:#2f5b46;
    font-family:"Special Elite",Georgia,serif;
}
/* test */
.theme-choice[data-theme="nova"]{
    --choice-bg:#07111f;
    --choice-bg-2:#102848;
    --choice-text:#f4f8ff;
    --choice-muted:#aebbd0;
    --choice-line:rgba(86,215,255,.34);
    --choice-accent:#56d7ff;
    --choice-accent-2:#8affd2;
    color:var(--choice-text);
    border-color:var(--choice-line);
    background:radial-gradient(circle at 85% 15%,rgba(86,215,255,.28),transparent 44%),linear-gradient(135deg,var(--choice-bg),var(--choice-bg-2));
    box-shadow:0 18px 42px rgba(86,215,255,.12);
}
.theme-choice[data-theme="executive"]{
    --choice-bg:#ffffff;
    --choice-bg-2:#eef3f8;
    --choice-text:#10233d;
    --choice-muted:#51627a;
    --choice-line:rgba(16,35,61,.18);
    --choice-accent:#16345c;
    --choice-accent-2:#c89b3c;
    color:var(--choice-text);
    border-color:var(--choice-line);
    background:radial-gradient(circle at 85% 15%,rgba(69,115,173,.16),transparent 44%),linear-gradient(135deg,var(--choice-bg),var(--choice-bg-2));
    box-shadow:0 18px 42px rgba(16,35,61,.1);
}
.theme-choice[data-theme="questbound"]{
    --choice-bg:#171021;
    --choice-bg-2:#34213c;
    --choice-text:#fff2cf;
    --choice-muted:#d9c79a;
    --choice-line:rgba(224,185,93,.36);
    --choice-accent:#e0b95d;
    --choice-accent-2:#9b2f3f;
    color:var(--choice-text);
    border-color:var(--choice-line);
    background:radial-gradient(circle at 85% 15%,rgba(224,185,93,.22),transparent 44%),linear-gradient(135deg,var(--choice-bg),var(--choice-bg-2));
    box-shadow:0 18px 42px rgba(13,8,20,.3);
}
.theme-choice[data-theme="questbound"] strong{font-family:"IM Fell English SC",Georgia,"Times New Roman",serif;}
.theme-choice[data-theme="questbound"] span:last-child{font-family:"Special Elite",Georgia,"Times New Roman",serif;}
.theme-choice[data-theme="nova"] .choice-kicker{color:var(--choice-accent-2);}
.theme-choice[data-theme="executive"] .choice-kicker{color:var(--choice-accent);}
.theme-choice[data-theme="questbound"] .choice-kicker{color:var(--choice-accent);}
.theme-choice[data-theme] span:last-child{color:var(--choice-muted);}
.theme-choice[data-theme]::before{background:radial-gradient(circle,var(--choice-accent),transparent 68%);}
.theme-choice[data-theme]:hover,.theme-choice[data-theme].active{
    border-color:var(--choice-accent);
    box-shadow:0 22px 52px color-mix(in srgb,var(--choice-accent) 24%,transparent);
}
.theme-console.is-docked .theme-choice{
    transform:scale(.18) translateY(-60px);
    opacity:0;
    pointer-events:none;
}
/* end test */
.theme-choice-questbound strong{font-family:"Permanent Marker","Special Elite",Georgia,serif;letter-spacing:.02em;}
.theme-dock{
    display:flex;
    align-items:center;
    gap:8px;
    max-width:0;
    opacity:0;
    transform:translateX(18px) scale(.42);
    transform-origin:right center;
    pointer-events:none;
    overflow:hidden;
    transition:max-width .42s cubic-bezier(.2,.8,.2,1),opacity .28s ease,transform .42s cubic-bezier(.2,.8,.2,1);
}
body.theme-docked .theme-dock{
    max-width:150px;
    opacity:1;
    transform:translateX(0) scale(1);
    pointer-events:auto;
}
.theme-orb{
    position:relative;
    width:36px;
    height:36px;
    flex:0 0 36px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#fff;
    cursor:pointer;
    overflow:hidden;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.theme-orb span{
    position:relative;
    z-index:2;
    font-size:.74rem;
    font-weight:900;
}
.theme-orb::before{
    content:"";
    position:absolute;
    inset:-10px;
    border-radius:inherit;
    opacity:.8;
}
.theme-orb:hover,.theme-orb.active{transform:translateY(-2px) scale(1.08);}
.theme-orb-nova{
    background:linear-gradient(135deg,#07111f,#0b1b2d);
    box-shadow:0 0 20px rgba(86,215,255,.22);
}
.theme-orb-nova::before{background:radial-gradient(circle at 34% 25%,#8affd2,transparent 20%),radial-gradient(circle at 66% 74%,#56d7ff,transparent 32%);}
.theme-orb-executive{
    color:#10233d;
    background:linear-gradient(135deg,#fff,#dfe8f4);
    box-shadow:0 10px 24px rgba(16,35,61,.18);
}
.theme-orb-executive::before{background:radial-gradient(circle at 42% 22%,#c89b3c,transparent 18%),radial-gradient(circle at 70% 70%,#16345c,transparent 34%);opacity:.42;}
.theme-orb-questbound{
    color:#351d14;
    background:linear-gradient(135deg,#ead6a8,#b99461);
    box-shadow:0 10px 24px rgba(54,28,15,.22);
}
.theme-orb-questbound::before{background:radial-gradient(circle at 35% 22%,#2f5b46,transparent 18%),radial-gradient(circle at 70% 70%,#7b1f25,transparent 34%);opacity:.5;}
.theme-orb.active{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.16),0 0 26px color-mix(in srgb,var(--accent) 42%,transparent);}
body.theme-docked .theme-console .theme-choice{
    transform:scale(.96);
    opacity:.72;
}

/* === Questbound palette correction: parchment, ink, burgundy, sage. No burnt-orange soup. === */
body.theme-questbound{
    --bg:#201c18;
    --bg-2:#3a3229;
    --panel:rgba(78,55,38,.7);
    --panel-strong:rgba(110,78,50,.88);
    --text:#fff1cf;
    --muted:#dfc793;
    --soft:#f5dba6;
    --line:rgba(255,235,190,.24);
    --accent:#c8a35f;
    --accent-2:#8c2430;
    --accent-3:#4d8060;
    --shadow:0 24px 70px rgba(19,13,8,.48);
    --font-display:"IM Fell English SC",Georgia,serif;
    --font-body:Merriweather,Georgia,serif;
}
body.theme-questbound .showcase-stage{
    background:radial-gradient(circle at 24% 18%,rgba(255,235,180,.22),transparent 14rem),radial-gradient(circle at 78% 74%,rgba(67,104,80,.16),transparent 13rem),#2f2820;
}
.quest-map-overlay{
    inset:16px;
    transform:translate3d(calc(var(--quest-scroll-x,0px)),calc(var(--quest-scroll-y,0px)),0) rotate(var(--quest-scroll-rot,0deg));
    transition:transform .08s linear;
}
.quest-map-paper{
    position:absolute;
    inset:0;
    border:5px solid #422014;
    border-radius:10px;
    background:
        radial-gradient(circle at 20% 24%,rgba(64,32,20,.12) 0 12px,transparent 13px 100%),
        radial-gradient(circle at 74% 62%,rgba(64,32,20,.1) 0 18px,transparent 19px 100%),
        linear-gradient(90deg,rgba(255,255,255,.18) 0 1px,transparent 1px 25%,rgba(90,45,24,.12) 25% calc(25% + 1px),transparent calc(25% + 1px) 50%,rgba(90,45,24,.11) 50% calc(50% + 1px),transparent calc(50% + 1px) 75%,rgba(90,45,24,.12) 75% calc(75% + 1px),transparent calc(75% + 1px)),
        #d8c08b;
    box-shadow:inset 0 0 0 8px rgba(255,238,191,.12),inset 0 0 70px rgba(67,31,18,.32),0 18px 45px rgba(0,0,0,.28);
    overflow:hidden;
}
.quest-map-paper::before,.quest-map-paper::after{
    content:"";
    position:absolute;
    left:-18px;
    right:-18px;
    height:28px;
    background:rgba(62,29,20,.82);
    transform:rotate(-3deg);
    z-index:2;
}
.quest-map-paper::before{top:18px;}
.quest-map-paper::after{bottom:14px;transform:rotate(2deg);}
.quest-map-paper svg{
    position:absolute;
    inset:0;
    z-index:1;
}
.map-fold{
    fill:none;
    stroke:rgba(65,31,20,.26);
    stroke-width:2;
}
.map-woods{fill:rgba(62,88,60,.38);stroke:rgba(59,31,22,.44);stroke-width:2;}
.map-sea{fill:rgba(91,130,140,.38);stroke:rgba(59,31,22,.38);stroke-width:2;}
.map-river{
    fill:none;
    stroke:rgba(248,236,206,.74);
    stroke-width:4;
    stroke-linecap:round;
}
.map-road{
    fill:none;
    stroke:#5a1e25;
    stroke-width:5;
    stroke-linecap:round;
    stroke-dasharray:10 12;
}
.road-two{
    stroke:#422014;
    stroke-width:3;
    stroke-dasharray:7 9;
}
.map-x{
    fill:none;
    stroke:#6f1c26;
    stroke-width:7;
    stroke-linecap:round;
}
.x-two{stroke:#2f5b46;}
.map-marker{
    fill:#6f1c26;
    stroke:#f5dba6;
    stroke-width:3;
}
.map-title{
    position:absolute;
    z-index:3;
    left:14px;
    top:8px;
    color:#fff1cf;
    font-family:"Permanent Marker","Special Elite",serif;
    font-size:1.15rem;
    letter-spacing:.04em;
    text-shadow:2px 3px 0 #422014;
    transform:rotate(-2deg);
}
.map-label{
    position:absolute;
    z-index:3;
    padding:0;
    border:0;
    border-radius:0;
    color:#5a1e25;
    background:transparent;
    font-family:"Permanent Marker","Special Elite",serif;
    font-size:.92rem;
    font-weight:900;
    line-height:1;
    text-transform:uppercase;
    text-shadow:none;
    box-shadow:none;
    transform:rotate(-3deg);
}
.label-one{left:23%;top:22%;}
.label-two{right:17%;top:18%;color:#2d4f3d;transform:rotate(4deg);}
.label-three{right:10%;bottom:26%;font-size:1.15rem;transform:rotate(7deg);}
.label-four{left:10%;bottom:20%;color:#422014;transform:rotate(-8deg);}
.map-rune{
    position:absolute;
    z-index:4;
    bottom:8px;
    width:72px;
    height:80px;
    display:grid;
    place-items:center;
    border:3px solid #422014;
    border-radius:8px;
    color:#fff1cf;
    background:#6f1c26;
    font-family:"Permanent Marker",serif;
    font-size:2rem;
    box-shadow:0 6px 15px rgba(0,0,0,.22);
}
.rune-one{left:7%;transform:rotate(9deg);}
.rune-two{left:24%;background:#2f5b46;transform:rotate(-4deg);}
.rune-three{left:41%;background:#b28b52;transform:rotate(3deg);}
body.theme-questbound .map-label{animation:mapInkWobble 4.2s ease-in-out infinite;}
@keyframes mapInkWobble{
    0%,100%{filter:blur(0);}
    50%{filter:blur(.2px);}
}
@media (max-width:900px){
    .theme-dock{order:3;}
    body.theme-docked .theme-dock{max-width:120px;}
    .theme-orb{
        width:32px;
        height:32px;
        flex-basis:32px;
    }
}


/* === Dungeon theme conversion: Questbound is dead. Long live Dungeon. === */
body.theme-dungeon{
    --bg:#101218;
    --bg-2:#191d27;
    --panel:rgba(255,255,255,.075);
    --panel-strong:rgba(255,255,255,.13);
    --text:#f3efe6;
    --muted:#b8b0a0;
    --soft:#e3d6bf;
    --line:rgba(255,255,255,.14);
    --accent:#d99a3d;
    --accent-2:#4ddf9a;
    --accent-3:#7b5cff;
    --shadow:0 24px 70px rgba(0,0,0,.46);
    --font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.theme-dungeon .grid-overlay{
    background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),radial-gradient(circle at 72% 38%,rgba(123,92,255,.14),transparent 20rem),radial-gradient(circle at 28% 76%,rgba(217,154,61,.14),transparent 18rem);
    background-size:46px 46px,46px 46px,100% 100%,100% 100%;
    mask-image:linear-gradient(to bottom,#000,transparent 92%);
}
body.theme-dungeon .showcase-stage{
    background:radial-gradient(circle at 50% 35%,rgba(217,154,61,.16),transparent 15rem),radial-gradient(circle at 70% 72%,rgba(123,92,255,.15),transparent 14rem),#11141c;
}
body.theme-dungeon .hero-title{
    text-transform:none;
    letter-spacing:-.065em;
    text-shadow:0 8px 28px rgba(0,0,0,.34);
}
.theme-choice-dungeon,
.theme-choice[data-theme="dungeon"]{
    --choice-bg:#101218;
    --choice-bg-2:#252b38;
    --choice-text:#f3efe6;
    --choice-muted:#b8b0a0;
    --choice-line:rgba(217,154,61,.34);
    --choice-accent:#d99a3d;
    --choice-accent-2:#4ddf9a;
    color:var(--choice-text);
    border-color:var(--choice-line);
    background:radial-gradient(circle at 80% 16%,rgba(217,154,61,.25),transparent 43%),radial-gradient(circle at 25% 80%,rgba(123,92,255,.18),transparent 38%),linear-gradient(135deg,var(--choice-bg),var(--choice-bg-2));
    box-shadow:0 18px 42px rgba(0,0,0,.24);
}
.theme-choice[data-theme="dungeon"] strong{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.theme-choice[data-theme="dungeon"] span:last-child{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--choice-muted);}
.theme-choice[data-theme="dungeon"] .choice-kicker{color:var(--choice-accent-2);}
.theme-choice[data-theme="dungeon"]::before{background:radial-gradient(circle,var(--choice-accent),transparent 68%);}
.theme-orb-dungeon{
    color:#f3efe6;
    background:linear-gradient(135deg,#101218,#343946);
    box-shadow:0 10px 24px rgba(0,0,0,.28);
}
.theme-orb-dungeon::before{background:radial-gradient(circle at 34% 25%,#d99a3d,transparent 20%),radial-gradient(circle at 70% 70%,#7b5cff,transparent 34%);opacity:.62;}
body.theme-dungeon .clean-word{
    background:linear-gradient(115deg,#f3efe6 0%,#f3efe6 34%,#fff 46%,#d99a3d 56%,#4ddf9a 68%,#f3efe6 82%);
    background-size:260% 100%;
    background-clip:text;
    -webkit-background-clip:text;
}
body.theme-dungeon .messy-word{text-shadow:0 0 18px rgba(217,154,61,.3),0 0 34px rgba(123,92,255,.18);}
body.theme-dungeon .showcase-status{background:linear-gradient(135deg,#d99a3d,#4ddf9a);box-shadow:0 0 22px rgba(217,154,61,.58);}
/* Hide the old parchment overlay if an older cached index still has it. */
body.theme-dungeon .quest-map-overlay{display:none!important;}
