@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700&family=Inter:wght@400;500;600;700&display=swap";:root{--ink:#e9e4d6;--muted:#aaa89f;--gold:#c8a75c;--gold-bright:#ecd48e;--ember:#c46c3e;--blue:#5ca5b8;--panel:#181b1dcc;--panel-solid:#181b1d;--line:#4d493c;--deep:#0d0f10;--content:1180px;--shadow:0 18px 50px #0008;color:var(--ink);background:#0d0f10;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 80% 10%,#33404433,#0000 32rem),url(/portfolio/assets/theme/dark-wall.png),#0d0f10;margin:0;line-height:1.65}body:before{content:"";pointer-events:none;z-index:-1;background:linear-gradient(90deg,#0008,#0000 25% 75%,#0008),radial-gradient(circle at 50% 0,#b88e3b12,#0000 35rem);position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit}button,input,select{font:inherit}.shell{width:min(calc(100% - 40px),var(--content));margin-inline:auto}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:99;background:var(--gold);color:#111;padding:.8rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}:focus-visible{outline:3px solid var(--gold-bright);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.13}h1,h2,.brand strong{font-family:Cinzel,Georgia,serif}h1{letter-spacing:-.035em;font-size:clamp(2.5rem,7vw,5.3rem)}h2{font-size:clamp(1.8rem,4vw,3rem)}.eyebrow{color:var(--gold-bright);letter-spacing:.19em;text-transform:uppercase;font-size:.72rem;font-weight:800;display:block}.section{padding-block:6rem}.section-heading{max-width:700px;margin-bottom:2.5rem}.section-heading h2{margin:.35rem 0 .7rem}.section-heading p{color:var(--muted);font-size:1.06rem}.text-link{color:var(--gold-bright);margin-top:2rem;font-weight:700;text-decoration:none;display:inline-block}.button{border:1px solid var(--gold);text-transform:uppercase;letter-spacing:.08em;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);justify-content:center;align-items:center;min-height:48px;padding:.75rem 1.25rem;font-size:.77rem;font-weight:800;text-decoration:none;transition:all .2s;display:inline-flex}.button.primary{color:#111;background:linear-gradient(#d4b564,#9a7533);border-color:#f6df9e;box-shadow:inset 0 0 0 1px #5b421d,0 4px 20px #d3a74726}.button.secondary{color:var(--gold-bright);background:#15191b}.button:hover{filter:brightness(1.12);transform:translateY(-2px)}.site-header{z-index:50;min-height:76px;padding:0 max(24px,calc((100vw - var(--content))/2));backdrop-filter:blur(12px);background:linear-gradient(#171a1cf2,#101214f2),url(/portfolio/assets/theme/dark-leather.png);border-bottom:1px solid #5b5443;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;display:grid;position:sticky;top:0;box-shadow:0 10px 30px #0007}.site-header:after{content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.55;height:3px;position:absolute;bottom:-4px;left:0;right:0}.brand{align-items:center;gap:.8rem;text-decoration:none;display:flex}.brand-mark{clip-path:polygon(50% 0,90% 17%,100% 65%,73% 100%,27% 100%,0 65%,10% 17%);background:radial-gradient(circle,#745a2c,#211d17 70%);border:1px solid #d8bd74;place-items:center;width:42px;height:42px;font-family:Cinzel,serif;font-size:.9rem;display:grid}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.03em;font-size:.9rem}.brand small{color:#9f9a8c;letter-spacing:.12em;font-size:.57rem}.main-nav{justify-self:center;height:76px;display:flex}.main-nav a{color:#c7c3b8;letter-spacing:.06em;text-transform:uppercase;place-items:center;padding:0 .9rem;font-size:.78rem;font-weight:700;text-decoration:none;display:grid;position:relative}.main-nav a:after{content:"";background:var(--gold);height:2px;transition:all .2s;position:absolute;bottom:0;left:25%;right:25%;transform:scaleX(0)}.main-nav a:hover,.main-nav a.active{color:#fff}.main-nav a.active:after,.main-nav a:hover:after{transform:scaleX(1)}.language-select select{color:#ddd;background:#101315;border:1px solid #5d5749;border-radius:0;max-width:120px;padding:.5rem 1.8rem .5rem .65rem}.nav-toggle{display:none}.translation-note{text-align:center;color:#f3dda0;background:#4d3f1a;margin:0;padding:.45rem 1rem;font-size:.74rem}.hero{grid-template-columns:1.3fr .7fr;align-items:center;gap:clamp(3rem,7vw,7rem);min-height:calc(80vh - 76px);padding-block:5rem;display:grid}.hero h1{margin:.3rem 0 1rem}.hero h1 span{color:var(--gold-bright);letter-spacing:.2em;text-transform:uppercase;font:700 .17em/1.4 Inter,sans-serif;display:block}.hero__headline{color:#ddd6c3;max-width:740px;font:600 clamp(1.1rem,2vw,1.45rem)/1.4 Cinzel,serif}.hero__intro{max-width:720px;color:var(--muted);font-size:1.12rem}.status-line{color:#a7ddc2;text-transform:uppercase;letter-spacing:.08em;background:#16241f;border:1px solid #3c6656;align-items:center;gap:.55rem;margin-bottom:1.5rem;padding:.35rem .7rem;font-size:.75rem;display:inline-flex}.status-dot{background:#64d69a;border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px #64d69a}.hero__actions,.hero__meta{flex-wrap:wrap;gap:.8rem;margin-top:1.7rem;display:flex}.hero__meta{color:#aaa69a;gap:1.2rem;font-size:.8rem}.hero__meta a{color:var(--gold-bright);text-decoration:none}.character-sheet{clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px);box-shadow:var(--shadow);background:linear-gradient(135deg,#80704b,#2b2923 14%,#17191a 50%,#2c2820 86%,#867349);padding:14px;position:relative}.character-sheet:before{content:"PLAYER DOSSIER";z-index:2;color:var(--gold-bright);letter-spacing:.16em;background:#0d1011cc;padding:.25rem .5rem;font-size:.6rem;position:absolute;top:22px;left:24px}.portrait{aspect-ratio:4/3;border:1px solid #746a50;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.character-sheet dl{background:linear-gradient(#171a1ef5,#111315f5),url(/portfolio/assets/theme/dark-leather.png);margin:0;padding:1rem}.character-sheet dl div{border-bottom:1px solid #38372f;grid-template-columns:105px 1fr;gap:.75rem;padding:.52rem 0;display:grid}.character-sheet dl div:last-child{border:0}.character-sheet dt{color:#8f8c83;text-transform:uppercase;letter-spacing:.09em;font-size:.67rem}.character-sheet dd{margin:0;font-size:.82rem;font-weight:600}.project-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.featured-grid .project-card--featured{grid-column:span 2}.project-card{clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%,0 9px);background:linear-gradient(145deg,#212426,#131617);border:1px solid #4c483c;min-width:0;transition:transform .2s,border-color .2s;box-shadow:0 12px 30px #0004}.project-card:hover{border-color:#9f8751;transform:translateY(-4px)}.project-visual{aspect-ratio:16/9;background:#111;border-bottom:1px solid #4d493c;display:block;position:relative;overflow:hidden}.project-visual:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 5px #0d0f10aa,inset 0 -50px 80px #000a}.project-visual img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.project-card:hover .project-visual img{transform:scale(1.035)}.confidentiality{z-index:2;color:#ddd;letter-spacing:.11em;text-transform:uppercase;background:#111d;border:1px solid #777;padding:.25rem .45rem;font-size:.57rem;font-weight:800;position:absolute;top:.7rem;right:.7rem}.confidentiality.sanitized{color:#e9ce84;border-color:#8d6e2f}.metric-ribbon{z-index:2;border-left:3px solid var(--gold);color:#fff;background:#101314e8;padding:.38rem .55rem;font-size:.75rem;position:absolute;bottom:.7rem;left:.7rem}.project-card__body{padding:1.1rem 1.15rem 1.25rem}.project-kicker{color:#99958a;text-transform:uppercase;letter-spacing:.09em;justify-content:space-between;gap:1rem;font-size:.58rem;display:flex}.project-kicker span:first-child{color:var(--gold)}.project-card h3{margin:.65rem 0;font-size:1.25rem}.project-card h3 a{text-decoration:none}.project-card p{color:#aaa89f;min-height:4.8em;font-size:.88rem}.tag-list{flex-wrap:wrap;gap:.4rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.tag-list li{color:#c4c0b4;background:#16191a;border:1px solid #49463c;padding:.22rem .48rem;font-size:.65rem}.split-section{grid-template-columns:1fr 1fr;gap:6rem;display:grid}.timeline{margin:0;padding:0;list-style:none}.timeline.compact li{border-bottom:1px solid #3c3b35;grid-template-columns:130px 1fr;gap:1rem;padding:1rem 0;display:grid}.timeline time{color:var(--gold);font-size:.72rem}.timeline.compact strong,.timeline.compact span{display:block}.timeline.compact span{color:var(--muted);font-size:.8rem}.mini-inventory{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.mini-item{background:#181b1c;border:1px solid #4b4941;padding:.8rem 1rem;position:relative}.mini-item:before{content:"";background:#999;width:3px;position:absolute;top:0;bottom:0;left:0}.mini-item.epic:before{background:#9a61df}.mini-item.legendary:before{background:#e49a39}.mini-item.cursed:before{background:#b84a4a}.mini-item span,.mini-item small{display:block}.mini-item span{font-weight:700}.mini-item small{color:#8f8d85;text-transform:uppercase;font-size:.63rem}.resume-cta{box-shadow:var(--shadow);background:linear-gradient(100deg,#312b20,#171a1b 60%);border:1px solid #766a4a;justify-content:space-between;align-items:center;gap:3rem;margin-block:2rem 7rem;padding:2rem 2.5rem;display:flex}.resume-cta h2{margin:.3rem 0;font-size:1.65rem}.resume-cta p{max-width:700px;color:var(--muted);margin:0}.page-hero{border-bottom:1px solid #3b3933;padding-block:6rem 3rem}.page-hero h1{margin:.4rem 0;font-size:clamp(2.7rem,7vw,5rem)}.page-hero>p{max-width:720px;color:var(--muted);font-size:1.1rem}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.filters button{color:#bbb8ae;cursor:pointer;background:#171a1b;border:1px solid #575247;padding:.55rem .9rem}.filters button:hover,.filters button.active{border-color:var(--gold);color:#fff;background:#4b3d21}.project-card[hidden],.skill-item[hidden]{display:none}.workshop{border-top:1px solid #3e3c36}.workshop-grid{grid-template-columns:repeat(3,1fr);gap:.85rem;display:grid}.workshop-grid article{background:#151819;border:1px solid #454238;gap:.9rem;padding:1rem;display:flex}.workshop-grid h3{margin:0;font-family:Inter,sans-serif;font-size:.95rem}.workshop-grid small{color:var(--gold)}.workshop-grid p{color:var(--muted);margin:.5rem 0 0;font-size:.8rem}.workshop-icon{border:1px solid var(--gold);width:36px;height:36px;color:var(--gold);flex:0 0 36px;place-items:center;display:grid}.case-hero{isolation:isolate;background:linear-gradient(90deg,#0d0f10 10%,#171a1be6 65%,#0d0f10);border-bottom:1px solid #58503e;padding:7rem 0 4rem;position:relative}.case-hero.has-image:before{content:"";z-index:-2;background-image:linear-gradient(90deg,#0d0f10 8%,#0d0f10e8 48%,#0d0f1050),var(--case-image);background-position:50%;background-size:cover;position:absolute;inset:0}.case-hero.has-image:after{content:"";z-index:-1;background:linear-gradient(#0000 55%,#0d0f10);position:absolute;inset:0}.back-link{color:#c4b98f;margin-bottom:2.5rem;text-decoration:none;display:inline-block}.case-hero h1{max-width:900px;margin:.4rem 0 .5rem}.case-subtitle{color:#c5c0b2;max-width:720px;font-size:1.2rem}.case-meta{gap:2rem;margin:2rem 0;display:flex}.case-meta div{border-left:2px solid var(--gold);padding-left:1rem}.case-meta dt{color:#8e8b82;text-transform:uppercase;font-size:.65rem}.case-meta dd{margin:0;font-weight:700}.case-content{padding-block:4rem}.nda-note{background:#292414;border:1px solid #796536;gap:1.3rem;margin-bottom:4rem;padding:1.2rem 1.4rem;display:flex}.nda-note strong{color:var(--gold-bright);flex:none;font:700 .82rem Cinzel,serif}.nda-note p{color:#c0bba9;margin:0;font-size:.88rem}.case-content>section{border-top:1px solid #3f3d36;grid-template-columns:80px minmax(0,800px);gap:1rem;padding:3.5rem 0;display:grid}.section-index{color:#6e6654;font:700 1rem Cinzel,serif}.case-content h2{margin-bottom:1rem;font-size:2rem}.case-content h2 small{color:var(--gold);letter-spacing:.15em;text-transform:uppercase;margin-top:.35rem;font:600 .6rem Inter,sans-serif;display:block}.case-content section p{color:#c0bdb4;font-size:1.03rem}.outcome-section p{color:#e7dfca!important;font-size:1.25rem!important}.flow-diagram{background:linear-gradient(#15191ae8,#101314e8),url(/portfolio/assets/theme/dark-leather.png);border:1px solid #504b3c;align-items:stretch;gap:.35rem;margin:2.2rem 0 0;padding:1.2rem;display:flex;overflow-x:auto}.flow-node{text-align:center;background:#1e2223;border:1px solid #655d49;flex-direction:column;flex:1 0 120px;justify-content:center;min-height:82px;padding:.7rem;display:flex}.flow-node span{color:var(--gold);font-size:.58rem}.flow-node strong{font-size:.72rem}.flow-arrow{color:var(--gold);align-self:center;font-size:1.2rem}.gallery{grid-template-columns:repeat(2,1fr);gap:.8rem;display:grid}.gallery-item{cursor:zoom-in;background:#111;border:1px solid #5b5546;padding:0;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:260px;transition:transform .3s}.gallery-item:hover img{transform:scale(1.025)}.lightbox{background:#090b0c;border:1px solid #8b7748;max-width:min(96vw,1400px);max-height:92vh;padding:0;box-shadow:0 30px 100px #000}.lightbox::backdrop{background:#000d}.lightbox img{max-height:88vh}.lightbox button{z-index:2;color:#fff;cursor:pointer;background:#111d;border:1px solid #aaa;width:42px;height:42px;font-size:1.4rem;position:absolute;top:.6rem;right:.6rem}.related{padding-block:2rem 7rem}.related>h2{font-size:1.6rem}.campaign-timeline{max-width:930px;margin:auto;position:relative}.campaign-timeline:before{content:"";background:linear-gradient(var(--gold),#48443a);width:1px;position:absolute;top:20px;bottom:20px;left:35px}.campaign-timeline>li{grid-template-columns:72px 1fr;gap:2rem;padding-bottom:3rem;display:grid;position:relative}.timeline-marker{z-index:1;background:radial-gradient(circle,#4d4027,#171a1b 70%);border:1px solid #8c794b;border-radius:50%;place-items:center;width:70px;height:70px;font:700 .75rem Cinzel,serif;display:grid;box-shadow:0 5px 0 -3px #8c794b}.campaign-timeline article{background:#171a1bcc;border:1px solid #4a473d;padding:1.5rem 1.7rem}.campaign-timeline article time{color:var(--gold);font-size:.72rem}.campaign-timeline article h2{margin:.3rem 0 0;font-size:1.5rem}.campaign-timeline article h3{color:#b3afa3;font:600 .85rem Inter,sans-serif}.campaign-timeline article p,.campaign-timeline article li{color:var(--muted);font-size:.9rem}.education{border-top:1px solid #3e3c36}.education-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.education-grid article{background:#171a1b;border-left:2px solid #7e6d45;padding:1.2rem}.education-grid time{color:var(--gold);font-size:.7rem}.education-grid h3{margin:.4rem 0;font-family:Inter,sans-serif}.education-grid p{color:var(--muted);margin:0}.inventory-toolbar{justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.inventory-toolbar label{background:#111415;border:1px solid #70654a;align-items:center;width:min(100%,520px);display:flex}.inventory-toolbar label span{color:var(--gold);padding:0 1rem}.inventory-toolbar input{color:#fff;background:0 0;border:0;width:100%;padding:.9rem}.inventory-toolbar p{color:#89877f;max-width:450px;margin:0;font-size:.7rem}.inventory-grid{grid-template-columns:repeat(3,1fr);gap:.85rem;display:grid}.skill-item{background:linear-gradient(145deg,#202324,#141718);border:1px solid #555248;min-height:235px;padding:1rem 1rem .9rem 5.3rem;position:relative}.skill-item:before{content:"";pointer-events:none;border-top:2px solid #888;position:absolute;inset:0}.skill-item.epic:before{border-color:#925ad8}.skill-item.legendary:before{border-color:#e59936}.skill-item.cursed:before{border-color:#ba4848}.skill-item.unknown:before{border-color:#596575}.skill-icon{background:#101213;border:1px solid #71684f;place-items:center;width:56px;height:56px;display:grid;position:absolute;top:1rem;left:1rem;box-shadow:inset 0 0 12px #000}.skill-icon img{object-fit:contain;width:48px;height:48px}.skill-icon span{font:700 .9rem Cinzel,serif}.skill-title{justify-content:space-between;gap:.5rem;display:flex}.skill-title h2{margin:0;font:700 1.05rem Inter,sans-serif}.skill-title>span{color:#aaa;text-transform:uppercase;font-size:.57rem}.skill-meta{color:var(--gold);text-transform:uppercase;margin:.2rem 0 .65rem;font-size:.62rem}.skill-item ul{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.skill-item li{color:#aaa79e;background:#0e1112;padding:.18rem .38rem;font-size:.62rem}.skill-item blockquote{color:#99958a;border-top:1px solid #3e3c36;margin:.9rem 0 0;padding-top:.7rem;font-size:.68rem;font-style:italic}.empty-state{text-align:center;color:var(--muted);padding:4rem}.about-hero{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}.about-hero img{object-fit:cover;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);border:1px solid #6a6049;width:100%;height:350px}.about-grid{grid-template-columns:1.4fr .6fr;gap:2rem;display:grid}.prose-panel,.principles{background:#171a1bcc;border:1px solid #49463c;padding:2rem}.prose-panel p{color:#bbb8ae;font-size:1.02rem}.principles h2{font-size:1.4rem}.principles dl div{border-bottom:1px solid #3f3d36;padding:.8rem 0}.principles dt{color:var(--gold);text-transform:uppercase;font-size:.65rem}.principles dd{margin:.2rem 0 0}.nda-wide{background:#272216;border:1px solid #665937;gap:1.2rem;margin-bottom:7rem;padding:1.5rem;display:flex}.nda-wide h2{margin:0;font-size:1.2rem}.nda-wide p{color:#bcb7a8;margin:.5rem 0 0}.site-footer{padding:2.2rem max(24px,calc((100vw - var(--content))/2));color:#918e85;background:#0a0c0d;border-top:1px solid #56503f;grid-template-columns:1fr auto;gap:1.5rem;display:grid}.site-footer strong,.site-footer span{display:block}.site-footer strong{color:#ddd}.site-footer nav{gap:1.2rem;display:flex}.site-footer a{color:#cbb982;text-decoration:none}.site-footer small{grid-column:1/-1;font-size:.68rem}.resume{color:#1c2228;background:#fff;max-width:960px;margin-block:3rem;padding:3.5rem 4rem;box-shadow:0 20px 80px #0008}.resume>header{border-bottom:3px solid #222;justify-content:space-between;gap:2rem;padding-bottom:1.5rem;display:flex}.resume h1,.resume h2,.resume h3{font-family:Inter,Arial,sans-serif}.resume h1{letter-spacing:-.03em;margin:0;font-size:2.5rem}.resume>header p{color:#46515a;margin:.3rem 0 0}.resume address{text-align:right;font-size:.8rem;font-style:normal}.resume address a{color:#1c465e}.resume-actions{color:#505a60;background:#edf0f2;justify-content:space-between;align-items:center;margin:1rem 0;padding:.6rem .8rem;font-size:.75rem;display:flex}.resume-actions button{color:#111;cursor:pointer;background:#fff;border:1px solid #333;padding:.4rem .7rem}.resume section{margin-top:1.7rem}.resume section>h2,.resume-two h2{letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #8a9298;margin:0 0 .8rem;padding-bottom:.25rem;font-size:1rem}.resume section>p,.resume li{font-size:.86rem;line-height:1.5}.resume-job{margin-bottom:1.3rem}.resume-job header,.resume-education{justify-content:space-between;gap:1rem;display:flex}.resume-job h3,.resume-education h3{margin:0;font-size:.98rem}.resume-job header p,.resume-education p{color:#3f484f;margin:.1rem 0}.resume-job time,.resume-education time{flex:none;font-size:.76rem}.resume-job>p{margin:.4rem 0}.resume-job ul{margin:.3rem 0;padding-left:1.2rem}.resume-skills{grid-template-columns:1fr 1fr;gap:.4rem 1.5rem;display:grid}.resume-skills p{margin:0;font-size:.78rem}.resume-skills strong{display:block}.resume-education{margin:.7rem 0}.resume-two{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.resume-two>div{margin:0}.resume-body .site-footer{display:none}@media (width<=1050px){.site-header{grid-template-columns:auto 1fr;gap:1rem}.main-nav{background:#101315;border-bottom:1px solid #665d47;height:auto;padding:1rem;display:none;position:absolute;top:76px;left:0;right:0}.main-nav.open{grid-template-columns:repeat(5,1fr);display:grid}.main-nav a{min-height:48px}.nav-toggle{background:#151819;border:1px solid #4d493d;flex-direction:column;gap:4px;padding:.6rem;display:flex}.nav-toggle span:not(.sr-only){background:#ddd;width:20px;height:2px;display:block}.hero{grid-template-columns:1fr 380px}.project-grid,.inventory-grid{grid-template-columns:repeat(2,1fr)}.featured-grid .project-card--featured{grid-column:span 1}.workshop-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.shell{width:min(calc(100% - 28px),var(--content))}.site-header{min-height:68px;padding-inline:14px}.brand strong{font-size:.78rem}.brand small{display:none}.brand-mark{width:38px;height:38px}.main-nav{top:68px;grid-template-columns:1fr!important}.main-nav a{border-bottom:1px solid #2e2f2c}.language-select select{width:88px;padding:.4rem}.hero{grid-template-columns:1fr;min-height:auto;padding-block:4rem}.hero__content{order:1}.character-sheet{order:2;max-width:500px}.hero h1{font-size:3.25rem}.section{padding-block:4rem}.project-grid,.inventory-grid,.workshop-grid,.education-grid{grid-template-columns:1fr}.split-section,.about-grid,.about-hero{grid-template-columns:1fr;gap:3rem}.mini-inventory{grid-template-columns:1fr 1fr}.resume-cta{flex-direction:column;align-items:flex-start;padding:1.4rem}.case-hero{padding:4.5rem 0 3rem}.case-meta{flex-direction:column;gap:1rem}.case-content>section{grid-template-columns:1fr;padding:2.5rem 0}.section-index{font-size:.7rem}.nda-note,.flow-diagram{flex-direction:column}.flow-arrow{transform:rotate(90deg)}.gallery{grid-template-columns:1fr}.gallery-item img{height:220px}.inventory-toolbar{flex-direction:column;align-items:flex-start}.campaign-timeline:before{left:23px}.campaign-timeline>li{grid-template-columns:48px 1fr;gap:1rem}.timeline-marker{width:48px;height:48px}.campaign-timeline article{padding:1.1rem}.site-footer{grid-template-columns:1fr}.site-footer nav{flex-wrap:wrap}.site-footer small{grid-column:1}.resume{width:100%;margin:0;padding:2rem 1.3rem}.resume>header{flex-direction:column}.resume address{text-align:left}.resume-skills,.resume-two{grid-template-columns:1fr}.resume-job header,.resume-education{flex-direction:column;gap:.2rem}}@media (width<=430px){.site-header{grid-template-columns:1fr auto}.header-controls{gap:.45rem}.hero__actions .button{width:100%}.mini-inventory,.timeline.compact li{grid-template-columns:1fr}.project-card p{min-height:0}.gallery-item img{height:180px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{*{box-shadow:none!important}.site-header,.translation-note,.resume-actions,.site-footer{display:none!important}body,.resume-body{background:#fff!important}.resume{color:#000;width:100%;max-width:none;margin:0;padding:0}.resume section,.resume-job{break-inside:avoid}.resume a{color:#000;text-decoration:none}.resume h1{font-size:25pt}.resume section>h2{font-size:10pt}.resume p,.resume li{font-size:8.5pt}.resume-job{margin-bottom:.7rem}@page{size:A4;margin:14mm}}.button{clip-path:none;border-radius:2px;position:relative}.button:before,.button:after{content:"";pointer-events:none;width:8px;height:8px;position:absolute}.button:before{border-top:1px solid;border-left:1px solid;top:3px;left:3px}.button:after{border-bottom:1px solid;border-right:1px solid;bottom:3px;right:3px}.brand-mark{clip-path:none;border:0;border-left:1px solid var(--gold);border-right:1px solid var(--gold);text-shadow:0 1px 8px #000;background:0 0;width:38px;height:38px;position:relative}.brand-mark:before,.brand-mark:after{content:"";background:var(--gold);height:1px;position:absolute;left:7px;right:7px}.brand-mark:before{top:0}.brand-mark:after{bottom:0}.main-nav a{gap:.45rem;display:flex}.main-nav a img,.language-select>img{object-fit:contain;filter:saturate(.65);opacity:.78;width:22px;height:22px}.main-nav a:hover img,.main-nav a.active img{opacity:1;filter:saturate(1.1)}.language-select{align-items:center;gap:.35rem;display:flex}.language-select>img{width:24px;height:24px}.social-icon{border:1px solid;place-items:center;min-width:23px;height:23px;margin-right:.4rem;font-size:.58rem;font-weight:900;line-height:1;display:inline-grid}.site-footer nav a{align-items:center;gap:.7rem;display:flex}.site-footer nav img{object-fit:contain;width:25px;height:25px}.status-line.future{color:#f2bb78;background:#2a1d13;border-color:#a36632}.status-line.future .status-dot{background:#e38a39;box-shadow:0 0 12px #e38a39}.character-sheet{clip-path:none;background:#16191a;border:1px solid #766a4d;padding:10px}.character-sheet:after{content:"";pointer-events:none;border:1px solid #9f8b5b55;position:absolute;inset:4px}.theme-switch{z-index:60;color:#e7d498;cursor:pointer;letter-spacing:.02em;background:#101314f2;border:1px solid #7b6b44;align-items:center;gap:.55rem;max-width:min(340px,100vw - 2rem);padding:.7rem .9rem;font-size:.72rem;font-weight:700;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 8px 30px #0008}.theme-switch:hover{border-color:var(--gold-bright);background:#1d211f}.theme-switch[aria-pressed=true] span:first-child{transform:rotate(45deg)}.mini-item{align-items:center;gap:.7rem;display:flex}.mini-item>img{object-fit:contain;background:#0c0f10;border:1px solid #5f5846;flex:0 0 38px;width:38px;height:38px;padding:2px}.mini-item>div{min-width:0}.project-placeholder{background:radial-gradient(circle at 50% 42%,#3b4d4d,#171b1d 38%,#0f1112 76%),url(/portfolio/assets/theme/dark-leather.png);align-content:center;place-items:center;gap:.7rem;display:grid;position:absolute;inset:0}.project-visual .project-placeholder>img{object-fit:contain;filter:drop-shadow(0 8px 18px #000);opacity:.95;width:82px;height:82px}.project-placeholder span{color:#b9b5a9;letter-spacing:.12em;text-transform:uppercase;font-size:.62rem}.case-placeholder{z-index:-1;aspect-ratio:1;opacity:.62;background:radial-gradient(circle,#334447,#121516 65%);border:1px solid #6c634e;place-items:center;width:min(34vw,360px);display:grid;position:absolute;top:50%;right:8%;transform:translateY(-50%)}.case-placeholder img{filter:drop-shadow(0 20px 28px #000);width:46%}.story-prologue{padding-top:1rem!important}.story-lead{font:600 clamp(1.25rem,2.4vw,1.65rem)/1.5 Cinzel,serif;color:var(--gold-bright)!important}.story-prologue p:not(.story-lead){max-width:760px;font-size:1.05rem;line-height:1.85}.section-index{letter-spacing:.12em}.case-content h2 small{color:#c89d53}.case-content>section{grid-template-columns:110px minmax(0,820px)}.skill-item{outline-offset:3px}.skill-tooltip{z-index:30;color:#e8e3d8;opacity:0;visibility:hidden;pointer-events:none;background:#0d1011f7;border:1px solid #817047;width:min(350px,85vw);padding:1.15rem;transition:opacity .16s,transform .16s,visibility .16s;position:absolute;bottom:calc(100% - 64px);left:50%;transform:translate(-50%,10px);box-shadow:0 20px 55px #000d}.skill-item:hover .skill-tooltip,.skill-item:focus .skill-tooltip,.skill-item:focus-within .skill-tooltip{opacity:1;visibility:visible;transform:translate(-50%)}.skill-tooltip:after{content:"";background:#0d1011;border-bottom:1px solid #817047;border-right:1px solid #817047;width:12px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.tooltip-kicker{color:var(--gold);letter-spacing:.16em;font-size:.58rem;display:block}.skill-tooltip h3{text-align:center;margin:.25rem 0 .8rem;font:700 1.05rem Cinzel,serif}.skill-tooltip dl{border-top:1px solid #423e34;border-bottom:1px solid #423e34;margin:0;padding:.55rem 0}.skill-tooltip dl div{justify-content:space-between;gap:1rem;display:flex}.skill-tooltip dt{color:#99958a;text-transform:uppercase;font-size:.65rem}.skill-tooltip dd{margin:0;font-size:.7rem;font-weight:700}.skill-tooltip p,.skill-tooltip blockquote{margin:.75rem 0 0;font-size:.72rem;line-height:1.55}.skill-tooltip blockquote{color:#e7c66b}.rarity-epic{color:#b98aff}.rarity-legendary{color:#f4aa46}.rarity-cursed{color:#ed6c66}.rarity-uncommon{color:#72c38e}.rarity-rare{color:#69a8e4}.filters button{transition:border-color .2s,background-color .2s,color .2s,transform .2s;position:relative;overflow:hidden}.filters button:after{content:"";background:var(--gold);height:2px;transition:left .2s,right .2s;position:absolute;inset:auto 50% 0}.filters button.active:after{left:0;right:0}.project-card{will-change:transform,opacity}html[data-theme=professional]{--ink:#202a33;--muted:#5d6870;--gold:#315f79;--gold-bright:#214f69;--panel:#fff;--panel-solid:#fff;--line:#c9d0d5;--deep:#edf1f4;color-scheme:light}html[data-theme=professional] body{color:#202a33;background:#edf1f4}html[data-theme=professional] body:before{background:linear-gradient(90deg,#dae2e7,#0000 25% 75%,#dae2e7)}html[data-theme=professional] .site-header{background:#fff;border-color:#cbd2d7;box-shadow:0 5px 20px #22334418}html[data-theme=professional] .site-header:after{opacity:.35;background:#315f79}html[data-theme=professional] .brand small{color:#65717a}html[data-theme=professional] .brand-mark{color:#315f79;text-shadow:none;border-color:#315f79}html[data-theme=professional] .brand-mark:before,html[data-theme=professional] .brand-mark:after{background:#315f79}html[data-theme=professional] .main-nav a{color:#495861}html[data-theme=professional] .language-select select{color:#25313a;background:#fff;border-color:#bcc6cc}html[data-theme=professional] .theme-switch{color:#214f69;background:#fff;border-color:#8ba4b3;box-shadow:0 8px 25px #20313d25}html[data-theme=professional] .eyebrow{color:#315f79}html[data-theme=professional] .character-sheet,html[data-theme=professional] .project-card,html[data-theme=professional] .mini-item,html[data-theme=professional] .campaign-timeline article,html[data-theme=professional] .prose-panel,html[data-theme=professional] .principles,html[data-theme=professional] .education-grid article,html[data-theme=professional] .workshop-grid article,html[data-theme=professional] .skill-item{background:#fff;border-color:#c4ccd1;box-shadow:0 8px 25px #23374412}html[data-theme=professional] .character-sheet:before{content:"PROFILE";color:#315f79;background:#fff}html[data-theme=professional] .character-sheet dl{background:#fff}html[data-theme=professional] .character-sheet dl div,html[data-theme=professional] .timeline.compact li{border-color:#d9dfe3}html[data-theme=professional] .project-kicker span:first-child{display:none}html[data-theme=professional] .tag-list li,html[data-theme=professional] .skill-item li{color:#3e505b;background:#edf2f5;border-color:#c9d2d8}html[data-theme=professional] .button.primary{color:#fff;box-shadow:none;background:#315f79;border-color:#21495e}html[data-theme=professional] .button.secondary{color:#214f69;background:#fff;border-color:#315f79}html[data-theme=professional] .status-line.future{color:#9a541e;background:#fff5eb;border-color:#d99a66}html[data-theme=professional] .resume-cta,html[data-theme=professional] .nda-note,html[data-theme=professional] .nda-wide{box-shadow:none;background:#fff;border-color:#bcc8cf}html[data-theme=professional] .case-hero{background:#e2e9ed;border-color:#b8c3c9}html[data-theme=professional] .case-hero.has-image:before{filter:grayscale(.35);opacity:.18}html[data-theme=professional] .case-hero.has-image:after{background:linear-gradient(#0000 35%,#edf1f4)}html[data-theme=professional] .flow-diagram{background:#fff;border-color:#bdc8ce}html[data-theme=professional] .flow-node{background:#eef3f5;border-color:#c0cbd1}html[data-theme=professional] .site-footer{color:#d3dce1;background:#26343d}html[data-theme=professional] .skill-tooltip{color:#26323a;background:#fff;border-color:#8ba0ac;box-shadow:0 20px 55px #24354138}html[data-theme=professional] .skill-tooltip:after{background:#fff;border-color:#8ba0ac}html[data-theme=professional] .skill-tooltip dl{border-color:#d2dade}@media (hover:none),(pointer:coarse){html[data-theme=rpg] .skill-item:hover .skill-tooltip,html[data-theme=rpg] .skill-item:focus .skill-tooltip,html[data-theme=rpg] .skill-item:focus-within .skill-tooltip{opacity:0;visibility:hidden}html[data-theme=rpg] .skill-item.is-expanded .skill-tooltip{opacity:1;visibility:visible;display:block;transform:none}}@media (width<=760px){.case-content>section{grid-template-columns:1fr}.theme-switch{font-size:.66rem}.main-nav a img{width:26px;height:26px}.portrait--personal img{object-position:69% 40%}}.theme-switch-bar{width:min(calc(100% - 40px),var(--content));z-index:5;justify-content:flex-end;margin:.7rem auto -2.8rem;display:flex;position:relative}.theme-switch-bar .theme-switch{position:static;bottom:auto;right:auto}.portrait--personal img{object-position:72% 48%;transform-origin:70% 54%;transform:scale(1.72)}@media (width<=760px){.theme-switch-bar{width:min(calc(100% - 28px),var(--content));margin-bottom:-2rem}.portrait--personal img{object-position:72% 48%;transform:scale(1.62)}}.themed-icon{flex:0 0 25px;place-items:center;width:25px;height:25px;display:inline-grid}.themed-icon img{object-fit:contain;grid-area:1/1;width:100%;height:100%;margin:0!important}.theme-icon-professional,.skill-icon-professional{display:none}.theme-icon-rpg,.language-icon{filter:invert(84%)sepia(34%)saturate(680%)hue-rotate(323deg)brightness(96%);opacity:.88}.language-select>.themed-icon{width:24px;height:24px}.site-footer small a{color:inherit;text-underline-offset:2px;opacity:.8}.header-controls{justify-self:end;align-items:center;gap:.65rem;display:flex}.language-menu{display:none;position:relative}.language-menu summary{box-sizing:border-box;cursor:pointer;background:#151819;border:1px solid #4d493d;place-items:center;width:42px;height:42px;list-style:none;display:grid}.language-menu summary::-webkit-details-marker{display:none}.language-menu nav{z-index:70;background:#101315;border:1px solid #665d47;min-width:150px;display:grid;position:absolute;top:calc(100% + .55rem);right:0;box-shadow:0 14px 30px #000b}.language-menu nav a{color:#d8d4ca;white-space:nowrap;border-bottom:1px solid #34342f;padding:.7rem 1rem;text-decoration:none}.language-menu nav a:last-child{border-bottom:0}.language-menu nav a:hover,.language-menu nav a[aria-current=page]{color:#f0d889;background:#2c281e}.social-theme-icon img{filter:invert(84%)sepia(34%)saturate(680%)hue-rotate(337deg)brightness(96%);opacity:.88}.skill-tap-target,html[data-theme=professional] .theme-icon-rpg,html[data-theme=professional] .skill-icon-rpg{display:none}html[data-theme=professional] .theme-icon-professional,html[data-theme=professional] .skill-icon-professional{display:block}html[data-theme=professional] .theme-icon-professional{filter:grayscale()contrast(1.2);opacity:.82}html[data-theme=professional] .language-icon{filter:brightness(0)saturate()invert(32%)sepia(25%)saturate(1090%)hue-rotate(151deg)brightness(91%)contrast(87%);opacity:.9}html[data-theme=rpg] .inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}html[data-theme=rpg] .skill-item{text-align:center;background:radial-gradient(circle at 50% 35%,#242a2b,#121516 72%);border-width:2px;flex-direction:column;justify-content:center;align-items:center;min-height:154px;padding:1rem;display:flex}html[data-theme=rpg] .skill-item:before{display:none}html[data-theme=rpg] .skill-item.common{border-color:#817d72}html[data-theme=rpg] .skill-item.uncommon{border-color:#4f9669}html[data-theme=rpg] .skill-item.rare{border-color:#4d84b8}html[data-theme=rpg] .skill-item.epic{border-color:#925ad8}html[data-theme=rpg] .skill-item.legendary{border-color:#e59936}html[data-theme=rpg] .skill-item.cursed{border-color:#ba4848}html[data-theme=rpg] .skill-item.unknown{border-color:#596575}html[data-theme=rpg] .skill-icon{border-color:#71684f;width:68px;height:68px;position:static}html[data-theme=rpg] .skill-icon img{width:60px;height:60px}html[data-theme=rpg] .skill-title{margin-top:.85rem;display:block}html[data-theme=rpg] .skill-title h2{font:700 1rem Cinzel,serif}html[data-theme=rpg] .skill-title>span,html[data-theme=rpg] .skill-item>.skill-meta,html[data-theme=rpg] .skill-item>ul,html[data-theme=rpg] .skill-item>blockquote{display:none}html[data-theme=rpg] .skill-tooltip{top:calc(100% - 12px);bottom:auto}html[data-theme=rpg] .skill-tooltip:after{top:-7px;bottom:auto;transform:translate(-50%)rotate(225deg)}html[data-theme=professional] .inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}html[data-theme=professional] .skill-item{text-align:left;min-height:215px;padding:1rem 1rem .9rem 5.3rem;display:block}html[data-theme=professional] .skill-item:before{border-color:#8da2ae}html[data-theme=professional] .skill-icon{box-shadow:none;background:#f2f5f7;border-color:#b9c5cc;position:absolute;top:1rem;left:1rem}html[data-theme=professional] .skill-icon img{filter:none;opacity:.9}html[data-theme=professional] .skill-title{margin:0}html[data-theme=professional] .skill-title>span{color:#5a6972}html[data-theme=professional] .skill-meta{color:#315f79}html[data-theme=professional] .skill-item>blockquote,html[data-theme=professional] .skill-tooltip{display:none}html[data-theme=professional] h1,html[data-theme=professional] h2,html[data-theme=professional] h3{color:#1f2d36}html[data-theme=professional] .page-hero>p,html[data-theme=professional] .prose-panel p,html[data-theme=professional] .principles dd,html[data-theme=professional] .project-card p,html[data-theme=professional] .campaign-timeline article p,html[data-theme=professional] .campaign-timeline article li,html[data-theme=professional] .education-grid p,html[data-theme=professional] .skill-item blockquote{color:#42545f}html[data-theme=professional] .site-footer h1,html[data-theme=professional] .site-footer h2,html[data-theme=professional] .site-footer h3{color:inherit}html[data-theme=professional] .inventory-toolbar label{background:#fff;border-color:#aebbc3}html[data-theme=professional] .inventory-toolbar input{color:#24333c}html[data-theme=professional] .inventory-toolbar input::placeholder{color:#65757e;opacity:1}html[data-theme=professional] .inventory-toolbar p{color:#52636d}html[data-theme=professional] .campaign-timeline:before{background:#9fb0ba}html[data-theme=professional] .timeline-marker{clip-path:none;color:#315f79;background:#fff;border-color:#8ea4b1;border-radius:50%;font:700 .68rem Inter,sans-serif;box-shadow:0 4px 12px #263b4818}html[data-theme=professional] .site-footer nav a{color:#eef4f7}html[data-theme=professional] .site-footer .social-theme-icon img{filter:invert();opacity:.9}@media (width<=1050px){.site-header{grid-template-columns:auto 1fr}.main-nav{grid-column:1/-1}.language-select{display:none}.language-menu{display:block}.nav-toggle{box-sizing:border-box;justify-content:center;align-items:center;width:42px;height:42px}html[data-theme=professional] .nav-toggle,html[data-theme=professional] .language-menu summary{background:#fff;border-color:#9eabb3}html[data-theme=professional] .nav-toggle span:not(.sr-only){background:#2b3b45}html[data-theme=professional] .language-menu nav,html[data-theme=professional] .main-nav{background:#fff;border-color:#c4cdd2;box-shadow:0 12px 22px #20313d1c}html[data-theme=professional] .language-menu nav a,html[data-theme=professional] .main-nav a{color:#344750;border-color:#d7dee2}html[data-theme=professional] .language-menu nav a:hover,html[data-theme=professional] .language-menu nav a[aria-current=page],html[data-theme=professional] .main-nav a:hover,html[data-theme=professional] .main-nav a.active{color:#173f56;background:#edf3f6}}@media (width<=760px){html[data-theme=rpg] .inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-theme=professional] .inventory-grid{grid-template-columns:1fr}html[data-theme=rpg] .skill-item.is-expanded{grid-column:1/-1}html[data-theme=rpg] .skill-item .skill-tooltip{width:100%;margin-top:1rem;position:relative;top:auto;bottom:auto;left:auto;transform:none}html[data-theme=rpg] .skill-item.is-expanded .skill-tooltip{opacity:1;visibility:visible;display:block;transform:none}html[data-theme=rpg] .skill-item .skill-tooltip:after{display:none}html[data-theme=rpg] .skill-tap-target{z-index:31;cursor:pointer;background:0 0;border:0;width:100%;display:block;position:absolute;inset:0}}
