:root{--cream:#f4f0e6;--warm-white:#fcfbf8;--ink:#171816;--muted:#676a62;--sage:#6f7d5c;--sage-soft:#dde4d3;--beige:#d8cebb;--line:#17181626;--shadow:0 20px 60px #20231c14;--radius:24px;--shell:min(1200px, calc(100vw - 48px));color:var(--ink);background:var(--cream);font-synthesis:none;text-rendering:optimizelegibility;font-family:Manrope,system-ui,sans-serif;overflow-x:hidden}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);min-width:320px;color:var(--ink);margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit}img{max-width:100%;display:block}::selection{background:var(--sage-soft)}.shell{width:var(--shell);margin-inline:auto}.mono{letter-spacing:.06em;text-transform:uppercase;font-family:DM Mono,monospace}.nav-wrap{z-index:40;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f4f0e6d1;border-bottom:1px solid #17181614;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;min-height:76px;display:flex}.brand{letter-spacing:-.07em;font-size:1.35rem;font-weight:800}.brand span{color:var(--sage)}.nav__actions,.nav__links{align-items:center;gap:22px;display:flex}.nav__links button,.nav__menu{cursor:pointer;color:#4b4e48;background:0 0;border:0;font-size:.88rem;transition:color .2s}.nav__links button:hover{color:var(--sage)}.nav__menu{display:none}.nav__cv{border:1px solid var(--line);color:#40443d;background:#ffffff61;border-radius:999px;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:.76rem;font-weight:700;transition:transform .2s,background .2s,color .2s;display:inline-flex}.nav__cv svg{width:16px;height:16px}.nav__cv:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}.hero{grid-template-rows:auto 1fr auto;min-height:calc(100vh - 76px);padding:54px 0 28px;display:grid}.hero__meta{color:var(--muted);font-size:.72rem}.hero__main{align-self:center;max-width:1040px;padding:70px 0}.hero h1{letter-spacing:-.075em;max-width:1050px;margin:0 0 36px;font-size:clamp(4.2rem,8.4vw,8.1rem);font-weight:600;line-height:.94}.hero h1 em{color:var(--sage);font-style:normal}.hero__main>p{color:#555950;max-width:680px;margin:0 0 34px;font-size:clamp(1.05rem,1.2vw,1.35rem);line-height:1.65}.hero__actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.primary-button{background:var(--ink);color:#fff;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:0 20px;font-size:.9rem;font-weight:700;transition:transform .2s,background .2s;display:inline-flex}.primary-button:hover{background:var(--sage);transform:translateY(-2px)}.hero__footer{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;font-family:DM Mono,monospace;font-size:.68rem;display:grid}.hero__rule{background:var(--line);height:1px}.social-buttons{flex-wrap:wrap;gap:8px;display:flex}.social-button{border:1px solid var(--line);background:#ffffff59;border-radius:999px;justify-content:center;align-items:center;gap:8px;height:48px;padding:0 16px;transition:all .3s ease-in-out;display:inline-flex}.social-buttons--compact .social-button{width:48px;padding:0}.social-buttons--compact .social-button--cv{width:auto;padding:0 16px}.social-button--cv span{white-space:nowrap;font-size:.78rem;font-weight:700}.social-button:hover{background:var(--sage);border-width:1px;border-color:#41744159;transform:translateY(-2px)}.hero__actions .social-button--cv:hover{color:#fff}.social-button.is-disabled{opacity:.35;pointer-events:none}.social-button__icon{filter:brightness(.3);width:20px;height:20px;transition:all .3s}.social-button:hover .social-button__icon{filter:brightness(5);width:21px;height:21px}.section{padding:130px 0;scroll-margin-top:76px}.section-heading{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;gap:40px;margin-bottom:62px;padding-bottom:48px;display:grid}.section-heading__meta{letter-spacing:.06em;color:var(--muted);align-items:baseline;gap:14px;font-family:DM Mono,monospace;font-size:.7rem;display:flex}.section-heading__meta span:first-child{color:var(--sage)}.section-heading__main h2{letter-spacing:-.055em;margin:0;font-size:clamp(2.5rem,5vw,4.8rem);font-weight:600;line-height:1}.section-heading__main p{max-width:690px;color:var(--muted);margin:20px 0 0;font-size:1rem;line-height:1.7}.about-section{width:100%;margin:0;border-radius:0!important;padding-inline:10%!important}.about-layout{color:var(--cream);grid-template-columns:1.05fr 1fr;align-items:start;gap:90px;display:grid}.about-statement p{color:var(--cream);letter-spacing:-.05em;max-width:650px;margin:0;font-size:clamp(2rem,3.7vw,4rem);line-height:1.12}.about-copy{max-width:580px}.about-copy>p{color:var(--muted);margin:0 0 20px;font-size:1rem;line-height:1.8}.about-facts{border-top:1px solid var(--line);color:var(--muted);flex-direction:column;gap:10px;margin-top:32px;padding-top:28px;font-size:.7rem;display:flex}.about-section{background:var(--ink)!important}.about-section .section-heading__main{color:var(--cream)}.section--work{width:100%;background:var(--case-surface)!important;border-radius:0!important;padding-inline:10%!important}.category-group+.category-group{margin-top:96px}.category-divider{letter-spacing:.09em;color:var(--muted);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-bottom:28px;font-family:DM Mono,monospace;font-size:.68rem;display:grid}.category-divider span:first-child{color:var(--ink);font-weight:500}.category-divider i{background:var(--line);height:1px}.project-grid{grid-template-columns:1fr 1fr;gap:64px 24px;display:grid}.project-grid--compact{grid-template-columns:repeat(3,1fr);gap:52px 20px}.project-card{min-width:0}.project-card__visual{border-radius:var(--radius);background:var(--warm-white);transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s;display:block;overflow:hidden;box-shadow:0 0 0 1px #17181614}.project-card__visual:hover{box-shadow:var(--shadow), 0 0 0 1px #6f7d5c40;transform:translateY(-5px)}.project-card__info{padding:22px 4px 0}.project-card__eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);justify-content:space-between;gap:16px;font-family:DM Mono,monospace;font-size:.64rem;display:flex}.project-card__eyebrow span:first-child{color:var(--sage)}.project-card h3{letter-spacing:-.045em;margin:14px 0 10px;font-size:2rem;font-weight:600}.project-card h3 a{transition:color .2s}.project-card h3 a:hover{color:var(--sage)}.project-card__info>p{color:var(--muted);max-width:580px;margin:0;line-height:1.65}.project-card__foot{justify-content:space-between;align-items:center;gap:16px;margin-top:22px;display:flex}.project-card__tech{flex-wrap:wrap;gap:7px;display:flex}.project-card__tech span{border:1px solid var(--line);color:#555950;background:#ffffff4d;border-radius:99px;padding:6px 9px;font-size:.68rem}.text-link{white-space:nowrap;align-items:center;gap:8px;font-size:.8rem;font-weight:700;display:inline-flex}.text-link span{transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.project-card--compact h3{font-size:1.55rem}.project-card--compact .project-card__info>p{font-size:.9rem}.project-card--compact .project-card__foot{align-items:flex-end}.project-visual{aspect-ratio:16/10;background:#e8e6dd;justify-content:center;align-items:center;padding:clamp(18px,4vw,42px);display:flex;position:relative;overflow:hidden}.project-visual.is-large{aspect-ratio:auto;min-height:520px}.mock-window{background:#faf9f4;border:1px solid #1718161f;border-radius:14px;width:92%;min-height:74%;overflow:hidden;box-shadow:0 24px 65px #282b231f}.mock-window__top{color:#888b83;border-bottom:1px solid #17181614;align-items:center;gap:6px;height:34px;padding:0 12px;font:500 8px DM Mono,monospace;display:flex}.mock-window__top i{background:#c8c8c0;border-radius:50%;width:7px;height:7px}.mock-window__top span{margin-left:auto;margin-right:auto}.visual-clinic{background:linear-gradient(145deg,#dfe6d8,#f4f1e8)}.clinic-layout{grid-template-columns:24% 1fr;min-height:220px;display:grid}.clinic-layout aside{background:#68755d;flex-direction:column;gap:12px;padding:24px 16px;display:flex}.clinic-layout aside span{background:#ffffff75;border-radius:6px;width:70%;height:7px}.clinic-layout main{padding:22px}.mock-search{color:#a0a29c;border:1px solid #dddcd4;border-radius:8px;justify-content:space-between;align-items:center;height:34px;padding:0 10px;font-size:9px;display:flex}.mock-search b{border:1px solid #d5d5cf;border-radius:4px;padding:3px 5px;font-weight:500}.mock-patient{align-items:center;gap:12px;margin-top:22px;display:flex}.mock-patient i{color:#5f6d54;background:#dde4d3;border-radius:50%;place-items:center;width:36px;height:36px;font:600 9px DM Mono;display:grid}.mock-patient div{flex-direction:column;gap:4px;display:flex}.mock-patient strong{font-size:11px}.mock-patient span{color:#969890;font-size:8px}.mock-lines{flex-direction:column;gap:9px;margin-top:20px;display:flex}.mock-lines span{background:#e8e7e0;border-radius:5px;height:6px;display:block}.mock-lines span:nth-child(2){width:85%}.mock-lines span:nth-child(3){width:68%}.mock-lines span:nth-child(4){width:76%}.visual-product{background:linear-gradient(135deg,#d9e2d1,#ece9de)}.ledger-grid{grid-template-columns:28% 1fr;min-height:240px;display:grid}.ledger-side{color:#cdd4c8;background:#1f211e;flex-direction:column;gap:14px;padding:22px 16px;font-size:8px;display:flex}.ledger-main{padding:22px}.metric-cards{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:26px;display:grid}.metric-cards i{background:#e8ece3;border-radius:8px;height:48px}.catalog-row{color:#858880;border-bottom:1px solid #e4e4de;grid-template-columns:1fr .5fr .5fr;gap:8px;padding:9px 0;font-size:8px;display:grid}.catalog-row b{color:#40433e}.visual-internal{background:#1a1c19;flex-direction:column;gap:20px}.visual-internal .mock-window{width:84%;min-height:52%}.flow-map{color:#e6eadf;justify-content:center;align-items:center;gap:8px;width:100%;font:500 8px DM Mono,monospace;display:flex}.flow-map span{border:1px solid #dde4d359;border-radius:7px;padding:8px 10px}.flow-map b{color:#93a284}.control-grid{grid-template-columns:1fr 1fr;gap:8px;padding:18px;display:grid}.control-grid>div{background:#eff1eb;border-radius:8px;flex-direction:column;gap:8px;min-height:62px;padding:11px;display:flex}.control-grid small{color:#8b8f87;font:500 7px DM Mono}.control-grid strong{font-size:12px}.control-wide{grid-column:1/-1}.control-wide button{color:#fff;background:#667653;border:0;border-radius:5px;align-self:flex-start;padding:7px 10px;font-size:8px}.visual-editorial{background:#e9e0d4;flex-direction:column;padding:20px}.browser-bar{color:#817766;background:#ffffff8c;border-radius:10px 10px 0 0;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;height:32px;padding:0 12px;font:500 8px DM Mono;display:grid}.browser-bar span:first-child{background:#c4b6a2;border-radius:50%;width:9px;height:9px}.browser-bar span:last-child{justify-self:end}.fashion-layout{background:#f5f1e9;flex:1;grid-template-columns:.7fr 1.2fr .55fr;align-items:stretch;width:100%;display:grid;overflow:hidden}.fashion-word{letter-spacing:-.08em;align-self:center;padding:20px;font-size:clamp(2rem,4vw,4.8rem);font-weight:500;line-height:.8}.fashion-photo{background:linear-gradient(160deg,#a6957f,#d6cabc);min-height:180px;margin:18px 0;position:relative}.fashion-photo:after{content:"";background:#2c282329;border-radius:55% 55% 8% 8%;width:42%;height:72%;position:absolute;top:13%;left:29%}.fashion-photo span{z-index:2;color:#fff;letter-spacing:.1em;font:500 8px DM Mono;position:absolute;bottom:10px;left:10px}.fashion-copy{color:#786f62;align-self:end;padding:20px 14px;font-size:9px;line-height:1.8}.fashion-copy b{color:#2e2c29;font-family:DM Mono}.visual-street{background:#dfe2db;flex-direction:column;padding:20px}.street-layout{color:#eff2ea;background:#20231f;flex:1;width:100%;padding:22px;position:relative;overflow:hidden}.street-title{letter-spacing:-.09em;font-size:clamp(4rem,8vw,7rem);font-weight:800;line-height:.8}.street-tag{letter-spacing:.18em;color:#a8b59d;margin-top:12px;font:500 8px DM Mono}.street-grid{grid-template-columns:repeat(3,36px);gap:6px;display:grid;position:absolute;bottom:20px;right:20px}.street-grid i{background:#596253;border-radius:3px;height:50px}.street-grid i:nth-child(2){background:#727b6e;height:70px;margin-top:-20px}.street-grid i:nth-child(3){background:#3f463c}.visual-terminal{background:#1d211d;align-items:stretch}.terminal{color:#bdc9b4;background:#111310;border:1px solid #ffffff14;border-radius:12px;width:100%;padding:22px;font:400 10px/1.8 DM Mono;box-shadow:inset 0 0 50px #6f7d5c12}.terminal span{color:#6f8564}.terminal b{color:#f0f2ec;margin:15px 0 8px;display:block}.terminal p{color:#cfd5ca;margin:2px 0}.terminal i{color:#75816e;margin-top:16px;display:block}.visual-pokedex{background:linear-gradient(#dce6d7,#f2eee5);grid-template-columns:1fr auto 1fr;align-content:center;gap:14px;display:grid}.battle-card{background:#f9f6ed;border:2px solid #31382f;border-radius:18px;justify-content:center;align-items:center;min-height:140px;font:700 30px DM Mono;display:flex;position:relative;box-shadow:5px 5px #31382f}.battle-card small{font-size:8px;position:absolute;bottom:12px;left:12px}.battle-card.right{transform:translateY(25px)}.vs{color:#63715c;font:700 12px DM Mono}.battle-menu{gap:6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.battle-menu span{color:#fff;background:#31382f;border-radius:5px;padding:6px 10px;font:500 7px DM Mono}.visual-library{background:#ede8dc;flex-direction:column;justify-content:flex-start;align-items:stretch}.library-head{letter-spacing:-.08em;border-bottom:1px solid #a9a08f;padding-bottom:12px;font-size:clamp(2.2rem,5vw,5rem);font-weight:600}.library-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px;display:grid}.library-grid span{background:#ffffff47;border:1px solid #c9c2b5;border-radius:8px;align-items:flex-end;min-height:54px;padding:10px;font:500 7px DM Mono;display:flex}.visual-fantasy{background:linear-gradient(150deg,#cbd9c3,#eee7d9);overflow:hidden}.fantasy-map{background:#9db691;border-radius:42% 58% 48% 52%;width:75%;height:75%;position:relative;box-shadow:inset 0 0 0 10px #ffffff40,0 15px 50px #5064461f}.fantasy-map i{background:#f1eedb;border-radius:50%;width:16px;height:16px;position:absolute;box-shadow:0 0 0 4px #ffffff38}.fantasy-map i:first-child{top:23%;left:20%}.fantasy-map i:nth-child(2){top:20%;left:68%}.fantasy-map i:nth-child(3){top:62%;left:56%}.fantasy-map i:nth-child(4){top:68%;left:25%}.fantasy-map i:nth-child(5){top:42%;left:44%}.fantasy-map b{color:#65775d;position:absolute;top:44%;left:47%}.fantasy-panel{background:#fffdf5;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex;position:absolute;bottom:18px;left:18px;box-shadow:0 10px 25px #323c2d1f}.fantasy-panel strong{font-size:10px}.fantasy-panel span{color:#788174;font:500 6px DM Mono}.visual-arcade{color:#d9e2d2;background:#171917;flex-direction:column;justify-content:space-between;font-family:DM Mono}.arcade-score{color:#85987d;justify-content:space-between;width:100%;font-size:8px;display:flex}.invaders{letter-spacing:10px;text-align:center;color:#ced8c8;text-shadow:0 0 20px #b4d2aa33;font-size:28px;line-height:1.5}.ship{color:#758d6c;font-size:28px}.section--technology{color:var(--cream);width:100%;padding-bottom:150px;background:var(--ink)!important;border-block:10px solid var(--sage)!important;border-radius:0!important;margin-bottom:0!important;padding-inline:10%!important}.technology-categories{border-top:1px solid var(--line)}.technology-category{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;align-items:start;padding:26px 0;display:grid}.technology-category__title{text-transform:uppercase;letter-spacing:.08em;color:var(--beige);padding-top:14px;font:500 .68rem DM Mono}.technology-list{grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;display:grid}.technology-item{min-height:88px;color:var(--beige);border:1px solid #0000;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:9px;transition:all .2s;display:flex}.technology-item svg{filter:grayscale();opacity:.72;width:27px;height:27px;transition:all .2s}.technology-item span{font-size:.72rem}.technology-item:hover{background:var(--beige);border-color:var(--line);color:var(--ink);transform:translateY(-2px)}.technology-item:hover svg{filter:grayscale(0);opacity:1;color:var(--sage)}.contact-section{color:#f4f2eb;background:#171916;padding:110px 0 28px}.contact-shell{grid-template-columns:.8fr 1.2fr;align-items:start;gap:100px;display:grid}.section-index.light{color:#98a193;letter-spacing:.08em;margin-bottom:34px;font:500 .7rem DM Mono}.contact-intro h2{letter-spacing:-.07em;margin:0 0 26px;font-size:clamp(3rem,6vw,6.8rem);font-weight:600;line-height:.9}.contact-intro>p{color:#aeb4aa;max-width:520px;margin-bottom:34px;line-height:1.7}.contact-intro .social-button{color:#fff;background:#ffffff0a;border-color:#ffffff38}.contact-intro .social-button__icon{filter:brightness(0)invert()}.contact-intro .social-button:hover{color:#fff;background:#242821;border-color:#67765d}.contact-form{grid-template-columns:1fr 1fr;gap:20px;display:grid}.contact-form label{color:#aeb4aa;flex-direction:column;gap:9px;font-size:.72rem;display:flex}.contact-form label:nth-of-type(3),.contact-form label:nth-of-type(4),.contact-form button,.contact-form small{grid-column:1/-1}.contact-form input,.contact-form textarea{color:#fff;resize:vertical;background:0 0;border:0;border-bottom:1px solid #fff3;outline:none;width:100%;padding:10px 0 14px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#60675e}.contact-form input:focus,.contact-form textarea:focus{border-color:#95a58a}.contact-form button{color:#1d211b;cursor:pointer;background:#e5eada;border:0;border-radius:999px;justify-content:center;align-items:center;gap:9px;min-height:54px;margin-top:8px;font-weight:700;transition:all .2s;display:flex}.contact-form button:hover{background:#b9c5af;transform:translateY(-2px)}.contact-form button:disabled{cursor:wait;opacity:.7;transform:none}.contact-form__honey{display:none!important}.contact-form__status{grid-column:1/-1;margin:0;font-size:.78rem;line-height:1.5}.contact-form__status.is-success{color:#c9d9bd}.contact-form__status.is-error{color:#efb4aa}.contact-form small{color:#777f74;font-size:.65rem;line-height:1.5}.footer-line{color:#747b72;text-transform:uppercase;letter-spacing:.08em;border-top:1px solid #ffffff1f;justify-content:space-between;margin-top:90px;padding-top:24px;font:400 .65rem DM Mono;display:flex}.case-page{--case-accent:#6f7d5c;--case-surface:#e7eadf;background:#f8f5ed;min-height:100vh}.case-page .nav-wrap{background:#f8f5eddb}.case-page .nav__links button,.case-page .nav__menu{color:var(--case-text,var(--ink))}.case-page .nav__cv{color:var(--case-title,var(--case-text,var(--ink)));border-color:var(--case-border,var(--line));background:var(--case-tag-background,#ffffff61)}.case-page .nav__cv:hover{color:var(--case-button-text,#fff);background:var(--case-button-background,var(--case-accent))}.case-shell{padding-bottom:70px}.case-topline{color:#73776e;justify-content:space-between;align-items:center;padding:40px 0 34px;font-size:.65rem;display:flex}.case-topline a{align-items:center;gap:8px;transition:all .2s;display:inline-flex}.case-topline a:hover{color:var(--case-accent);transform:translate(-2px)}.case-hero{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:.78fr 1.22fr;min-height:650px;display:grid}.case-hero__copy{flex-direction:column;justify-content:center;padding:70px 56px 70px 0;display:flex}.case-kicker{color:var(--case-accent);margin-bottom:24px;font-size:.65rem}.case-hero h1{letter-spacing:-.08em;margin:0 0 30px;font-size:clamp(4rem,7vw,8rem);font-weight:600;line-height:.88}.case-hero__copy>p{color:#5f645a;max-width:520px;margin:0;font-size:1.08rem;line-height:1.75}.case-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:34px;display:flex}.case-actions a,.repo-private{border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-size:.75rem;display:inline-flex}.case-actions a{background:var(--ink);color:#fff;border-color:var(--ink)}.repo-private{color:#777b73}.case-hero__visual{align-items:stretch;padding:24px 0 24px 24px;display:flex}.case-hero__visual .project-visual{border-radius:28px;width:100%}.case-intro-grid{border-bottom:1px solid var(--line);grid-template-columns:180px 1fr 260px;align-items:start;gap:50px;padding:90px 0;display:grid}.case-intro-title,.case-stack>span{color:var(--case-accent);font-size:.66rem}.case-intro-copy p{letter-spacing:-.04em;max-width:750px;margin:0;font-size:clamp(1.8rem,3vw,3.1rem);line-height:1.22}.case-stack>div{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.case-stack b{border:1px solid var(--line);background:#ffffff73;border-radius:99px;padding:7px 9px;font-size:.68rem;font-weight:500}.case-metrics{border-bottom:1px solid var(--line);grid-template-columns:repeat(2,1fr);display:grid}.case-metric{flex-direction:column;gap:8px;padding:60px 0;display:flex}.case-metric+.case-metric{border-left:1px solid var(--line);padding-left:60px}.case-metric strong{letter-spacing:-.08em;color:var(--case-accent);font-size:clamp(4rem,7vw,7rem);font-weight:600;line-height:.85}.case-metric span{color:#70756c;font-size:.8rem}.case-story{background:var(--line);border:1px solid var(--line);border-radius:22px;grid-template-columns:repeat(3,1fr);gap:1px;margin:90px 0;display:grid;overflow:hidden}.case-story article{background:#fbfaf6;min-height:320px;padding:38px}.case-story .mono{color:var(--case-accent);font-size:.62rem}.case-story h2{letter-spacing:-.04em;margin:42px 0 16px;font-size:1.65rem}.case-story p{color:#656a61;margin:0;font-size:.9rem;line-height:1.75}.case-feature-visual{background:var(--case-surface);border-radius:30px;margin-bottom:100px;padding:44px;position:relative;overflow:hidden}.case-feature-visual .project-visual{border-radius:22px;box-shadow:0 30px 80px #282d231f}.case-image-note{color:#73786f;background:#ffffffbf;border-radius:5px;padding:6px 8px;font-size:.55rem;position:absolute;bottom:18px;right:20px}.case-notes{grid-template-columns:repeat(3,1fr);gap:40px;margin-bottom:110px;display:grid}.case-notes article{border-top:1px solid var(--line);padding-top:20px}.case-notes .mono{color:var(--case-accent);font-size:.62rem}.case-notes h3{letter-spacing:-.035em;margin:26px 0 12px;font-size:1.4rem}.case-notes p{color:#686d64;margin:0;font-size:.88rem;line-height:1.75}.case-gallery{border-top:1px solid var(--line);margin-bottom:110px;padding-top:32px}.case-gallery__head{grid-template-columns:180px 1fr;gap:50px;margin-bottom:36px;display:grid}.case-gallery__head .mono{color:var(--case-accent);font-size:.65rem}.case-gallery__head p{color:#6d7169;margin:0}.case-gallery__grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.case-placeholder{color:#8a8e86;background:#ffffff52;border:1px dashed #17181638;border-radius:24px;justify-content:space-between;align-items:flex-end;min-height:340px;padding:20px;font:500 .65rem DM Mono;display:flex}.case-placeholder span{text-transform:none;letter-spacing:0;font-family:Manrope;font-size:.75rem}.case-placeholder--wide{grid-column:1/-1;min-height:460px}.case-pagination{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.case-pagination a{flex-direction:column;gap:8px;padding:34px 0;transition:all .2s;display:flex}.case-pagination a:last-child{text-align:right;border-left:1px solid var(--line);padding-left:34px}.case-pagination a:first-child{padding-right:34px}.case-pagination span{color:#777b73;text-transform:uppercase;font:500 .62rem DM Mono}.case-pagination strong{font-size:1.25rem}.case-pagination a:hover strong{color:var(--case-accent)}.case-page--internal .case-feature-visual{background:#1c1f1a}.case-page--editorial .case-hero h1{letter-spacing:-.055em;font-family:Georgia,Times New Roman,serif;font-weight:400}.case-page--editorial .case-intro-copy p{font-family:Georgia,Times New Roman,serif;font-weight:400}.case-page--street .case-hero h1{text-transform:uppercase;letter-spacing:-.09em;font-weight:800}.case-page--terminal .case-hero h1,.case-page--terminal .case-intro-copy p{letter-spacing:-.05em;font-family:DM Mono,monospace}.case-page--library .case-hero h1{font-family:Georgia,Times New Roman,serif;font-weight:400}.case-page--arcade .case-hero h1{letter-spacing:-.09em;font-family:DM Mono,monospace}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;gap:18px;min-height:100vh;display:flex}.not-found h1{letter-spacing:-.08em;margin:0;font-size:clamp(3rem,8vw,8rem);line-height:.9}.not-found .mono{color:var(--sage)}@media (width<=1020px){.section-heading{grid-template-columns:150px 1fr}.about-layout{grid-template-columns:1fr;gap:50px}.about-statement p{max-width:800px}.project-grid--compact{grid-template-columns:1fr 1fr}.technology-category{grid-template-columns:150px 1fr}.technology-list{grid-template-columns:repeat(4,1fr)}.contact-shell{grid-template-columns:1fr 1.1fr;gap:60px}.case-hero{grid-template-columns:1fr}.case-hero__copy{padding-right:0}.case-hero__visual{padding:0 0 40px}.case-intro-grid{grid-template-columns:130px 1fr}.case-stack{grid-column:2}.case-notes{gap:20px}}@media (width<=760px){:root{--shell:min(100% - 30px, 1200px);--radius:18px}.nav{gap:12px;min-height:66px}.nav-wrap{top:0}.nav__actions{gap:8px}.nav__links{display:none}.nav__menu{display:block}.nav__cv{min-height:34px;padding:0 10px;font-size:.68rem}.hero{min-height:calc(100vh - 66px);padding-top:36px}.hero__main{padding:60px 0}.hero h1{font-size:clamp(3.5rem,16vw,6rem)}.hero__footer{grid-template-columns:auto 1fr}.hero__footer span:last-child{display:none}.section{padding:92px 0}.section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:42px;padding-bottom:34px}.section-heading__main h2{font-size:3rem}.section-heading__main p{font-size:.92rem}.about-statement p{font-size:2.3rem}.about-copy>p{font-size:.96rem}.project-grid,.project-grid--compact{grid-template-columns:1fr;gap:52px}.category-group+.category-group{margin-top:72px}.project-card h3,.project-card--compact h3{font-size:1.65rem}.project-card__foot{align-items:flex-end}.project-card__info>p{font-size:.92rem}.project-visual{aspect-ratio:16/11;padding:18px}.project-visual.is-large{min-height:360px}.flow-map{flex-wrap:wrap;gap:4px}.flow-map span{padding:6px;font-size:6px}.technology-category{grid-template-columns:1fr;gap:14px}.technology-category__title{padding-top:0}.technology-list{grid-template-columns:repeat(3,1fr)}.technology-item{min-height:80px}.contact-shell{grid-template-columns:1fr;gap:54px}.contact-section{padding-top:84px}.contact-form{grid-template-columns:1fr}.contact-form label{grid-column:1/-1}.footer-line{margin-top:70px}.case-topline{padding:28px 0 24px}.case-topline span{display:none}.case-hero{min-height:0}.case-hero__copy{padding:54px 0 38px}.case-hero h1{font-size:clamp(3.8rem,18vw,6rem)}.case-hero__visual{padding-bottom:24px}.case-intro-grid{grid-template-columns:1fr;gap:26px;padding:60px 0}.case-stack{grid-column:auto}.case-intro-copy p{font-size:2rem}.case-metrics{grid-template-columns:1fr}.case-metric{padding:44px 0}.case-metric+.case-metric{border-left:0;border-top:1px solid var(--line);padding-left:0}.case-story{grid-template-columns:1fr;margin:64px 0}.case-story article{min-height:0}.case-feature-visual{border-radius:20px;margin-bottom:72px;padding:14px}.case-feature-visual .project-visual{border-radius:14px}.case-notes{grid-template-columns:1fr;margin-bottom:80px}.case-gallery__head{grid-template-columns:1fr;gap:12px}.case-gallery__grid{grid-template-columns:1fr}.case-placeholder,.case-placeholder--wide{grid-column:auto;min-height:260px}.case-pagination{grid-template-columns:1fr}.case-pagination a:last-child{border-left:0;border-top:1px solid var(--line);text-align:left;padding-left:0}.case-pagination a:first-child{padding-right:0}.case-page--terminal .case-hero h1{font-size:clamp(3.2rem,16vw,6rem)}}@media (width<=430px){.hero h1{font-size:3.4rem}.hero__actions{align-items:stretch}.hero__actions .primary-button{width:100%}.hero__actions .social-buttons{justify-content:space-between;width:100%}.hero__actions .social-button{flex:1}.project-card__foot{flex-direction:column;align-items:flex-start}.technology-list{grid-template-columns:repeat(2,1fr)}.fashion-layout{grid-template-columns:.8fr 1.2fr}.fashion-copy,.street-grid{display:none}.battle-card{min-height:110px;font-size:22px}.visual-pokedex{gap:6px}.contact-form{gap:18px}}:root{--cream:#eee6d9;--warm-white:#fbfaf6;--ink:#171816;--muted:#64685f;--sage:#58684c;--sage-soft:#d1dbc8;--beige:#cdbfa9;--line:#17181624}body{background:radial-gradient(circle at 82% 8%, #6f7d5c21, transparent 24rem), radial-gradient(circle at 10% 30%, #cdbfa938, transparent 28rem), var(--cream)}.nav-wrap{background:#eee6d9e0}.hero:before{content:"";z-index:-1;background:var(--sage-soft);opacity:.58;filter:blur(1px);border-radius:50%;width:170px;height:170px;position:absolute;top:120px;right:4vw}.hero{position:relative}.hero__meta{color:#5b6254}.hero h1 em{color:var(--sage)}#about.section,.section--work,.section--technology{border:1px solid #17181614;border-radius:34px;padding-left:46px;padding-right:46px;box-shadow:0 22px 70px #322f270d}#about.section{background:#fbfaf6c7;margin-top:34px}.section--work{background:#dbe2d3;margin-top:40px}#projects.section{position:relative}#projects.section:before{content:"";z-index:-1;background:#ffffff2e;border-top:1px solid #1718160f;border-bottom:1px solid #1718160f;width:100vw;height:calc(100% - 84px);position:absolute;top:42px;left:50%;transform:translate(-50%)}.section--technology{background:#cfd8c6;margin-bottom:110px}.section--work .section-heading,.section--technology .section-heading{border-bottom-color:#1718162e}.section--work .category-divider i,.section--technology .technology-categories,.section--technology .technology-category{border-color:#17181629}.project-card__visual{background:#f7f3eb;box-shadow:0 0 0 1px #1718161a,0 14px 34px #36332a0f}.project-card__info{padding-top:24px}.project-card__tech span{background:#fbfaf69e}.technology-item{background:#fbfaf638;border-color:#1718160f}.technology-item:hover{background:#fbfaf6}.contact-section{background:radial-gradient(circle at 12% 18%,#697a5b40,#0000 24rem),#171916}.case-page{background:#f1eadf}.case-page--internal{background:#e4e8df}.case-page--editorial{background:#eee4d7}.case-page--street{background:#e2e4de}.case-page--terminal{background:#dfe5db}.case-page--pokedex{background:#eee6d9}.case-page--library{background:#e8dfd2}.case-page--fantasy{background:#e2eadc}.case-page--arcade{background:#dfe4dc}@media (width<=760px){#about.section,.section--work,.section--technology{border-radius:24px;padding-left:20px;padding-right:20px}.section--technology{margin-bottom:70px}}@font-face{font-family:Pixelify Sans;src:url(/images/projects/space-invaders/assets/PixelifySans-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Pixelify Sans;src:url(/images/projects/space-invaders/assets/PixelifySans-Bold.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}.case-page--arcade{isolation:isolate;font-family:Pixelify Sans,monospace;position:relative;overflow:hidden;background:#050206!important}.case-page--arcade:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(#050206b3,#050206eb),url(/images/projects/space-invaders/assets/stars.png) 50%/cover;position:fixed;inset:0}.case-page--arcade>:not(.space-invaders-experience){z-index:2;position:relative}.case-page--arcade .nav-wrap{z-index:40}.case-page--arcade h1,.case-page--arcade h2,.case-page--arcade h3,.case-page--arcade .mono,.case-page--arcade .case-intro-copy p,.case-page--arcade .case-metric strong,.case-page--arcade .case-pagination,.case-page--arcade .nav__links button,.case-page--arcade .nav__menu{font-family:Pixelify Sans,monospace}.case-page--arcade .case-hero h1{color:#fff8ff;letter-spacing:-.055em;text-transform:uppercase;text-shadow:4px 4px #731151,0 0 28px #b71b8152;max-width:560px;font-weight:700}.case-page--arcade .case-kicker,.case-page--arcade .case-topline,.case-page--arcade .case-intro-title,.case-page--arcade .case-stack>span,.case-page--arcade .case-story .mono,.case-page--arcade .case-notes .mono,.case-page--arcade .case-gallery__head .mono{letter-spacing:.13em}.case-page--arcade .case-hero__visual .project-visual,.case-page--arcade .case-feature-visual,.case-page--arcade .case-gallery__image{box-shadow:0 0 0 1px #9724e81a,0 0 42px #81146729;border:1px solid #df2ba057!important}.case-page--arcade .case-story{z-index:4;border-radius:8px;position:relative}.case-page--arcade .case-story article{min-height:360px}.case-page--arcade .case-stack b,.case-page--arcade .repo-private,.case-page--arcade .case-actions a{border-radius:4px}.case-page--arcade .case-image-note,.case-page--arcade .case-gallery figcaption{letter-spacing:.04em;font-family:Pixelify Sans,monospace}.case-page--arcade .case-hero__visual,.case-page--arcade .case-feature-visual,.case-page--arcade .case-gallery__grid{z-index:4;position:relative}.space-invaders-experience{display:contents}.space-invaders-experience__fleet{z-index:3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.space-invader{top:var(--invader-top);width:var(--invader-size);opacity:.3;pointer-events:auto;cursor:crosshair;filter:drop-shadow(0 0 10px #aa00ff73);animation:space-invader-flight var(--invader-duration) linear var(--invader-delay) infinite;background:0 0;border:0;padding:0;transition:opacity .18s,filter .18s;position:absolute;left:0}.space-invader:hover,.space-invader:focus-visible{opacity:1;filter:drop-shadow(0 0 7px #c12cff)drop-shadow(0 0 20px #c12cffbf);outline:none}.space-invader img{width:100%;image-rendering:pixelated}.space-invader.is-exploding{opacity:1;pointer-events:none;filter:drop-shadow(0 0 18px #ff4d8f);animation-play-state:paused}.space-invaders-experience__ship{z-index:3;opacity:.48;width:44px;image-rendering:pixelated;filter:drop-shadow(0 0 12px #ff891c80);animation:9s ease-in-out infinite alternate space-ship-patrol;position:fixed;bottom:18px;left:50%}.space-invaders-hud{z-index:45;color:#fff8ff;letter-spacing:.06em;pointer-events:auto;align-items:center;gap:8px;font:700 .72rem Pixelify Sans,monospace;display:flex;position:fixed;bottom:20px;right:22px}.space-invaders-hud__score,.space-invaders-hud__music{color:#fff8ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08030ad6;border:1px solid #ee2da96b;border-radius:4px;align-items:center;gap:8px;min-height:42px;padding:0 13px;display:inline-flex;box-shadow:inset 0 0 20px #7b0e5e24,0 0 20px #76175d1f}.space-invaders-hud__score{color:#ff8dcc}.space-invaders-hud__music{cursor:pointer;font:inherit;letter-spacing:inherit;transition:color .18s,border-color .18s,transform .18s}.space-invaders-hud__music:hover,.space-invaders-hud__music:focus-visible{color:#ff8dcc;border-color:#df2ba0;outline:none;transform:translateY(-2px)}@keyframes space-invader-flight{0%{transform:translate(-12vw)}46%{transform:translate(112vw,5vh)}50%{transform:translate(112vw,5vh)scaleX(-1)}96%{transform:translate(-12vw,10vh)scaleX(-1)}to{transform:translate(-12vw)}}@keyframes space-ship-patrol{0%{transform:translate(-38vw)rotate(-2deg)}to{transform:translate(30vw)rotate(2deg)}}@media (width<=760px){.space-invader{width:calc(var(--invader-size) * .78);opacity:.22}.space-invaders-experience__ship{display:none}.space-invaders-hud{justify-content:flex-end;font-size:.62rem;bottom:12px;left:12px;right:12px}.space-invaders-hud__score{display:none}.case-page--arcade .case-story article{min-height:0}}@media (prefers-reduced-motion:reduce){.space-invader,.space-invaders-experience__ship{animation:none}.space-invader{display:none}}@font-face{font-family:Pixie Power;src:url(/images/projects/pixie-hollow/assets/PixiePowerClear.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Pixie Power;src:url(/images/projects/pixie-hollow/assets/PixiePowerClear-Bold.ttf)format("truetype");font-style:normal;font-weight:900;font-display:swap}@font-face{font-family:Pixie Power Retro;src:url(/images/projects/pixie-hollow/assets/PixiePowerRetro.ttf)format("truetype");font-style:normal;font-weight:900;font-display:swap}.case-page--fantasy{isolation:isolate;font-family:Pixie Power,Trebuchet MS,sans-serif;position:relative;overflow:hidden;background:#08170f!important}.case-page--fantasy:before{content:"";z-index:0;pointer-events:none;opacity:.82;background:linear-gradient(#04110acc,#040f09f5),url(/images/projects/pixie-hollow/world.png) 50%/cover;position:fixed;inset:0}.case-page--fantasy>:not(.pixie-hollow-experience){z-index:2;position:relative}.case-page--fantasy .nav-wrap{z-index:40;box-shadow:0 10px 34px #00000029}.case-page--fantasy .case-shell{z-index:4}.case-page--fantasy h1,.case-page--fantasy h2,.case-page--fantasy h3,.case-page--fantasy .case-intro-copy p,.case-page--fantasy .case-metric strong,.case-page--fantasy .case-pagination strong{font-family:Pixie Power,Trebuchet MS,sans-serif}.case-page--fantasy .mono,.case-page--fantasy .case-stack b,.case-page--fantasy .case-image-note,.case-page--fantasy .case-gallery figcaption{font-family:Pixie Power Retro,Pixie Power,sans-serif}.case-page--fantasy .case-hero h1{letter-spacing:-.045em;text-shadow:0 3px #68431c,0 0 34px #f4ca672e;max-width:590px;font-weight:900}.case-page--fantasy .case-hero,.case-page--fantasy .case-intro-grid,.case-page--fantasy .case-metrics,.case-page--fantasy .case-gallery,.case-page--fantasy .case-pagination{border-color:#f4ca6733}.case-page--fantasy .case-hero__visual .project-visual,.case-page--fantasy .case-feature-visual,.case-page--fantasy .case-gallery__image{box-shadow:0 0 0 1px #fff5c20a,0 28px 76px #0000004d,0 0 42px #cca74d14;border:1px solid #f4ca6742!important}.case-page--fantasy .case-hero__visual .project-visual{border-radius:16px}.case-page--fantasy .case-feature-visual{padding:18px;background:linear-gradient(135deg,#f2c45e1a,#0000 44%),#0d2417!important;border-radius:16px!important}.case-page--fantasy .case-story{border-radius:14px;box-shadow:0 24px 70px #0000003d}.case-page--fantasy .case-story article{min-height:370px}.case-page--fantasy .case-story h2{font-size:1.95rem}.case-page--fantasy .case-notes article{border:1px solid #f2c45e29;border-radius:12px;padding:24px 22px 28px;box-shadow:inset 0 1px #ffffff06;background:#0c2316b8!important}.case-page--fantasy .case-stack b,.case-page--fantasy .repo-private,.case-page--fantasy .case-actions a{border-radius:6px}.case-page--fantasy .case-image-note,.case-page--fantasy .case-gallery figcaption{letter-spacing:.025em}.pixie-hollow-experience{display:contents}.pixie-hollow-experience__world,.pixie-hollow-experience__dust{z-index:3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pixie-hollow-experience__dust{z-index:5}.pixie-hollow-experience__fairy{opacity:.52;pointer-events:none;filter:drop-shadow(0 0 9px #ffe8759e)drop-shadow(0 0 24px #8bffa838);width:82px;animation:24s ease-in-out infinite pixie-flight;position:absolute;top:29%;left:-130px}.pixie-hollow-experience__trail{opacity:.52;background:#ffe982;border-radius:50%;width:4px;height:4px;animation:6s ease-in-out infinite alternate pixie-trail;position:absolute;box-shadow:26px 18px #fff7c4,51px -8px #ffe982c2,82px 13px #c6ffb2ad,112px -12px #fff4b38c,142px 8px #ffdc639e}.pixie-hollow-experience__trail.trail-one{top:22%;left:2%}.pixie-hollow-experience__trail.trail-two{animation-delay:-2.7s;top:67%;right:12%;transform:rotate(18deg)}.pixie-dust-mote{cursor:pointer;pointer-events:auto;width:30px;height:42px;animation:pixie-mote-float 3.8s ease-in-out var(--dust-delay) infinite;background:0 0;border:0;padding:0;position:absolute}.pixie-dust-mote span,.pixie-dust-mote:before,.pixie-dust-mote:after{content:"";border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pixie-dust-mote span{background:#fff7be;width:7px;height:7px;box-shadow:0 0 8px #fff3a3,0 0 20px #edcf63,0 0 38px #c5ffa7b3}.pixie-dust-mote:before{background:#fff4b1ad;width:26px;height:1px}.pixie-dust-mote:after{background:#fff4b1ad;width:1px;height:26px}.pixie-dust-mote:hover,.pixie-dust-mote:focus-visible{filter:brightness(1.45);outline:none}.pixie-dust-mote.is-collected{pointer-events:none;animation:.52s ease-out forwards pixie-mote-collect}.pixie-hollow-hud{z-index:45;color:#fff0b8;pointer-events:auto;align-items:center;gap:8px;font:900 .72rem Pixie Power Retro,Pixie Power,sans-serif;display:flex;position:fixed;bottom:20px;right:22px}.pixie-hollow-hud__dust,.pixie-hollow-hud__music{color:#fff0b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#294c2de6,#091b10f0);border:1px solid #f2c45e59;border-radius:7px;align-items:center;gap:8px;min-height:43px;padding:0 13px;display:inline-flex;box-shadow:inset 0 1px #ffffff14,0 6px 24px #00000047}.pixie-hollow-hud__dust b{color:#ffe477;text-shadow:0 0 12px #e5c24c;font-size:1rem}.pixie-hollow-hud__music{cursor:pointer;font:inherit;transition:color .18s,border-color .18s,transform .18s}.pixie-hollow-hud__music:hover,.pixie-hollow-hud__music:focus-visible{color:#fff8d7;border-color:#f2c45e;outline:none;transform:translateY(-2px)}@keyframes pixie-flight{0%{transform:translate(-4vw)rotate(-7deg)}24%{transform:translate(38vw,-10vh)rotate(6deg)}52%{transform:translate(92vw,7vh)rotate(-4deg)}53%{transform:translate(92vw,7vh)scaleX(-1)rotate(-4deg)}76%{transform:translate(47vw,16vh)scaleX(-1)rotate(5deg)}to{transform:translate(-4vw)scaleX(-1)rotate(-7deg)}}@keyframes pixie-trail{0%{opacity:.24;transform:translateY(-5px)rotate(-4deg)}to{opacity:.72;transform:translateY(7px)rotate(5deg)}}@keyframes pixie-mote-float{0%,to{transform:translateY(-7px)rotate(0)}50%{transform:translate(7px,9px)rotate(22deg)}}@keyframes pixie-mote-collect{0%{opacity:1;transform:scale(1)}48%{opacity:1;transform:scale(1.9)rotate(38deg)}to{opacity:0;transform:scale(.15)rotate(90deg)}}@media (width<=1020px){.pixie-hollow-experience__dust,.pixie-hollow-experience__fairy{display:none}}@media (width<=760px){.case-page--fantasy .case-story article{min-height:0}.case-page--fantasy .case-feature-visual{padding:8px}.pixie-hollow-hud{font-size:.62rem;bottom:12px;right:12px}.pixie-hollow-hud__dust{display:none}}@media (prefers-reduced-motion:reduce){.pixie-hollow-experience__fairy,.pixie-hollow-experience__trail,.pixie-dust-mote{animation:none}.pixie-hollow-experience__fairy,.pixie-hollow-experience__trail{display:none}}@font-face{font-family:Pokemon UI;src:url(/images/projects/road-to-champion/assets/pokemon-clear.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Pokemon UI;src:url(/images/projects/road-to-champion/assets/pokemon-bold.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Pokemon Display;src:url(/images/projects/road-to-champion/assets/pokemon.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}.case-page--pokedex{isolation:isolate;position:relative;overflow:hidden;background:#efe7d5!important}.case-page--pokedex:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at 88% 16%,#ef4a5421,#0000 24rem),radial-gradient(circle at 7% 62%,#5990b31f,#0000 28rem),repeating-linear-gradient(0deg,#0000 0 47px,#17345a07 48px),#efe7d5;position:fixed;inset:0}.case-page--pokedex>:not(.pokemon-league-experience){z-index:2;position:relative}.case-page--pokedex .nav-wrap{z-index:50;box-shadow:0 5px #c7353fb8;border-bottom:3px solid #17345a1f!important}.case-page--pokedex h1,.case-page--pokedex h2,.case-page--pokedex h3,.case-page--pokedex .case-metric strong,.case-page--pokedex .case-pagination strong,.case-page--pokedex .mono,.case-page--pokedex .case-stack b,.case-page--pokedex .case-image-note,.case-page--pokedex .case-gallery figcaption{font-family:Pokemon UI,DM Mono,monospace}.case-page--pokedex .case-hero h1{letter-spacing:-.065em;text-shadow:3px 3px #ffe269b8;max-width:620px;font-size:clamp(4.2rem,7.2vw,8.4rem);line-height:.82}.case-page--pokedex .case-hero,.case-page--pokedex .case-intro-grid,.case-page--pokedex .case-metrics,.case-page--pokedex .case-gallery,.case-page--pokedex .case-pagination{border-color:#17345a2e}.case-page--pokedex .case-hero__visual .project-visual,.case-page--pokedex .case-feature-visual,.case-page--pokedex .case-gallery__image{box-shadow:7px 7px #c7353f,14px 14px #17345a21;border:4px solid #17345a!important}.case-page--pokedex .case-hero__visual .project-visual{border-radius:12px!important}.project-visual--pokemon{isolation:isolate;background:#17345a;padding:0}.project-visual--pokemon__landscape,.project-visual--pokemon__shade{width:100%;height:100%;position:absolute;inset:0}.project-visual--pokemon__landscape{z-index:0;object-fit:cover;object-position:center;transition:transform .65s cubic-bezier(.22,.75,.25,1);transform:scale(1.02)}.project-card__visual:hover .project-visual--pokemon__landscape{transform:scale(1.055)}.project-visual--pokemon__shade{z-index:1;background:linear-gradient(#0d24490a 15%,#07152cbd 100%),linear-gradient(90deg,#17345a14,#0000 58%)}.project-visual--pokemon__logo{z-index:2;object-fit:contain;filter:drop-shadow(0 18px 22px #05122961);width:min(68%,620px);max-height:62%;position:relative;transform:translateY(-5%)}.project-visual--pokemon.is-large .project-visual--pokemon__logo{width:min(74%,780px);transform:translateY(-7%)}.project-visual--pokemon__route{z-index:3;color:#17345a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8f0dceb;border:2px solid #17345a;border-radius:7px;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;padding:10px 12px;font-family:Pokemon UI,DM Mono,monospace;display:grid;position:absolute;bottom:22px;right:24px;box-shadow:4px 4px #c7353f}.project-visual--pokemon__route i{background:linear-gradient(#c7353f 0 45%,#17345a 46% 56%,#f8f0dc 57%);border:5px solid #17345a;border-radius:50%;grid-row:1/3;width:22px;height:22px}.project-visual--pokemon__route span{letter-spacing:.08em;font-size:.66rem;font-weight:700}.project-visual--pokemon__route b{color:#657084;letter-spacing:.04em;font-size:.52rem}.project-visual--pokemon__motto{z-index:2;color:#fff7df;letter-spacing:.14em;text-shadow:0 2px 8px #051229d1;max-width:54%;margin:0;font:700 .62rem Pokemon UI,monospace;position:absolute;bottom:29px;left:34px}.case-page--pokedex .case-stack b,.case-page--pokedex .case-actions a,.case-page--pokedex .repo-private{border-radius:5px}.case-page--pokedex .case-actions a{box-shadow:3px 3px #c7353f}.case-page--pokedex .case-metrics{grid-template-columns:repeat(4,1fr)}.case-page--pokedex .case-metric{min-width:0;padding:52px 24px}.case-page--pokedex .case-metric+.case-metric{border-left:1px solid #17345a2e;padding-left:24px}.case-page--pokedex .case-metric strong{text-shadow:2px 2px #ffe269;font-size:clamp(3.2rem,5.2vw,5.7rem)}.case-page--pokedex .case-story{background:#17345a;border:4px solid #17345a;border-radius:12px;gap:3px;box-shadow:7px 7px #c7353fb8}.case-page--pokedex .case-story article{min-height:360px}.case-page--pokedex .case-story h2{font-size:1.72rem;line-height:1.05}.case-page--pokedex .case-feature-visual{padding:18px;border-radius:14px!important}.case-page--pokedex .case-feature-visual .project-visual{box-shadow:none}.case-page--pokedex .case-notes article{border:2px solid #17345a33;border-top:6px solid #c7353f;border-radius:8px;padding:24px 22px 28px;box-shadow:4px 4px #17345a1a;background:#f8f0dcb8!important}.pokemon-league-experience{display:contents}.pokemon-league-experience__decor{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pokemon-orbit{opacity:.12;filter:saturate(.7)drop-shadow(0 8px 10px #17345a38);width:58px;animation:12s ease-in-out infinite alternate pokemon-orbit-drift;position:absolute}.pokemon-orbit--one{top:31%;left:1.4vw}.pokemon-orbit--two{width:44px;animation-delay:-5s;top:72%;right:1.2vw}.pokemon-league-hud{z-index:48;letter-spacing:.035em;pointer-events:auto;align-items:center;gap:7px;font:700 .68rem Pokemon UI,DM Mono,monospace;display:flex;position:fixed;bottom:20px;right:22px}.pokemon-league-hud__status,.pokemon-league-hud button{color:#17345a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8f0dcf0;border:2px solid #17345a;border-radius:5px;align-items:center;gap:8px;min-height:43px;padding:0 13px;display:inline-flex;box-shadow:3px 3px #c7353f}.pokemon-league-hud__status i{background:#39a75a;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #39a75a29}.pokemon-league-hud button{cursor:pointer;font:inherit;transition:transform .18s,color .18s}.pokemon-league-hud button:hover,.pokemon-league-hud button:focus-visible{color:#c7353f;outline:none;transform:translate(-1px,-1px)}.pokemon-route-showcase{background:#f8f0dc;border:4px solid #17345a;border-radius:12px;margin:84px 0 100px;overflow:hidden;box-shadow:8px 8px #c7353f}.pokemon-route-showcase__head{color:#fff7df;background:#17345a;border-bottom:5px solid #c7353f;grid-template-columns:180px 1fr;align-items:end;gap:48px;padding:24px 28px;display:grid}.pokemon-route-showcase__head>span,.pokemon-route-showcase__head small{letter-spacing:.08em;font:700 .66rem Pokemon UI,DM Mono,monospace}.pokemon-route-showcase__head p{margin:0 0 4px;font:700 1.65rem/1 Pokemon UI,monospace}.pokemon-route-showcase__head small{color:#b8c6d7}.pokemon-route-showcase__body{padding:28px}.pokemon-route-map{background:#dce8d2;border:2px solid #17345a;grid-template-columns:minmax(280px,.9fr) 1.1fr;min-height:340px;display:grid;overflow:hidden}.pokemon-route-map__art{background:linear-gradient(#ffffff1f,#17345a14),#56b7d6;min-height:340px;position:relative;overflow:hidden}.pokemon-route-map__art img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;display:block;transform:scale(1.14)}.pokemon-route-map__pulse{background:#c7353f;border:4px solid #fff7df;border-radius:50%;width:18px;height:18px;animation:2s ease-out infinite pokemon-map-pulse;position:absolute;top:48%;left:43%;box-shadow:0 0 #c7353f8c}.pokemon-route-map__copy{color:#17345a;background:linear-gradient(135deg,#ffe26933,#0000 45%),#f8f0dc;border-left:2px solid #17345a;flex-direction:column;justify-content:center;padding:42px;display:flex}.pokemon-route-map__copy>span,.pokemon-route-map__copy em{letter-spacing:.09em;text-transform:uppercase;font:700 .66rem Pokemon UI,monospace}.pokemon-route-map__copy>span{color:#c7353f}.pokemon-route-map__copy strong{letter-spacing:-.045em;margin:22px 0 8px;font:700 clamp(2.5rem,5vw,5.3rem)/.88 Pokemon UI,monospace}.pokemon-route-map__copy em{color:#3f6d8d;font-style:normal}.pokemon-route-map__copy p{color:#536175;max-width:520px;margin:25px 0 0;font-size:.94rem;line-height:1.65}.pokemon-route-line{grid-template-columns:repeat(10,1fr);gap:0;margin:30px 4px;display:grid;position:relative}.pokemon-route-line:before{content:"";background:#17345a;height:5px;position:absolute;top:20px;left:4%;right:4%;box-shadow:0 3px #ffe269}.pokemon-route-line button{z-index:1;color:#17345a;cursor:pointer;background:0 0;border:0;min-width:0;padding:0;position:relative}.pokemon-route-line button:before{content:"";background:#f8f0dc;border:4px solid #17345a;border-radius:50%;width:18px;height:18px;margin:11px auto 12px;transition:transform .18s,background .18s;display:block}.pokemon-route-line button:hover:before,.pokemon-route-line button:focus-visible:before,.pokemon-route-line button.is-active:before{background:#c7353f;transform:scale(1.24)}.pokemon-route-line button:focus-visible{outline:none}.pokemon-route-line button span{letter-spacing:.04em;font:700 .58rem Pokemon UI,monospace}.pokemon-system-cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.pokemon-system-cards article{background:#fffaf0;border:2px solid #17345a;flex-direction:column;min-height:205px;padding:26px;display:flex;box-shadow:4px 4px #17345a1f}.pokemon-system-cards b{color:#c7353f;font:700 2.1rem/1 Pokemon UI,monospace}.pokemon-system-cards span{color:#17345a;letter-spacing:.06em;text-transform:uppercase;margin:12px 0 18px;font:700 .72rem Pokemon UI,monospace}.pokemon-system-cards p{color:#5b6672;margin:auto 0 0;font-size:.83rem;line-height:1.6}@keyframes pokemon-orbit-drift{0%{transform:translateY(-14px)rotate(-12deg)}to{transform:translate(10px,20px)rotate(22deg)}}@keyframes pokemon-map-pulse{0%{box-shadow:0 0 #c7353f8c}75%,to{box-shadow:0 0 0 22px #c7353f00}}@media (width<=1020px){.case-page--pokedex .case-metrics{grid-template-columns:repeat(2,1fr)}.case-page--pokedex .case-metric:nth-child(3){border-top:1px solid #17345a2e;border-left:0}.case-page--pokedex .case-metric:nth-child(4){border-top:1px solid #17345a2e}.pokemon-route-map{grid-template-columns:1fr}.pokemon-route-map__art{min-height:290px}.pokemon-route-map__copy{border-top:2px solid #17345a;border-left:0}}@media (width<=760px){.case-page--pokedex .case-hero h1{font-size:clamp(3.3rem,18vw,5rem)}.case-page--pokedex .case-story article{min-height:0}.case-page--pokedex .case-metric{padding:34px 14px}.case-page--pokedex .case-metric+.case-metric{padding-left:14px}.case-page--pokedex .case-metric strong{font-size:3rem}.pokemon-league-hud{font-size:.58rem;bottom:12px;right:12px}.pokemon-league-hud__status,.pokemon-orbit{display:none}.pokemon-route-showcase{margin:64px 0 76px;box-shadow:5px 5px #c7353f}.pokemon-route-showcase__head{grid-template-columns:1fr;gap:14px;padding:20px}.pokemon-route-showcase__head p{font-size:1.25rem}.pokemon-route-showcase__body{padding:14px}.pokemon-route-map__art{min-height:220px}.pokemon-route-map__copy{padding:28px 22px}.pokemon-route-map__copy strong{font-size:2.45rem}.pokemon-route-line{grid-template-columns:repeat(5,1fr);row-gap:16px}.pokemon-route-line:before{display:none}.pokemon-route-line button:before{margin-bottom:7px}.pokemon-system-cards{grid-template-columns:1fr}.pokemon-system-cards article{min-height:170px}.project-visual--pokemon__logo{width:76%}.project-visual--pokemon__route{padding:7px 8px;bottom:13px;right:13px}.project-visual--pokemon__route b,.project-visual--pokemon__motto{display:none}}@media (prefers-reduced-motion:reduce){.pokemon-orbit,.pokemon-route-map__pulse{animation:none}}
