@font-face{font-family:"Fusion Pixel";src:url("assets/fonts/fusion-pixel-latin.woff2") format("woff2");font-display:swap;unicode-range:U+0000-024F,U+1E00-1EFF}
@font-face{font-family:"Fusion Pixel";src:url("assets/fonts/fusion-pixel-zh-hans.woff2") format("woff2");font-display:swap;unicode-range:U+2000-206F,U+2E80-2EFF,U+3000-303F,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
:root{--night:#0a1018;--night-soft:#111923;--stone:#202832;--stone-light:#39424b;--paper:#f7f1e5;--paper-deep:#e7dfd0;--parchment:#f2e2bc;--forge:#d56836;--forge-dark:#a94928;--oxblood:#8f3e35;--green:#39b985;--gold:#d2a44d;--blue:#3e6fa7;--ink:#171c21;--muted:#687078;--line:#c6bdac;--white:#fffdf6;--shadow:4px 4px 0 rgb(10 16 24 / 18%);--max:1240px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--night)}
body{margin:0;background:var(--paper-deep);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.65;letter-spacing:0;overflow-x:hidden}
body,button{letter-spacing:0}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3,.brand strong,.eyebrow,.archive-stamp,.character-topline,.character-name,.project-meta,.project-status,.tag-list,.skill-item span,.site-footer strong,.button,.text-button{font-family:"Fusion Pixel",ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:400;letter-spacing:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip-link{position:fixed;z-index:999;top:8px;left:8px;padding:10px 14px;background:var(--gold);color:var(--night);transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{position:fixed;z-index:100;top:0;left:0;right:0;color:var(--parchment);background:rgb(10 16 24 / 94%);border-bottom:1px solid #36404a;backdrop-filter:blur(10px)}
.header-inner{width:min(calc(100% - 48px),var(--max));height:68px;margin:auto;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;color:var(--gold);font:24px "Fusion Pixel";border:1px solid #59616a;background:#151e27;box-shadow:2px 2px 0 #000}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-size:14px;line-height:1.2;color:var(--white)}.brand small{font-size:10px;color:#9da6ad;line-height:1.4}.desktop-nav{display:flex;gap:4px;margin-left:auto}.desktop-nav a{padding:10px 12px;color:#bcc4ca;font-size:14px;border-bottom:2px solid transparent}.desktop-nav a:hover{color:var(--white);border-color:var(--forge)}.header-actions{display:flex;align-items:center;gap:10px}.locale-toggle{height:38px;padding:4px;display:flex;background:#111923;color:#869099;border:1px solid #47515a;border-radius:3px}.locale-toggle span{min-width:34px;display:grid;place-items:center;font:12px "Fusion Pixel"}.locale-toggle span.active{background:var(--parchment);color:var(--night)}
.button{min-height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:2px;font-size:13px;line-height:1.2;cursor:pointer;box-shadow:3px 3px 0 rgb(0 0 0 / 30%);transition:transform 120ms ease,box-shadow 120ms ease,background 120ms ease}.button:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 rgb(0 0 0 / 35%)}.button-fire{background:var(--forge);border-color:#ec895a;color:var(--white)}.button-fire:hover{background:#e27440}.button-ghost{background:rgb(10 16 24 / 72%);border-color:#7b8186;color:var(--white)}.button-compact{min-height:38px;padding:0 14px;font-size:11px}.menu-toggle,.mobile-menu{display:none}
.hero{height:78svh;min-height:650px;max-height:850px;position:relative;overflow:hidden;background:var(--night);color:var(--white);border-bottom:1px solid #202a34}.hero-art,.hero-art img,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-art img{object-fit:cover;object-position:center}.hero-shade{background:linear-gradient(90deg,rgb(6 10 16 / 78%) 0%,rgb(6 10 16 / 43%) 38%,transparent 66%),linear-gradient(0deg,rgb(6 10 16 / 42%) 0%,transparent 28%)}
.hero-inner{position:relative;z-index:3;width:min(calc(100% - 48px),var(--max));height:100%;margin:auto;display:flex;align-items:center;padding-top:68px}.hero-copy{width:min(560px,45vw);margin-top:18px}.hero-character{position:absolute;z-index:2;right:12.5%;bottom:2.5%;width:min(35vw,510px);aspect-ratio:543/724;overflow:hidden;pointer-events:none;filter:drop-shadow(10px 14px 8px rgb(0 0 0 / 35%))}.hero-character span{display:block;width:400%;height:100%;background:url("assets/art/sprites/caleb-idle.png") 0 0/100% 100% no-repeat;image-rendering:pixelated;animation:calebIdle 3.2s steps(4,end) infinite}.eyebrow{margin:0 0 15px;display:flex;align-items:center;gap:9px;color:var(--gold);font-size:12px;text-transform:uppercase}.eyebrow.ink{color:var(--oxblood)}.status-dot{width:8px;height:8px;display:inline-block;background:var(--green);box-shadow:0 0 0 3px rgb(57 185 133 / 20%);animation:pulse 1.8s steps(2,end) infinite}.hero h1{margin:0 0 20px;font-size:58px;line-height:.98;color:var(--parchment);text-shadow:4px 4px 0 #000}.hero-lead{margin-bottom:8px;color:var(--white);font-weight:700;font-size:20px}.hero-body{max-width:510px;margin-bottom:27px;color:#c5ccd0;font-size:17px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.scroll-cue{position:absolute;z-index:3;left:50%;bottom:17px;display:flex;flex-direction:column;align-items:center;gap:7px;color:#9da7ad;font:10px "Fusion Pixel";transform:translateX(-50%)}.scroll-cue i{width:1px;height:22px;background:var(--forge)}
.status-strip{background:#121b24;color:#d8dadd;border-bottom:1px solid #303b45}.status-inner{width:min(calc(100% - 48px),var(--max));min-height:76px;margin:auto;display:grid;grid-template-columns:190px 1fr auto;align-items:center;gap:24px}.status-label{display:flex;align-items:center;gap:10px;color:var(--gold);font:12px "Fusion Pixel"}.status-inner p{margin:0;font-size:14px;color:#bac1c6}.status-inner a{display:flex;gap:8px;color:var(--parchment);font:12px "Fusion Pixel"}
.section{padding:96px 0}.section-inner{width:min(calc(100% - 48px),var(--max));margin:auto}.paper-section{position:relative;background:#eee7da;border-top:1px solid #d1c7b6;border-bottom:1px solid #c9beac}.paper-section:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E")}.paper-section .section-inner{position:relative}.section-heading{margin-bottom:54px}.section-heading h2{margin-bottom:12px;font-size:38px;line-height:1.15}.section-heading p:last-child{max-width:670px;margin-bottom:0;color:var(--muted)}.split-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.archive-stamp{padding:9px 12px;color:var(--oxblood);font-size:10px;border:2px solid var(--oxblood);transform:rotate(-1deg)}
.project-list{display:flex;flex-direction:column;gap:88px}.project-row{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);align-items:center;gap:56px}.project-row.reverse{grid-template-columns:minmax(320px,.84fr) minmax(0,1.16fr)}.project-row.reverse .project-visual{order:2}.project-visual{height:390px;position:relative;overflow:hidden;background:var(--night);border:1px solid #5b6165;box-shadow:var(--shadow)}.guild-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) brightness(.88)}.guild-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgb(10 16 24 / 72%),transparent 55%)}.guild-visual>span,.visual-caption{position:absolute;z-index:2;left:20px;bottom:17px;color:var(--gold);font:10px "Fusion Pixel"}.notes-visual{display:grid;place-items:center;background:#17212a;background-image:linear-gradient(90deg,rgb(62 111 167 / 12%) 1px,transparent 1px),linear-gradient(rgb(62 111 167 / 12%) 1px,transparent 1px);background-size:18px 18px}.note-window{width:75%;height:76%;position:relative;display:grid;grid-template-columns:25% 1fr;grid-template-rows:34px 1fr;background:#e9e2d4;border:3px solid #0b0f14;box-shadow:9px 9px 0 rgb(0 0 0 / 38%)}.note-toolbar{grid-column:1/-1;display:flex;align-items:center;gap:7px;padding:0 10px;background:#303a43;border-bottom:2px solid #0b0f14}.note-toolbar i{width:9px;height:9px;background:var(--forge)}.note-toolbar i:nth-child(2){background:var(--gold)}.note-toolbar i:nth-child(3){background:var(--green)}.note-sidebar{display:flex;flex-direction:column;gap:13px;padding:20px 12px;background:#cfc7b8;border-right:2px solid #282e34}.note-sidebar b{height:8px;background:#7b7e7d}.note-sidebar b:nth-child(2){width:73%}.note-sidebar b:nth-child(4){width:82%}.note-page{padding:27px 28px}.note-page span{width:36px;height:6px;display:block;margin-bottom:14px;background:var(--forge)}.note-page strong{width:70%;height:17px;display:block;margin-bottom:25px;background:#242b31}.note-page p{height:6px;margin-bottom:12px;background:#93918b}.note-page p:nth-of-type(2){width:87%}.note-page p:nth-of-type(3){width:62%}.note-page em{width:68px;height:68px;position:absolute;right:25px;bottom:23px;background:var(--green);opacity:.72;box-shadow:-12px -12px 0 var(--blue)}
.project-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px;color:var(--oxblood);font-size:10px}.project-status{padding:5px 8px;color:#176f52;border:1px solid #399674;background:#e4f1e8}.project-copy h3{margin-bottom:5px;font-size:40px}.project-copy h4{margin-bottom:20px;color:#4f5860;font-size:18px;line-height:1.4}.project-copy>p{margin-bottom:22px;color:var(--muted)}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:24px}.tag-list span{padding:5px 8px;background:#ded6c7;color:#4b5257;border:1px solid #bab0a0;font-size:9px}.text-button{padding:0 0 5px;background:none;color:var(--oxblood);border:0;border-bottom:1px solid currentColor;font-size:12px;cursor:pointer}.text-button:hover{color:var(--forge)}
.notes-visual{display:block;padding:24px 22px 34px;background:#151f27;background-image:none}.bbnotes-promo-stack{height:100%;display:flex;align-items:center;justify-content:center;gap:14px}.bbnotes-promo-stack img{width:29%;max-height:100%;object-fit:contain;border:1px solid #4f5961;box-shadow:6px 7px 0 rgb(0 0 0 / 32%)}.bbnotes-promo-stack img:nth-child(2){transform:translateY(-6px)}.project-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px}.app-store-link{padding:8px 11px;background:var(--night);color:var(--parchment);border:1px solid #3e4851;box-shadow:2px 2px 0 rgb(0 0 0 / 25%);font:10px "Fusion Pixel"}.app-store-link:hover{background:var(--oxblood)}.button-app-store{margin-bottom:28px;background:var(--night);border-color:#505a62;color:var(--white)}.bbnotes-gallery-section{margin-top:10px;padding-top:25px;border-top:1px solid var(--line)}.bbnotes-gallery-section h3{margin-bottom:15px;font-size:16px}.bbnotes-gallery{display:flex;gap:12px;overflow-x:auto;padding:3px 3px 15px;scroll-snap-type:x mandatory}.bbnotes-gallery img{width:180px;flex:0 0 180px;scroll-snap-align:start;border:1px solid #a89f90;box-shadow:3px 3px 0 rgb(10 16 24 / 16%)}
.project-status.in-progress{color:#8a6522;border-color:#b78a38;background:#f2e6c9}.small-pause-visual{padding:18px;background:#dfe8dd;border-color:#819182}.small-pause-art-grid{height:100%;display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:10px}.small-pause-art-grid img{width:100%;height:100%;object-fit:cover;border:1px solid #87978a}.small-pause-art-grid img:first-child{grid-row:1/-1}.small-pause-visual:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(0deg,rgb(10 16 24 / 80%),transparent)}
.archive-section{background:#0e151d;color:#dfe3e5;border-top:1px solid #3c4650;border-bottom:1px solid #3c4650}.archive-heading h2{color:var(--parchment)}.archive-heading p:last-child{color:#9ca7ad}.github-summary{display:flex;border:1px solid #47535d;background:#151e27}.github-summary div{min-width:100px;padding:15px 17px;text-align:center;border-right:1px solid #47535d}.github-summary div:last-child{border-right:0}.github-summary strong{display:block;color:var(--gold);font:24px "Fusion Pixel";line-height:1.1}.github-summary span{color:#94a0a7;font:8px "Fusion Pixel"}.archive-toolbar{margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:22px}.archive-filters{display:flex;flex-wrap:wrap;gap:7px}.archive-filter{min-height:38px;padding:0 13px;background:#17212a;color:#9ba6ad;border:1px solid #45515b;border-radius:2px;font:10px "Fusion Pixel";cursor:pointer}.archive-filter:hover,.archive-filter.active{background:var(--parchment);color:var(--night);border-color:var(--parchment)}.github-profile-link{display:flex;gap:10px;color:var(--gold);font:11px "Fusion Pixel"}.repo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#47515a;border:1px solid #47515a}.repo-card{min-height:300px;position:relative;padding:24px;display:flex;flex-direction:column;background:#17212a;border-top:3px solid #68737b}.repo-card.featured{background:#1c2730}.repo-card.green{border-top-color:var(--green)}.repo-card.blue{border-top-color:var(--blue)}.repo-card.red{border-top-color:var(--forge)}.repo-card.gold{border-top-color:var(--gold)}.repo-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.repo-number{color:#67737b;font:11px "Fusion Pixel"}.repo-language{display:flex;align-items:center;gap:7px;color:#aeb8bd;font:9px "Fusion Pixel"}.repo-language i{width:7px;height:7px;background:currentColor}.repo-card.green .repo-language i{background:var(--green)}.repo-card.blue .repo-language i{background:var(--blue)}.repo-card.red .repo-language i{background:var(--forge)}.repo-card.gold .repo-language i{background:var(--gold)}.repo-card h3{margin-bottom:11px;color:var(--white);font-size:19px;overflow-wrap:anywhere}.repo-card>p{margin-bottom:20px;color:#9fa9af;font-size:13px;line-height:1.55}.repo-metrics{display:flex;flex-wrap:wrap;gap:8px 13px;margin-top:auto;margin-bottom:18px;color:#79858c;font:8px "Fusion Pixel"}.repo-card>a{width:max-content;color:var(--parchment);font:10px "Fusion Pixel";border-bottom:1px solid #7e878b}.repo-card>a:hover{color:var(--gold)}
.dark-section{background:#121a22;color:#dde2e4;border-top:1px solid #39434d;border-bottom:1px solid #39434d}.about-layout{display:grid;grid-template-columns:380px 1fr;gap:88px;align-items:center}.character-sheet{background:#1e2831;border:1px solid #59626a;box-shadow:7px 7px 0 #070b0f}.character-topline{padding:10px 14px;display:flex;justify-content:space-between;color:var(--gold);background:#111820;border-bottom:1px solid #59626a;font-size:9px}.avatar-frame{height:240px;display:grid;place-items:center;background:radial-gradient(circle,#35434b 0,#1c252d 60%);border-bottom:1px solid #59626a}.pixel-avatar{width:124px;height:145px;display:grid;place-items:center;background:var(--oxblood);border:8px solid #10171d;box-shadow:16px -12px 0 #111820,-16px 20px 0 var(--blue)}.pixel-avatar span{color:var(--parchment);font:72px "Fusion Pixel";text-shadow:5px 5px 0 #2e1a1b}.character-name{padding:20px;text-align:center;border-bottom:1px solid #59626a}.character-name strong{display:block;color:var(--white);font-size:24px}.character-name span{color:#aeb7bd;font-size:10px}.character-stats{margin:0;padding:17px 20px}.character-stats div{display:grid;grid-template-columns:75px 1fr;padding:8px 0;border-bottom:1px dashed #47515a}.character-stats div:last-child{border:0}.character-stats dt{color:#87939a;font-size:11px}.character-stats dd{margin:0;color:var(--parchment);font:10px "Fusion Pixel"}.about-copy h2{max-width:700px;margin-bottom:22px;color:var(--parchment);font-size:40px}.about-lead{color:var(--white);font-size:19px}.about-copy>p:not(.eyebrow):not(.about-lead){max-width:740px;color:#aeb7bd}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:36px;background:#47515a;border:1px solid #47515a}.principles div{padding:20px;background:#19232c}.principles span{display:block;margin-bottom:13px;color:var(--forge);font:11px "Fusion Pixel"}.principles strong{display:block;margin-bottom:7px;color:var(--white)}.principles p{margin:0;color:#9fa9af;font-size:13px;line-height:1.5}
.profile-avatar{width:150px;height:150px;object-fit:cover;border:7px solid #0d1319;box-shadow:14px 14px 0 var(--oxblood),-13px -11px 0 var(--blue);image-rendering:auto}.current-work{margin-top:26px;padding:18px 20px;background:#18222b;border-left:3px solid var(--green)}.current-work>span{color:var(--green);font:10px "Fusion Pixel"}.current-work ul{margin:12px 0 0;padding-left:18px;color:#aeb7bd;font-size:13px}.current-work li+li{margin-top:6px}
.skills-section{background:#e8e0d2}.centered-heading{text-align:center}.centered-heading .eyebrow{justify-content:center}.centered-heading p:last-child{margin-left:auto;margin-right:auto}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--line);gap:1px}.skill-item{min-height:220px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;background:var(--paper)}.skill-index{width:36px;height:36px;display:grid;place-items:center;color:var(--white);font:11px "Fusion Pixel"}.skill-item.green .skill-index{background:#397a5d}.skill-item.blue .skill-index{background:var(--blue)}.skill-item.red .skill-index{background:var(--oxblood)}.skill-item.gold .skill-index{background:#9a762d}.skill-item span{color:var(--muted);font-size:9px}.skill-item h3{margin:4px 0 8px;font-size:22px}.skill-item p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.contact-section{position:relative;overflow:hidden;background:#171f27;color:var(--white);border-top:1px solid #4d5760}.contact-texture{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(90deg,var(--gold) 1px,transparent 1px),linear-gradient(var(--gold) 1px,transparent 1px);background-size:24px 24px}.contact-inner{position:relative;display:grid;grid-template-columns:1fr auto;gap:70px;align-items:center}.contact-inner h2{margin-bottom:15px;color:var(--parchment);font-size:42px}.contact-inner p{max-width:690px;margin-bottom:0;color:#aeb7bd}.contact-actions{min-width:240px;display:flex;flex-direction:column;align-items:stretch;gap:10px}.copy-feedback{min-height:20px;text-align:center;color:var(--green)!important;font-size:12px}
.social-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#505961;border:1px solid #505961}.social-grid a,.social-grid button{min-height:39px;padding:0 10px;display:flex;align-items:center;justify-content:center;background:#18212a;color:#c5ccd0;border:0;font:9px "Fusion Pixel";cursor:pointer}.social-grid a:hover,.social-grid button:hover{background:#26323b;color:var(--gold)}
.site-footer{padding:30px 0;background:#090e14;color:#89949b;border-top:1px solid #333c45}.footer-inner{width:min(calc(100% - 48px),var(--max));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.footer-inner div{display:flex;flex-direction:column}.site-footer strong{color:var(--parchment);font-size:12px}.site-footer span{font-size:10px}.site-footer p{margin:0;font-size:11px}.ember{width:7px;height:7px;display:inline-block;margin-left:5px;background:var(--forge);box-shadow:0 0 8px var(--forge)}
.project-dialog{width:min(680px,calc(100% - 32px));max-height:85vh;padding:0;color:var(--ink);background:var(--paper);border:2px solid #111820;border-radius:2px;box-shadow:12px 12px 0 rgb(0 0 0 / 50%)}.project-dialog::backdrop{background:rgb(5 9 13 / 82%);backdrop-filter:blur(3px)}.dialog-close{position:absolute;top:12px;right:12px;width:38px;height:38px;background:var(--night);color:var(--white);border:1px solid #59616a;font:14px "Fusion Pixel";cursor:pointer}.dialog-close:hover{background:var(--oxblood)}#dialog-content{padding:48px}.project-dialog h2{margin-bottom:5px;font-size:40px}.dialog-subtitle{color:var(--muted);font-size:18px}.dialog-facts{margin:28px 0;border-top:1px solid var(--line)}.dialog-facts section{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.dialog-facts span{color:var(--oxblood);font:10px "Fusion Pixel"}.dialog-facts p{margin:0;color:#4f5860}
/* Motion system: small continuous cues, with scroll reveals kept out of layout flow. */
.motion-enabled .hero-art img{transform:scale(1.035) translate3d(0,var(--hero-shift,0),0);will-change:transform;animation:heroAwake 1.2s cubic-bezier(.16,1,.3,1) both}.motion-enabled .hero-copy{transform:translate3d(0,var(--copy-shift,0),0);will-change:transform}.motion-enabled .hero-copy>*{opacity:0;transform:translateY(22px);animation:heroLineIn .72s cubic-bezier(.16,1,.3,1) forwards}.motion-enabled .hero-copy>:nth-child(1){animation-delay:.12s}.motion-enabled .hero-copy>:nth-child(2){animation-delay:.2s}.motion-enabled .hero-copy>:nth-child(3){animation-delay:.3s}.motion-enabled .hero-copy>:nth-child(4){animation-delay:.39s}.motion-enabled .hero-copy>:nth-child(5){animation-delay:.48s}.motion-enabled .scroll-cue i{transform-origin:top;animation:scrollLine 1.7s ease-in-out infinite}.motion-enabled .status-strip{position:relative;overflow:hidden}.motion-enabled .status-strip:after{content:"";position:absolute;inset:0 auto 0 -30%;width:24%;pointer-events:none;background:linear-gradient(90deg,transparent,rgb(210 164 77 / 8%),transparent);animation:statusSweep 8s linear infinite}.motion-ready{opacity:0;transform:translateY(34px);filter:blur(5px);transition:opacity .72s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .78s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),filter .7s ease var(--reveal-delay,0ms)}.project-row.motion-ready:nth-child(even){transform:translateY(34px) translateX(18px)}.project-row.motion-ready:nth-child(odd){transform:translateY(34px) translateX(-18px)}.motion-ready.is-revealed{opacity:1;transform:none;filter:none}.motion-enabled .project-visual{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-style:preserve-3d;transition:transform .24s ease-out,box-shadow .24s ease-out;will-change:transform}.motion-enabled .project-visual:hover{box-shadow:8px 12px 0 rgb(10 16 24 / 20%)}.motion-enabled .bbnotes-promo-stack img,.motion-enabled .small-pause-art-grid img{transition:transform .5s cubic-bezier(.16,1,.3,1),filter .5s ease}.motion-enabled .project-visual:hover .bbnotes-promo-stack img:first-child{transform:translateY(4px) rotate(-1deg)}.motion-enabled .project-visual:hover .bbnotes-promo-stack img:nth-child(2){transform:translateY(-10px)}.motion-enabled .project-visual:hover .bbnotes-promo-stack img:nth-child(3){transform:translateY(3px) rotate(1deg)}.motion-enabled .small-pause-art-grid img:nth-child(2){animation:quietFloat 5.4s ease-in-out infinite}.motion-enabled .small-pause-art-grid img:nth-child(3){animation:quietFloat 5.4s ease-in-out -2.7s infinite}.motion-enabled .repo-card,.motion-enabled .skill-item{transition:opacity .72s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .24s ease-out,filter .7s ease var(--reveal-delay,0ms),background-color .2s ease}.motion-enabled .repo-card:hover,.motion-enabled .skill-item:hover{z-index:1;transform:translateY(-5px)}
@keyframes calebIdle{to{transform:translateX(-100%)}}@keyframes heroAwake{from{opacity:.55;transform:scale(1.075) translate3d(0,12px,0)}to{opacity:1;transform:scale(1.035) translate3d(0,var(--hero-shift,0),0)}}@keyframes heroLineIn{to{opacity:1;transform:none}}@keyframes scrollLine{0%,100%{transform:scaleY(.35);opacity:.45}50%{transform:scaleY(1);opacity:1}}@keyframes statusSweep{to{left:120%}}@keyframes quietFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes pulse{50%{opacity:.4}}
@media(max-width:980px){.desktop-nav{display:none}.header-actions .button{display:none}.menu-toggle{width:42px;height:42px;margin-left:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#131b23;border:1px solid #47515a}.menu-toggle span{width:18px;height:2px;background:var(--parchment)}.mobile-menu{position:absolute;top:68px;left:0;right:0;padding:12px 24px 20px;display:grid;background:#0a1018;border-bottom:1px solid #47515a}.mobile-menu[hidden]{display:none}.mobile-menu a{padding:13px;border-bottom:1px solid #28323b}.project-row,.project-row.reverse{grid-template-columns:1fr;gap:34px}.project-row.reverse .project-visual{order:0}.project-visual{height:420px}.repo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout{grid-template-columns:320px 1fr;gap:48px}.principles{grid-template-columns:1fr}.skill-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.header-inner{width:calc(100% - 32px);height:62px}.brand small{display:none}.brand strong{font-size:11px}.brand-mark{width:34px;height:34px}.locale-toggle{height:34px}.locale-toggle span{min-width:29px}.mobile-menu{top:62px}.hero{height:92svh;min-height:700px;max-height:780px}.hero-art img{object-position:center}.hero-shade{z-index:2;background:linear-gradient(180deg,rgb(5 9 15 / 86%) 0%,rgb(5 9 15 / 64%) 40%,transparent 64%),linear-gradient(0deg,rgb(5 9 15 / 42%),transparent 38%)}.hero-character{z-index:1;right:-48px;bottom:-28px;width:330px;opacity:.92}.hero-inner{width:calc(100% - 32px);align-items:flex-start;padding-top:115px}.hero-copy{width:100%;margin:0}.hero h1{font-size:41px;line-height:1}.hero-lead{font-size:17px}.hero-body{max-width:340px;font-size:15px}.hero-actions{gap:9px}.hero-actions .button{min-height:42px;padding:0 13px;font-size:10px}.scroll-cue{display:none}.status-inner{width:calc(100% - 32px);padding:18px 0;grid-template-columns:1fr;gap:8px}.status-inner a{margin-top:3px}.section{padding:70px 0}.section-inner,.footer-inner{width:calc(100% - 32px)}.section-heading{margin-bottom:36px}.section-heading h2{font-size:30px}.split-heading{align-items:flex-start;flex-direction:column;gap:18px}.project-list{gap:65px}.project-visual{height:290px}.notes-visual{padding:18px 10px 31px}.bbnotes-promo-stack{gap:7px}.bbnotes-promo-stack img{width:31%;box-shadow:3px 4px 0 rgb(0 0 0 / 32%)}.project-copy h3{font-size:32px}.project-copy h4{font-size:16px}.note-window{width:82%;height:72%}.note-page{padding:19px 17px}.archive-toolbar{align-items:flex-start;flex-direction:column}.github-summary{width:100%}.github-summary div{min-width:0;flex:1;padding:13px 8px}.github-summary strong{font-size:20px}.repo-grid{grid-template-columns:1fr}.repo-card{min-height:260px}.about-layout{grid-template-columns:1fr;gap:48px}.character-sheet{width:min(100%,380px);margin:auto}.about-copy h2{font-size:30px}.principles{grid-template-columns:1fr}.skill-grid{grid-template-columns:1fr}.skill-item{min-height:175px}.contact-inner{grid-template-columns:1fr;gap:32px}.contact-inner h2{font-size:32px}.contact-actions{min-width:0}.footer-inner{align-items:flex-start;flex-direction:column}.project-dialog{max-height:88vh}.dialog-close{position:sticky;z-index:2;top:10px;float:right;margin:10px 10px 0 0}#dialog-content{padding:50px 24px 28px}.project-dialog h2{font-size:31px}.dialog-facts section{grid-template-columns:1fr;gap:7px}.bbnotes-gallery img{width:150px;flex-basis:150px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-ready{opacity:1!important;transform:none!important;filter:none!important}.motion-enabled .hero-art img,.motion-enabled .hero-copy{transform:none!important}.hero-character span{transform:none!important}}
