*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0908;--bg-hover: #141210;--text: #ede8e0;--muted: #a8a098;--dim: #6b6358;--line: rgba(237, 232, 224, .1);--accent: #f59e0b}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased}body{min-height:100vh}a{color:inherit;text-decoration:none}.page-shell{width:min(1160px,calc(100vw - 2.5rem));margin:0 auto;padding:4rem 0 8rem}.hero{padding:5rem 0;border-bottom:1px solid var(--line);margin-bottom:5rem;display:flex;align-items:center;justify-content:space-between;gap:3rem}.hero-left{flex:1;min-width:0}.hero-right{flex-shrink:0;display:flex;flex-direction:column;gap:1rem}.stat-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:2rem 2.5rem;border:1px solid rgba(245,158,11,.25);border-radius:12px;text-decoration:none;background:#f59e0b0a;box-shadow:0 0 40px #f59e0b1f,0 0 80px #f59e0b0d;transition:box-shadow .2s ease,background .2s ease}.stat-card:hover{background:#f59e0b14;box-shadow:0 0 60px #f59e0b33,0 0 120px #f59e0b14}.stat-card--project{border-color:#ede8e01a;background:#ede8e005;box-shadow:none}.stat-card--project:hover{background:#ede8e00a;box-shadow:none}.stat-card--project .stat-pkg{color:var(--text)}.stat-card--project .stat-label,.stat-card--project .stat-number{color:var(--muted)}.stat-pkg{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--accent);word-break:break-all}.stat-number{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:1rem;font-weight:400;color:var(--muted)}.stat-label{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.eyebrow{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:1.75rem}.hero h1{font-family:Syne,system-ui,sans-serif;font-size:clamp(4rem,10.5vw,9.5rem);font-weight:800;line-height:.88;letter-spacing:-.04em;color:var(--text);margin-bottom:3rem}.lead{max-width:38rem;font-size:1.1rem;line-height:1.8;color:var(--muted);margin-bottom:2.5rem}.hero-links a,.card-links a,.star-count{display:inline-flex;align-items:center;gap:.4rem}.star-count{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;letter-spacing:.04em;color:var(--dim)}.hero-links a{font-family:Syne,system-ui,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.02em;color:#0a0908;background:var(--accent);padding:.75rem 1.75rem;border-radius:4px;transition:opacity .15s}.hero-links a:hover{opacity:.85}.exp-timeline{border-left:1px solid var(--line);margin-top:0}.exp-row{display:grid;grid-template-columns:14rem 1fr;gap:0 2.5rem;padding:2rem 0 2rem 2.5rem;border-bottom:1px solid var(--line);position:relative;transition:background .18s}.exp-row:before{content:"";position:absolute;left:-5px;top:2.4rem;width:9px;height:9px;border-radius:50%;background:var(--dim);border:2px solid var(--bg)}.exp-row--current:before{background:var(--accent);box-shadow:0 0 10px #f59e0b99}.exp-row--current{background:#f59e0b08}.exp-period{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.88rem;color:var(--muted);line-height:1.5;padding-top:.15rem;display:flex;flex-direction:column;gap:.35rem}.exp-now{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.65rem;letter-spacing:.15em;color:var(--accent);background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);padding:.15rem .45rem;border-radius:3px;width:fit-content}.exp-body{display:flex;flex-direction:column;gap:.6rem}.exp-header{display:flex;flex-direction:column;gap:.2rem}.exp-company{font-family:Syne,system-ui,sans-serif;font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.exp-company a{color:var(--text);border-bottom:1px solid var(--dim);transition:color .15s,border-color .15s}.exp-company a:hover{color:var(--accent);border-color:var(--accent)}.exp-row--current .exp-company,.exp-row--current .exp-company a{color:var(--accent)}.exp-role{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.exp-desc{font-size:.95rem;line-height:1.75;color:var(--muted);max-width:52rem}.edu-certs-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-left:1px solid var(--line);margin-top:0}.exp-sub-label{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:1.25rem 0 1rem 2.5rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.cert-block .exp-sub-label{border-right:none}.edu-block{border-right:1px solid var(--line)}.edu-row{display:flex;gap:1.5rem;padding:1.25rem 1.5rem 1.25rem 2.5rem;border-bottom:1px solid var(--line);align-items:flex-start}.edu-period{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.82rem;color:var(--muted);flex-shrink:0;padding-top:.1rem;min-width:6rem}.edu-body{display:flex;flex-direction:column;gap:.2rem}.edu-institution{font-family:Syne,system-ui,sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.edu-field{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;letter-spacing:.02em;color:var(--text)}.cert-block{padding-bottom:0}.cert-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.cert-card{display:flex;flex-direction:column;gap:.4rem;padding:1.25rem 1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cert-card:nth-child(2n){border-right:none}.cert-card:nth-last-child(-n+2){border-bottom:none}.cert-name{font-size:1rem;font-weight:600;color:var(--text);line-height:1.4}.cert-id{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;letter-spacing:.06em;color:var(--text)}@media(max-width:768px){.exp-row{grid-template-columns:1fr;gap:.5rem;padding-left:2rem}.edu-certs-grid{grid-template-columns:1fr}.edu-block{border-right:none;border-bottom:1px solid var(--line)}.exp-sub-label{border-right:none}.edu-row{padding-left:2rem}}@media(max-width:500px){.cert-grid{grid-template-columns:1fr}.cert-card{border-right:none;border-bottom:1px solid var(--line)}.cert-card:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.cert-card:last-child{border-bottom:none}}.section-block{margin-top:4rem;scroll-margin-top:68px}.section-heading{margin-bottom:0}.section-heading h2{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);border-left:1px solid var(--line)}.project-card{display:flex;flex-direction:column;gap:1rem;padding:2.25rem 2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);transition:background .18s ease}.project-card:hover{background:var(--bg-hover)}.project-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;border:1px solid var(--line)}.card-topline{display:flex;justify-content:space-between;align-items:center;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.project-card h3{font-family:Syne,system-ui,sans-serif;font-size:1.6rem;font-weight:700;line-height:1.05;letter-spacing:-.025em;color:var(--text)}.subtitle{font-size:.875rem;color:var(--accent)}.project-card>p{font-size:1rem;line-height:1.75;color:var(--muted);flex:1}.tag-row{display:flex;gap:.4rem;flex-wrap:wrap}.tag{padding:.25rem .6rem;border:1px solid var(--dim);border-radius:3px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;letter-spacing:.03em;color:var(--muted)}.card-links{display:flex;gap:1.25rem}.card-links a{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.9rem;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--dim);padding-bottom:.1rem;transition:color .15s,border-color .15s}.card-links a:hover{color:var(--text);border-color:var(--muted)}.skill-group{margin-bottom:3rem;display:grid;grid-template-columns:1fr 1fr;column-gap:0}.skill-category{grid-column:1 / -1}.skill-category{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:1.5rem 0 .75rem;border-top:1px solid var(--line)}.skill-row{display:flex;align-items:center;gap:1.5rem;padding:.6rem 1rem;margin:0 -1rem;border-bottom:1px solid var(--line);cursor:default;transition:background .15s,padding-left .15s}.skill-row:hover{background:var(--accent);padding-left:1.5rem}.skill-index{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;color:var(--dim);min-width:1.5rem;transition:color .15s}.skill-name{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:clamp(1.1rem,1.8vw,1.6rem);font-weight:600;letter-spacing:-.01em;line-height:1.1;color:var(--text);transition:color .15s}.skill-row:hover .skill-index,.skill-row:hover .skill-name{color:#0a0908}@media(max-width:640px){.skill-group{grid-template-columns:1fr}}.skill-row--egg{justify-self:stretch;background:none;border:0;border-bottom:1px solid var(--line);font:inherit;color:inherit;text-align:left;cursor:pointer}.skill-row--egg .skill-index{color:var(--accent)}.skill-row--egg .skill-name{font-style:italic}.skill-row--egg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.skill-row--egg[aria-expanded=true] .skill-name{text-decoration:line-through;text-decoration-color:var(--accent);text-decoration-thickness:2px}.receipt{position:fixed;right:2.5rem;bottom:0;z-index:200;width:300px;pointer-events:none}.receipt-paper{--paper: #f4efe6;--ink: #1c1814;--faint: #6a6259;transform:translateY(110%) rotate(-1.2deg);transform-origin:bottom center;filter:drop-shadow(0 -6px 16px rgba(0,0,0,.55));transition:transform 1.1s steps(22,end),visibility 0s 1.1s;visibility:hidden}.receipt.printed .receipt-paper{transform:translateY(0) rotate(-1.2deg);transition-delay:0s,0s;visibility:visible;pointer-events:auto}.receipt-sheet{padding:1.6rem 1.2rem 2.6rem;margin-bottom:-14px;background:var(--paper);color:var(--ink);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.5}.rcpt-line{opacity:0}.receipt.printed .rcpt-line{animation:rcpt-ink .15s steps(2,end) both;animation-delay:calc(var(--i, 0) * 65ms + 60ms)}@keyframes rcpt-ink{0%{opacity:0}to{opacity:1}}.rcpt-head{font-size:.95rem;font-weight:700;letter-spacing:.14em;text-align:center}.rcpt-sub{text-align:center;text-transform:uppercase;letter-spacing:.08em}.rcpt-meta{display:flex;justify-content:space-between;margin-top:.6rem;color:var(--faint)}.rcpt-rule{border:0;border-top:1px dashed var(--ink);opacity:.45;margin:.6rem 0}.rcpt-item{display:block;padding:.15rem 0;color:inherit}.rcpt-item-row{display:flex;align-items:baseline;gap:.4rem}.rcpt-item-name{font-weight:700;text-transform:uppercase;white-space:nowrap}.rcpt-item-dots{flex:1;min-width:1rem;border-bottom:1px dotted currentColor;transform:translateY(-3px)}.rcpt-item-note{display:block;padding-left:.75rem;font-size:.72rem;color:var(--faint)}.rcpt-item:hover .rcpt-item-name,.rcpt-all:hover{background:var(--ink);color:var(--paper)}.rcpt-total{display:flex;justify-content:space-between;text-transform:uppercase}.rcpt-thanks{margin:.6rem 0;text-align:center;text-transform:uppercase;letter-spacing:.1em}.rcpt-all{display:block;text-align:center;text-decoration:underline;text-underline-offset:3px}.rcpt-barcode{height:34px;margin-top:1rem;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px,var(--ink) 14px 15px,transparent 15px 19px)}@media(max-width:640px){.receipt{right:50%;transform:translate(50%);width:min(300px,calc(100vw - 2rem))}}@media(prefers-reduced-motion:reduce){.receipt-paper{transition-duration:.01s,0s}.receipt.printed .rcpt-line{animation:none;opacity:1}}.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line)}.pkg-card{display:flex;flex-direction:column;gap:.6rem;padding:1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);transition:background .18s ease}.pkg-card:hover{background:var(--bg-hover)}.pkg-topline{display:flex;justify-content:space-between;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.pkg-card h3{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.95rem;font-weight:600;color:var(--accent);letter-spacing:-.01em}.pkg-card>p{font-size:.9rem;line-height:1.65;color:var(--muted);flex:1}.pkg-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.pkg-version{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.76rem;color:var(--dim)}@media(max-width:800px){.pkg-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.pkg-grid{grid-template-columns:1fr}}.contact-list{border-left:1px solid var(--line)}.contact-row{display:flex;align-items:center;gap:2rem;padding:1.5rem 1.5rem 1.5rem 2.5rem;border-bottom:1px solid var(--line);text-decoration:none;transition:background .15s,padding-left .15s}.contact-row:hover{background:var(--bg-hover);padding-left:3rem}.contact-label{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);min-width:5rem}.contact-value{font-family:Syne,system-ui,sans-serif;font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:700;letter-spacing:-.02em;color:var(--text);flex:1;transition:color .15s}.contact-arrow{font-size:1.2rem;color:var(--dim);transition:color .15s,transform .15s}.contact-row:hover .contact-value{color:var(--accent)}.contact-row:hover .contact-arrow{color:var(--accent);transform:translate(3px,-3px)}@media(max-width:640px){.contact-row{gap:1rem;padding-left:1.5rem}.contact-row:hover{padding-left:2rem}.contact-label{display:none}}#lightbox{display:none;position:fixed;inset:0;z-index:999;background:#000000e0;align-items:center;justify-content:center;cursor:zoom-out}#lightbox.open{display:flex}#lightbox-img{max-width:min(92vw,1200px);max-height:90vh;object-fit:contain;border-radius:4px;box-shadow:0 32px 80px #0009}@media(max-width:800px){.project-grid{grid-template-columns:1fr}}@media(max-width:768px){.hero{flex-direction:column;align-items:flex-start}.hero-right{align-self:stretch;flex-direction:row}.stat-card{flex:1;min-width:0;padding:1rem;gap:.25rem}.stat-label,.stat-number,.stat-pkg{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}}@media(max-width:640px){.page-shell{width:calc(100vw - 2rem);padding:2.5rem 0 5rem}.hero{padding:3rem 0;margin-bottom:3rem}.hero h1{font-size:clamp(3.25rem,14vw,5rem);margin-bottom:2rem}.project-card{padding:1.75rem 1.25rem}}
