*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #f7f3e8;--bg-secondary: #dbe9ef;--bg-card: #ffffff;--text-primary: #11100d;--text-secondary: #3c3931;--accent: #8f172f;--accent-hover: #b33a4b;--accent-contrast: #fffaf0;--section-accent: var(--accent);--section-accent-soft: var(--bg-secondary);--border: #17130f;--shadow-color: #17130f;--card-border-width: 3px;--dot-color: #c9d6d8}[data-theme=dark]{--bg-primary: #071016;--bg-secondary: #132b35;--bg-card: #0d1922;--text-primary: #eef8f7;--text-secondary: #a6bbc0;--accent: #2dd4bf;--accent-hover: #67e8f9;--accent-contrast: #061015;--section-accent: var(--accent);--section-accent-soft: var(--bg-secondary);--border: #5f7882;--shadow-color: #000000;--dot-color: #18313b}.tab-content[hidden]{display:none}body{font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;background-image:linear-gradient(90deg,var(--dot-color) 1px,transparent 1px),linear-gradient(var(--dot-color) 1px,transparent 1px),radial-gradient(var(--dot-color) 1px,transparent 0);background-position:-1px -1px,-1px -1px,0 0;background-size:160px 160px,160px 160px,40px 40px}a{color:var(--text-primary);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent);transition:all .2s ease;font-weight:700}a:hover{background-color:var(--accent);color:var(--accent-contrast);text-decoration:none}h1,h2,h3,h4,h5,h6{line-height:1.1;color:var(--text-primary);font-weight:900;text-transform:uppercase;letter-spacing:-.02em}button{font-family:inherit;cursor:pointer;border:none;outline:none}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-primary);border-left:2px solid var(--border)}::-webkit-scrollbar-thumb{background:var(--accent);border:2px solid var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}.app{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem;position:relative;animation:appBootSettle .7s cubic-bezier(.2,.8,.2,1) both}.boot-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:linear-gradient(90deg,transparent 49%,color-mix(in srgb,var(--border) 22%,transparent) 50%,transparent 51%) 0 0 / 28px 28px,linear-gradient(0deg,transparent 49%,color-mix(in srgb,var(--border) 22%,transparent) 50%,transparent 51%) 0 0 / 28px 28px,var(--bg-primary);color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;pointer-events:none;animation:bootScreen 1.35s cubic-bezier(.2,.8,.2,1) forwards;box-shadow:inset 0 0 0 2px var(--border),inset 0 0 0 10px color-mix(in srgb,var(--bg-card) 35%,transparent)}.boot-overlay span{display:inline-flex;padding:.45rem .75rem;border:2px solid var(--border);background:var(--bg-card);color:var(--accent);box-shadow:4px 4px 0 var(--shadow-color);font-size:clamp(.9rem,2vw,1.1rem);font-weight:900;letter-spacing:.08em;line-height:1;text-transform:uppercase;text-shadow:none;animation:bootTextPulse 1.05s steps(2,end) both}.folder{max-width:900px;width:100%;position:relative}.folder[data-active-tab=projects]{--section-accent: var(--accent);--section-accent-soft: var(--bg-secondary)}.folder[data-active-tab=employment]{--section-accent: #2f6f73;--section-accent-soft: #d9ece6}.folder[data-active-tab=education]{--section-accent: #9b5c13;--section-accent-soft: #eee4c7}.folder[data-active-tab=honors]{--section-accent: #4267a8;--section-accent-soft: #dbe9ef}.folder[data-active-tab=skills]{--section-accent: #4b6b2a;--section-accent-soft: #dfead4}[data-theme=dark] .folder[data-active-tab=employment]{--section-accent: #67e8f9;--section-accent-soft: #13303a}[data-theme=dark] .folder[data-active-tab=education]{--section-accent: #fbbf24;--section-accent-soft: #2f2a16}[data-theme=dark] .folder[data-active-tab=honors]{--section-accent: #93c5fd;--section-accent-soft: #172a45}[data-theme=dark] .folder[data-active-tab=skills]{--section-accent: #86efac;--section-accent-soft: #162e24}.math-motifs{position:absolute;inset:-1.1rem -1.4rem auto;height:100%;pointer-events:none;color:var(--text-secondary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;font-weight:800;letter-spacing:0;opacity:.34;z-index:0}.math-motifs span{position:absolute;display:inline-flex;border:2px solid var(--border);background:var(--bg-card);padding:.12rem .35rem;box-shadow:2px 2px 0 var(--shadow-color)}.math-motifs span:nth-child(1){top:0;right:3.5rem;transform:rotate(2deg)}.math-motifs span:nth-child(2){top:9.8rem;left:-.9rem;transform:rotate(-4deg)}.math-motifs span:nth-child(3){right:-.6rem;bottom:11rem;transform:rotate(4deg)}.math-motifs span:nth-child(4){left:2rem;bottom:4.5rem;transform:rotate(-2deg)}.hero-row,.about-body.mobile-only,.personal-shelf,.tab-bar,.folder-body{position:relative;z-index:1}.folder-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.identity-lockup{display:flex;flex-direction:column;gap:.35rem}.identity-stamp{align-self:flex-start;padding:.14rem .45rem;border:2px solid var(--border);background:var(--section-accent-soft);box-shadow:2px 2px 0 var(--shadow-color);color:var(--text-primary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.folder-header h1{font-size:clamp(2rem,5vw,3rem);font-weight:900;text-shadow:3px 3px 0 var(--accent);-webkit-text-stroke:1px var(--text-primary)}.header-links{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;max-width:100%}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:var(--bg-card);border:2px solid var(--border);color:var(--text-primary);box-shadow:3px 3px 0 var(--shadow-color);transition:all .2s ease}.social-link:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--accent);background-color:var(--accent);color:var(--accent-contrast)}.resume-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:40px;padding:0 .65rem 0 .5rem;background-color:var(--bg-card);border:2px solid var(--border);color:var(--text-primary);box-shadow:3px 3px 0 var(--shadow-color);transition:all .2s ease;text-decoration:none;font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;line-height:1}.resume-button:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--accent);background-color:var(--accent);color:var(--accent-contrast);text-decoration:none}.theme-toggle{width:40px;height:40px;background-color:var(--bg-card);border:2px solid var(--border);color:var(--text-primary);box-shadow:3px 3px 0 var(--shadow-color);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--accent);background-color:var(--accent);color:var(--accent-contrast)}.hero-row{display:flex;align-items:flex-start;gap:1.5rem;padding:0 .5rem}.hero-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:.75rem}.headshot-wrapper{flex-shrink:0}.headshot{width:140px;height:140px;object-fit:cover;border:3px solid var(--border);box-shadow:4px 4px 0 var(--shadow-color)}.about-body{flex:1;background-color:var(--bg-card);border:2px solid var(--border);box-shadow:4px 4px 0 var(--shadow-color);padding:1rem 1.2rem}.mobile-only{display:none}.about-body .about-text{margin-bottom:0;font-style:italic;font-weight:500;line-height:1.7;letter-spacing:.01em}.coordinate-strip{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.8rem .5rem 0;padding:.32rem .55rem;border:2px solid var(--border);background:var(--section-accent-soft);box-shadow:3px 3px 0 var(--shadow-color);color:var(--text-primary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;font-weight:800;line-height:1.2;text-transform:uppercase;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.coordinate-strip:hover,.coordinate-strip:focus-visible{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--section-accent)}.coordinate-strip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.coordinate-strip span:last-child{position:relative;display:inline-grid;justify-items:end;color:var(--section-accent);min-width:min(21rem,54vw);overflow:hidden}.coordinate-strip span:last-child:before,.coordinate-strip span:last-child:after{grid-area:1 / 1;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .22s ease}.coordinate-strip span:last-child:before{content:"mapping systems, models, and histories"}.coordinate-strip span:last-child:after{content:attr(data-reveal);opacity:0;transform:translateY(.7rem)}.coordinate-strip:hover span:last-child:before,.coordinate-strip:focus-visible span:last-child:before{opacity:0;transform:translateY(-.7rem)}.coordinate-strip:hover span:last-child:after,.coordinate-strip:focus-visible span:last-child:after{opacity:1;transform:translateY(0)}.coordinate-strip span:last-child{font-size:0}.coordinate-strip span:last-child:before,.coordinate-strip span:last-child:after{font-size:.72rem}.personal-shelf{display:grid;grid-template-columns:auto 1fr;align-items:stretch;gap:0;margin:.65rem .5rem 0;border:2px solid var(--border);background:var(--bg-card);box-shadow:3px 3px 0 var(--shadow-color);overflow:hidden}.shelf-label{display:flex;align-items:center;padding:.45rem .6rem;border-right:2px solid var(--border);background:var(--section-accent);color:var(--accent-contrast);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;font-weight:900;line-height:1;text-transform:uppercase;white-space:nowrap}.shelf-items{display:flex;align-items:stretch;flex-wrap:wrap;gap:0}.shelf-items>span{position:relative;display:inline-flex;align-items:center;gap:.32rem;flex:1 1 11.5rem;min-height:100%;padding:.32rem .5rem .32rem .72rem;border-right:2px solid var(--border);color:var(--text-secondary);font-size:.74rem;font-weight:700;line-height:1.2;overflow-wrap:normal;overflow:hidden;white-space:nowrap}.shelf-items>span:last-child{border-right:0}.shelf-object-book{flex:1.15 1 12.2rem}.shelf-object-record{flex:.9 1 9.6rem}.shelf-object-ticket{flex:.72 1 7.4rem}.shelf-object-cartridge{flex:1.08 1 11.7rem}.ocarina-notes{position:absolute;inset:auto .35rem .35rem auto;display:grid;grid-template-columns:repeat(5,.42rem);gap:.18rem;pointer-events:none}.ocarina-notes span{width:.42rem;height:.42rem;border:2px solid var(--border);background:var(--section-accent);box-shadow:1px 1px 0 var(--shadow-color);opacity:0;transform:translateY(.55rem) scale(.65)}.shelf-object-cartridge.is-ocarina-active{color:var(--text-primary);background:linear-gradient(90deg,var(--section-accent) 0 .22rem,transparent .22rem),linear-gradient(90deg,color-mix(in srgb,var(--section-accent) 24%,transparent),transparent 62%),var(--bg-card)}.shelf-object-cartridge.is-ocarina-active .ocarina-notes span{animation:ocarinaNote 1.45s cubic-bezier(.18,.8,.2,1) both}.shelf-object-cartridge.is-ocarina-active .ocarina-notes span:nth-child(2){animation-delay:.09s}.shelf-object-cartridge.is-ocarina-active .ocarina-notes span:nth-child(3){animation-delay:.18s}.shelf-object-cartridge.is-ocarina-active .ocarina-notes span:nth-child(4){animation-delay:.27s}.shelf-object-cartridge.is-ocarina-active .ocarina-notes span:nth-child(5){animation-delay:.36s}.shelf-object{background:linear-gradient(90deg,var(--section-accent) 0 .22rem,transparent .22rem),var(--bg-card);transition:background-color .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease}.shelf-object:hover{background:linear-gradient(90deg,var(--section-accent) 0 .22rem,transparent .22rem),var(--section-accent-soft);box-shadow:inset 0 -3px 0 var(--section-accent);color:var(--text-primary);transform:translate(-1px,-2px)}.shelf-object i{position:relative;display:inline-block;flex:0 0 auto;width:1.28rem;height:1.28rem;border:2px solid var(--border);background:var(--bg-primary);box-shadow:2px 2px 0 var(--shadow-color);transition:background-color .18s ease,transform .18s ease;z-index:1}.shelf-object i:before,.shelf-object i:after{content:"";position:absolute;display:block}.shelf-object:hover i{transform:translateY(-1px) rotate(-2deg)}.shelf-object-book i{background:linear-gradient(90deg,var(--section-accent) 0 28%,transparent 28%),var(--bg-primary)}.shelf-object-book i:before{left:.45rem;top:.22rem;width:.42rem;height:.08rem;background:var(--border);box-shadow:0 .28rem 0 var(--border),0 .56rem 0 var(--border)}.shelf-object-record i{border-radius:50%;background:radial-gradient(circle,var(--bg-card) 0 17%,var(--border) 18% 28%,transparent 29%),radial-gradient(circle,transparent 0 48%,var(--border) 49% 56%,transparent 57%),var(--section-accent-soft)}.shelf-object-record i:after{left:.42rem;top:.42rem;width:.18rem;height:.18rem;border-radius:50%;background:var(--section-accent)}.shelf-object-ticket i{width:1.48rem;background:linear-gradient(90deg,transparent 0 28%,var(--border) 28% 34%,transparent 34%),var(--section-accent-soft)}.shelf-object-ticket i:before,.shelf-object-ticket i:after{top:.38rem;width:.24rem;height:.38rem;border:2px solid var(--border);border-radius:50%;background:var(--bg-card)}.shelf-object-ticket i:before{left:-.16rem}.shelf-object-ticket i:after{right:-.16rem}.shelf-object-cartridge i{width:1.42rem;height:1.16rem;transform:translateY(1px);background:linear-gradient(var(--section-accent) 0 34%,transparent 34%),var(--bg-primary)}.shelf-object-cartridge:hover i{transform:translateY(-1px) rotate(2deg)}.shelf-object-cartridge i:before{left:.22rem;bottom:.15rem;width:.72rem;height:.16rem;background:var(--border)}.shelf-items strong{color:var(--text-primary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.62rem;font-weight:900;text-transform:uppercase}.tab-bar{display:flex;gap:0;margin-top:1rem;padding-left:.5rem;align-items:flex-end;position:relative;z-index:3}.nav-tab{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-primary);font-weight:700;font-size:.85rem;padding:.5rem 1.2rem;border:3px solid var(--border);border-bottom:none;background:var(--bg-primary);box-shadow:2px -2px 0 var(--shadow-color);transition:background-color .15s ease,box-shadow .18s ease,transform .18s ease,top .18s ease;text-transform:uppercase;letter-spacing:.03em;position:relative;top:3px;margin-right:-1px}.tab-icon{position:relative;display:inline-block;width:.9rem;height:.7rem;flex:0 0 auto;border:2px solid var(--border);background:var(--bg-secondary);box-shadow:1px 1px 0 var(--shadow-color);transform:translateY(1px)}.tab-icon:before{content:"";position:absolute;left:-2px;top:-6px;width:.48rem;height:.28rem;border:2px solid var(--border);border-bottom:0;background:var(--bg-secondary)}.tab-icon:after{content:"";position:absolute;right:-6px;top:-5px;width:6px;height:6px;border:2px solid var(--border);background:var(--bg-card);box-shadow:1px 1px 0 var(--shadow-color)}.nav-tab:hover{background-color:var(--accent-hover);color:var(--accent-contrast);transform:translateY(-3px);box-shadow:3px -3px 0 var(--shadow-color)}.nav-tab.active{background-color:var(--bg-card);color:var(--text-primary);z-index:2;top:0;transform:translate(-2px,-2px);box-shadow:5px -5px 0 var(--section-accent)}.nav-tab.active .tab-icon,.nav-tab.active .tab-icon:before{background:var(--section-accent)}.nav-tab.active .tab-icon:after{background:var(--accent-hover)}.folder-body{background-color:var(--bg-card);border:3px solid var(--border);box-shadow:6px 6px 0 var(--shadow-color);padding:2rem;position:relative;z-index:2;transition:box-shadow .2s ease,transform .2s ease}.folder-body:before,.folder-body:after{content:"";position:absolute;border:3px solid var(--border);background:var(--section-accent-soft);pointer-events:none;z-index:-1}.folder-body:before{inset:10px -10px -10px 10px;box-shadow:4px 4px 0 var(--shadow-color)}.folder-body:after{inset:20px -18px -18px 20px;opacity:.55}.folder:has(.nav-tab:hover) .folder-body{transform:translate(-1px,-1px);box-shadow:8px 8px 0 var(--shadow-color)}.tab-content:not([hidden]){animation:folderContentIn .26s ease-out}.folder-body.is-switching{animation:folderSwitch .34s cubic-bezier(.2,.8,.2,1)}.folder-body.is-switching:before{animation:folderSheetLift .34s cubic-bezier(.2,.8,.2,1)}.folder-body.is-switching:after{animation:folderSheetShuffle .34s cubic-bezier(.2,.8,.2,1)}@keyframes folderContentIn{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes folderSwitch{0%{transform:translate(0)}45%{transform:translate(-4px,-3px) rotate(-.25deg)}to{transform:translate(0)}}@keyframes folderSheetLift{0%{inset:10px -10px -10px 10px}45%{inset:6px -14px -12px 14px}to{inset:10px -10px -10px 10px}}@keyframes folderSheetShuffle{0%{inset:20px -18px -18px 20px}45%{inset:16px -22px -20px 24px}to{inset:20px -18px -18px 20px}}@keyframes appBootSettle{0%{transform:translateY(7px) scale(.992)}58%{transform:translateY(7px) scale(.992)}to{transform:translateY(0) scale(1)}}@keyframes bootScreen{0%{opacity:1;clip-path:inset(0 0 0 0)}18%{opacity:1;clip-path:inset(0 0 0 0)}76%{opacity:1;clip-path:inset(0 0 0 0)}to{opacity:0;clip-path:inset(0 0 100% 0);visibility:hidden}}@keyframes bootTextPulse{0%,to{transform:translate(0)}50%{transform:translate(-1px,-1px)}}@keyframes ocarinaNote{0%{opacity:0;transform:translateY(.55rem) scale(.65)}18%{opacity:1;transform:translateY(0) scale(1)}62%{opacity:1;transform:translateY(-.36rem) scale(1)}to{opacity:0;transform:translateY(-.85rem) scale(.72)}}@media(prefers-reduced-motion:reduce){.app,.boot-overlay,.boot-overlay span,.nav-tab,.folder-body,.tab-content:not([hidden]),.honor-sticker,.folder-body.is-switching,.folder-body.is-switching:before,.folder-body.is-switching:after,.coordinate-strip,.coordinate-strip span:last-child:before,.coordinate-strip span:last-child:after,.shelf-object-cartridge.is-ocarina-active .ocarina-notes span{animation:none;transition:none}.boot-overlay{display:none}}.about-text{font-size:1.05rem;color:var(--text-primary);line-height:1.6;font-weight:500;margin-bottom:1.5rem}.cta-button{display:inline-block;padding:.6rem 1.5rem;background-color:var(--accent);color:var(--accent-contrast);font-weight:800;font-size:.95rem;text-decoration:none;border:2px solid var(--border);box-shadow:3px 3px 0 var(--shadow-color);transition:all .2s ease;text-transform:uppercase}.cta-button:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--shadow-color);background-color:var(--accent-hover);color:var(--accent-contrast)}.cta-button.secondary{background-color:var(--bg-primary);color:var(--text-primary)}.cta-button.secondary:hover{background-color:var(--bg-secondary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.project-card{background-color:var(--bg-primary);border:2px solid var(--border);padding:1.2rem;transition:all .2s ease;box-shadow:4px 4px 0 var(--shadow-color);display:flex;flex-direction:column;position:relative;overflow:hidden}.project-card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--accent)}.project-card:before{content:"";position:absolute;left:.75rem;top:.75rem;width:10px;height:10px;border:2px solid var(--border);background:var(--project-accent, var(--accent));box-shadow:2px 2px 0 var(--shadow-color);transform:rotate(45deg);transition:transform .2s ease,background-color .2s ease}.project-card:hover:before{transform:translate(-2px,-2px) rotate(45deg) scale(1.15)}.project-card[data-motif=model-trace]{--project-accent: var(--accent);--project-soft: var(--bg-secondary);--project-line: color-mix(in srgb, var(--accent) 38%, transparent)}.project-card[data-motif=route-map]{--project-accent: #2f6f73;--project-soft: #d9ece6;--project-line: color-mix(in srgb, #2f6f73 38%, transparent)}.project-card[data-motif=archive-map]{--project-accent: #4267a8;--project-soft: #dbe9ef;--project-line: color-mix(in srgb, #4267a8 38%, transparent)}.project-card[data-motif=survey-grid]{--project-accent: #9b5c13;--project-soft: #eee4c7;--project-line: color-mix(in srgb, #9b5c13 38%, transparent)}.project-card[data-motif=sheet-model]{--project-accent: #4b6b2a;--project-soft: #dfead4;--project-line: color-mix(in srgb, #4b6b2a 38%, transparent)}[data-theme=dark] .project-card[data-motif=route-map]{--project-accent: #67e8f9;--project-soft: #13303a;--project-line: color-mix(in srgb, #67e8f9 42%, transparent)}[data-theme=dark] .project-card[data-motif=archive-map]{--project-accent: #93c5fd;--project-soft: #172a45;--project-line: color-mix(in srgb, #93c5fd 42%, transparent)}[data-theme=dark] .project-card[data-motif=survey-grid]{--project-accent: #fbbf24;--project-soft: #2f2a16;--project-line: color-mix(in srgb, #fbbf24 42%, transparent)}[data-theme=dark] .project-card[data-motif=sheet-model]{--project-accent: #86efac;--project-soft: #162e24;--project-line: color-mix(in srgb, #86efac 42%, transparent)}.artifact-strip{display:flex;justify-content:space-between;gap:.6rem;margin:0 0 .7rem 1.25rem;color:var(--text-primary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;font-weight:900;line-height:1;text-transform:uppercase}.artifact-strip span{display:inline-flex;padding:.16rem .38rem;border:2px solid var(--border);background:var(--project-soft, var(--bg-secondary));box-shadow:2px 2px 0 var(--shadow-color)}.artifact-strip span:last-child{color:var(--project-accent, var(--accent))}.project-postcard{position:relative;min-height:54px;margin-bottom:.85rem;border:2px solid var(--border);background:linear-gradient(90deg,var(--project-line, var(--dot-color)) 1px,transparent 1px),linear-gradient(var(--project-line, var(--dot-color)) 1px,transparent 1px),var(--project-soft, var(--bg-secondary));background-size:22px 22px;box-shadow:3px 3px 0 var(--shadow-color);overflow:hidden}.project-postcard span{position:absolute;display:block;border:2px solid var(--border);background:var(--bg-card);box-shadow:2px 2px 0 var(--shadow-color)}.project-card[data-motif=model-trace] .project-postcard span:nth-child(1){left:12px;top:13px;width:24px;height:24px;border-radius:50%}.project-card[data-motif=model-trace] .project-postcard span:nth-child(2){left:52px;top:18px;width:54px;height:8px;background:var(--project-accent)}.project-card[data-motif=model-trace] .project-postcard span:nth-child(3){right:12px;top:12px;width:42px;height:28px}.project-card[data-motif=route-map] .project-postcard span:nth-child(1){left:14px;top:14px;width:18px;height:18px;background:var(--project-accent);border-radius:50%}.project-card[data-motif=route-map] .project-postcard span:nth-child(2){left:34px;top:23px;width:74px;height:4px;background:var(--project-accent);transform:rotate(-10deg)}.project-card[data-motif=route-map] .project-postcard span:nth-child(3){right:18px;top:12px;width:20px;height:20px;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.project-card[data-motif=archive-map] .project-postcard span:nth-child(1){left:12px;top:12px;width:44px;height:28px;background:var(--bg-card)}.project-card[data-motif=archive-map] .project-postcard span:nth-child(2){left:68px;top:12px;width:34px;height:28px;background:var(--project-accent)}.project-card[data-motif=archive-map] .project-postcard span:nth-child(3){right:12px;top:18px;width:50px;height:6px;background:var(--bg-card)}.project-card[data-motif=survey-grid] .project-postcard span{width:32px;height:18px}.project-card[data-motif=survey-grid] .project-postcard span:nth-child(1){left:12px;top:12px}.project-card[data-motif=survey-grid] .project-postcard span:nth-child(2){left:54px;top:22px;background:var(--project-accent)}.project-card[data-motif=survey-grid] .project-postcard span:nth-child(3){right:14px;top:12px}.project-card[data-motif=sheet-model] .project-postcard span:nth-child(1){left:12px;top:11px;width:100px;height:30px;background:linear-gradient(90deg,transparent 31%,var(--border) 31% 34%,transparent 34% 65%,var(--border) 65% 68%,transparent 68%),linear-gradient(transparent 48%,var(--border) 48% 55%,transparent 55%),var(--bg-card)}.project-card[data-motif=sheet-model] .project-postcard span:nth-child(2){right:48px;top:13px;width:28px;height:26px;background:var(--project-accent)}.project-card[data-motif=sheet-model] .project-postcard span:nth-child(3){right:12px;top:20px;width:22px;height:8px}.project-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;border-bottom:2px solid var(--border);padding-bottom:.6rem}.project-card h3{font-size:1.1rem;margin:0}.project-title-link{color:var(--text-primary);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent);text-underline-offset:3px}.project-title-link:hover{background-color:var(--accent);color:var(--accent-contrast);text-decoration:none}.title-github-link{display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:color .2s ease;flex-shrink:0;padding:4px;border:2px solid var(--border);background:var(--bg-secondary)}.title-github-link:hover{background-color:var(--accent);color:var(--accent-contrast)}.project-card p{color:var(--text-secondary);margin-bottom:1rem;font-weight:500;font-size:.9rem;flex-grow:1}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{padding:.2rem .5rem;background-color:var(--bg-card);border:2px solid var(--border);font-size:.75rem;font-weight:700;color:var(--text-primary);box-shadow:2px 2px 0 var(--shadow-color)}.project-actions{display:flex;justify-content:flex-end;margin-top:1rem}.project-visit-link,.timeline-visit-link{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.35rem .65rem;background:var(--accent);border:2px solid var(--border);box-shadow:3px 3px 0 var(--shadow-color);color:var(--accent-contrast);font-size:.78rem;font-weight:900;line-height:1;text-decoration:none;text-transform:uppercase}.project-visit-link:hover,.timeline-visit-link:hover{background:var(--accent-hover);color:var(--accent-contrast);text-decoration:none}.see-more-link{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1.5rem;padding:.5rem 1rem;background-color:var(--bg-primary);border:2px solid var(--border);box-shadow:3px 3px 0 var(--shadow-color);font-weight:700;font-size:.85rem;text-decoration:none;width:fit-content;margin-left:auto;margin-right:auto}.see-more-link:hover{background-color:var(--accent);color:var(--accent-contrast);transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--shadow-color)}.timeline{position:relative;padding-left:1.5rem;border-left:3px solid var(--border)}.timeline-item{position:relative;margin-bottom:2rem;padding-left:1.5rem}.timeline-item:last-child{margin-bottom:0}.timeline-item:before{content:"";position:absolute;left:-2rem;top:.4rem;width:14px;height:14px;background-color:var(--section-accent);border:2px solid var(--border)}.timeline-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.3rem}.timeline-item h3{font-size:1.1rem;margin-bottom:0;background:var(--section-accent-soft);display:inline-block;padding:.1rem .4rem;border:2px solid var(--border)}.timeline-item .company{color:var(--text-primary);font-weight:800;font-size:.95rem;text-transform:uppercase;display:block;margin-bottom:.1rem}.timeline-item .date{color:var(--text-secondary);font-family:monospace;font-weight:700;font-size:.85rem;margin-bottom:.5rem;display:block}.timeline-item p{font-size:.9rem}.honors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.honor-sticker{position:relative;display:flex;min-height:210px;flex-direction:column;gap:.55rem;background:var(--bg-primary);border:2px solid var(--border);padding:1.25rem 1rem 1rem;box-shadow:4px 4px 0 var(--shadow-color);transform:rotate(var(--tilt, -1deg));transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.honor-sticker:nth-child(2n){--tilt: 1.2deg;background:var(--bg-secondary)}.honor-sticker:nth-child(3n){--tilt: -1.8deg}.honor-sticker:hover{transform:translate(-2px,-2px) rotate(0);box-shadow:7px 7px 0 var(--accent);background:var(--bg-card)}.honor-pin{position:absolute;left:50%;top:-11px;width:22px;height:22px;transform:translate(-50%) rotate(45deg);border:2px solid var(--border);background:var(--section-accent);box-shadow:2px 2px 0 var(--shadow-color)}.honor-meta{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.45rem}.honor-date,.honor-category{align-self:flex-start;border:2px solid var(--border);padding:.15rem .45rem;box-shadow:2px 2px 0 var(--shadow-color);color:var(--text-primary);font-family:monospace;font-size:.72rem;font-weight:800;text-transform:uppercase}.honor-date{background:var(--bg-card)}.honor-category{background:var(--accent);color:var(--accent-contrast)}.honor-sticker[data-category=academic] .honor-category{background:var(--text-primary);color:var(--bg-primary)}.honor-sticker[data-category=scholarship] .honor-category,.honor-sticker[data-category=economics] .honor-category{background:var(--bg-secondary);color:var(--text-primary)}.honor-sticker[data-category=history] .honor-category,.honor-sticker[data-category=quiz-bowl] .honor-category{background:var(--bg-card);color:var(--accent)}.honor-sticker h3{border-bottom:2px solid var(--border);padding-bottom:.55rem;font-size:1rem}.honor-org{color:var(--text-primary);font-size:.78rem;font-weight:900;text-transform:uppercase}.honor-sticker p{color:var(--text-secondary);font-size:.84rem;font-weight:500;line-height:1.5}.skills-grid{display:flex;flex-direction:column;gap:1.5rem}.skill-category{display:flex;flex-direction:column;gap:1rem;background:var(--bg-primary);border:2px solid var(--border);padding:1.2rem;box-shadow:4px 4px 0 var(--shadow-color)}.skill-category h3{font-size:.9rem;font-weight:800;color:var(--text-primary);text-transform:uppercase;border-bottom:2px solid var(--border);padding-bottom:.6rem;margin-bottom:0}.skill-list{display:flex;flex-wrap:wrap;gap:1rem;align-items:start}.skill-item-icon{display:grid;grid-template-rows:56px minmax(2.65rem,auto);justify-items:center;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease;width:112px}.skill-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:var(--bg-card);border:2px solid var(--border);transition:all .2s ease;box-shadow:3px 3px 0 var(--shadow-color)}.skill-icon img{width:28px;height:28px;object-fit:contain}.skill-item-icon:hover .skill-icon{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--section-accent);background-color:var(--section-accent-soft)}.skill-item-icon span{display:flex;align-items:center;justify-content:center;min-height:2.65rem;font-weight:700;font-size:.7rem;text-align:center;background:var(--text-primary);color:var(--bg-primary);padding:.16rem .36rem;line-height:1.25}.hover-scale,.hover-lift,.hover-scale-sm,.hover-lift-sm{transition:transform .2s,box-shadow .2s}.hover-scale:hover,.hover-lift:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--section-accent)}.hover-scale-sm:hover,.hover-lift-sm:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--section-accent)}.site-signature{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem .5rem 0;padding:.45rem .6rem;border:2px solid var(--border);background:var(--bg-card);box-shadow:3px 3px 0 var(--shadow-color);color:var(--text-secondary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;font-weight:800;line-height:1.2;text-transform:uppercase}@media(max-width:768px){.app{padding:.75rem}.math-motifs{display:none}.folder-header{flex-direction:column;align-items:flex-start;gap:.35rem}.identity-lockup{gap:.25rem}.identity-stamp{font-size:.54rem;padding:.12rem .34rem;box-shadow:1px 1px 0 var(--shadow-color)}.folder-header h1{-webkit-text-stroke:0;font-size:1.8rem;text-shadow:2px 2px 0 var(--accent)}.social-link,.theme-toggle{width:34px;height:34px;box-shadow:2px 2px 0 var(--shadow-color)}.resume-button{height:34px;padding:0 .5rem;font-size:.7rem;box-shadow:2px 2px 0 var(--shadow-color);gap:.25rem}.resume-button svg{width:16px;height:16px}.social-link svg{width:16px;height:16px}.theme-toggle svg{width:16px;height:16px}.hero-row{flex-direction:row;align-items:center;gap:.55rem;padding:0 .25rem}.hero-right{gap:.25rem}.headshot{width:72px;height:72px;box-shadow:3px 3px 0 var(--shadow-color)}.desktop-only{display:none}.mobile-only{display:block;margin-top:.75rem;padding:0 .25rem}.coordinate-strip{align-items:flex-start;flex-direction:column;gap:.25rem;margin:.7rem .25rem 0;padding:.3rem .42rem;font-size:.58rem;box-shadow:2px 2px 0 var(--shadow-color)}.coordinate-strip span:last-child{justify-items:start;min-width:100%}.coordinate-strip span:last-child:before,.coordinate-strip span:last-child:after{font-size:.58rem}.personal-shelf{grid-template-columns:1fr;margin:.55rem .25rem 0;box-shadow:2px 2px 0 var(--shadow-color)}.shelf-label{border-right:0;border-bottom:2px solid var(--border);padding:.32rem .42rem;font-size:.56rem}.shelf-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.shelf-items>span{min-height:0;padding:.32rem .42rem;font-size:.68rem;border-right:2px solid var(--border);border-bottom:2px solid var(--border);flex-direction:column;align-items:flex-start;gap:.12rem;overflow-wrap:anywhere;white-space:normal}.shelf-object i{width:1.1rem;height:1.1rem;box-shadow:1px 1px 0 var(--shadow-color)}.shelf-object-ticket i{width:1.28rem}.shelf-object-cartridge i{width:1.2rem;height:1rem}.shelf-items>span:nth-child(2n){border-right:0}.shelf-items>span:nth-last-child(-n+2){border-bottom:0}.shelf-items strong{font-size:.52rem}.about-text{font-size:.8rem}.tab-bar{flex-wrap:wrap;gap:0;padding-left:.25rem}.nav-tab,.nav-tab.active{font-size:.65rem;padding:.35rem .6rem;gap:.25rem;border-width:2px;top:2px;box-shadow:2px -2px 0 var(--shadow-color)}.tab-icon{width:.7rem;height:.55rem;border-width:1.5px}.tab-icon:before{top:-5px;width:.38rem;height:.22rem;border-width:1.5px}.tab-icon:after{display:none}.nav-tab:hover,.nav-tab.active{transform:translateY(-1px)}.folder-body{padding:1rem;border-width:2px;box-shadow:4px 4px 0 var(--shadow-color)}.folder-body:before,.folder-body:after{border-width:2px}.folder-body:before{inset:6px -6px -6px 6px}.folder-body:after{inset:12px -10px -10px 12px}.projects-grid{grid-template-columns:1fr;gap:1rem}.project-card{padding:.8rem;box-shadow:3px 3px 0 var(--shadow-color)}.project-card:before{left:.55rem;top:.55rem;width:8px;height:8px}.artifact-strip{align-items:flex-start;flex-direction:column;gap:.35rem;margin:0 0 .6rem 1rem;font-size:.56rem}.project-postcard{min-height:46px;margin-bottom:.7rem;background-size:18px 18px}.project-card h3{font-size:.95rem}.project-card p{font-size:.8rem;margin-bottom:.75rem}.tech-tag{font-size:.65rem;padding:.15rem .4rem}.project-actions,.timeline-item-header{justify-content:flex-start}.project-visit-link,.timeline-visit-link{font-size:.68rem;padding:.3rem .55rem}.see-more-link{font-size:.75rem;margin-top:1rem;padding:.4rem .8rem}.timeline{padding-left:1rem;border-left-width:2px}.timeline-item{margin-bottom:1.5rem;padding-left:1rem}.timeline-item:before{width:10px;height:10px;left:-1.45rem;top:.35rem}.timeline-item h3{font-size:.85rem;padding:.1rem .3rem}.timeline-item-header{flex-wrap:wrap;gap:.45rem;margin-bottom:.25rem}.timeline-item .company{font-size:.8rem}.timeline-item .date{font-size:.75rem;margin-bottom:.3rem}.timeline-item p{font-size:.8rem}.honors-grid{grid-template-columns:1fr;gap:.85rem}.honor-sticker{min-height:0;padding:1rem .8rem .8rem;transform:none;box-shadow:3px 3px 0 var(--shadow-color)}.honor-sticker:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--accent)}.honor-date,.honor-category{font-size:.65rem}.honor-sticker h3{font-size:.85rem}.honor-org,.honor-sticker p{font-size:.75rem}.skill-category{padding:.8rem;gap:.75rem;box-shadow:3px 3px 0 var(--shadow-color)}.skill-category h3{font-size:.75rem;padding-bottom:.4rem;border-bottom-width:2px}.skills-grid{gap:1rem}.skill-list{gap:.75rem}.skill-item-icon{grid-template-rows:44px minmax(2.2rem,auto);width:78px;gap:.3rem}.skill-icon{width:38px;height:38px;box-shadow:2px 2px 0 var(--shadow-color)}.skill-icon img{width:22px;height:22px}.skill-item-icon span{font-size:.55rem;min-height:2.2rem;padding:.14rem .24rem}.site-signature{align-items:flex-start;flex-direction:column;gap:.25rem;margin:.75rem .25rem 0;padding:.35rem .45rem;font-size:.58rem;box-shadow:2px 2px 0 var(--shadow-color)}.resume-actions{flex-wrap:wrap;gap:.5rem;justify-content:center}.cta-button{font-size:.75rem;padding:.4rem 1rem}}@media(max-width:400px){.nav-tab{font-size:.6rem;padding:.3rem .5rem}.about-text{font-size:.75rem}}
