*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--black:#080808;--white:#f0ede6;--gold:#af0;--gold-dim:#aaff001f;--muted:#f0ede659;--border:#f0ede614;--font:"Inter", sans-serif}html{scroll-behavior:smooth}body{background:var(--black);color:var(--white);font-family:var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}@media (width>=769px){html{scroll-snap-type:y mandatory}}#nav{z-index:100;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:16px 48px;transition:background .4s,border-color .4s;display:flex;position:fixed;top:0;left:0;right:0}#nav.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--border);background:#080808d9}.nav-logo{color:var(--white);align-items:center;text-decoration:none;display:flex}.nav-logo-full{font-family:var(--font);text-transform:uppercase;letter-spacing:-.01em;white-space:nowrap;font-size:clamp(14px,1.4vw,22px);font-weight:700;line-height:1}.nav-logo-asterisk{color:var(--gold);font-size:1em}.nav-logo-short{width:32px;height:32px;display:none}#nav.logo-collapsed .nav-logo-full{display:none}#nav.logo-collapsed .nav-logo-short{display:block}#nav ul{gap:48px;list-style:none;display:flex}#nav ul a{color:var(--white);font-family:var(--font);letter-spacing:.2em;text-transform:uppercase;opacity:.4;font-size:11px;text-decoration:none;transition:opacity .3s,color .3s}#nav ul a:hover{opacity:1;color:var(--gold)}.asterisk{color:var(--gold)}.outline{color:var(--white)}#character-reveal{height:100vh;position:relative}#three-canvas{width:100%;height:100vh;image-rendering:pixelated;image-rendering:crisp-edges;display:block;position:sticky;top:0}.bubbles-overlay{pointer-events:none;z-index:2;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100vh;margin-top:-100vh;padding-bottom:80px;display:flex;position:sticky;top:0}#resume-btn-overlay{pointer-events:none;z-index:3;justify-content:center;align-items:flex-end;width:100%;height:100vh;margin-top:-100vh;padding-bottom:80px;display:flex;position:sticky;top:0}.resume-btn{pointer-events:all;color:#f0ede68c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font);letter-spacing:.22em;text-transform:uppercase;background:#08080880;border:1px solid #aaff0059;border-radius:100px;align-items:center;gap:10px;padding:14px 32px;font-size:10px;text-decoration:none;transition:border-color .3s,color .3s,background .3s;display:inline-flex}.resume-btn:hover{border-color:var(--gold);color:var(--gold);background:#aaff0012}.resume-btn-arrow{opacity:.7;font-size:12px;transition:opacity .3s,transform .3s}.resume-btn:hover .resume-btn-arrow{opacity:1;transform:translate(2px,-2px)}.section-label{font-family:var(--font);letter-spacing:.4em;text-transform:uppercase;color:var(--gold);opacity:.7;align-items:center;gap:16px;font-size:10px;display:flex;position:absolute;top:160px}.section-label:before,.section-label:after{content:"";background:var(--gold);opacity:.4;width:32px;height:1px;display:block}.bubbles-container{width:100%;height:100%;position:relative}.bubble{opacity:0;pointer-events:all;border:1px solid var(--border);font-family:var(--font);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;color:var(--muted);white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08080866;border-radius:100px;flex-direction:column;align-items:center;gap:8px;padding:14px 28px;font-size:11px;transition:border-color .3s,color .3s,background .3s;display:flex;position:absolute;transform:translate(-50%,-50%)}.bubble:hover{border-color:var(--gold);color:var(--gold);background:#aaff0014}.bubble.active{background:var(--gold);color:var(--black);border-color:var(--gold);white-space:normal;text-align:center;z-index:10;max-width:240px;font-weight:700}.bubble-desc{font-family:var(--font);letter-spacing:.02em;color:var(--black);text-transform:none;max-width:200px;margin-top:4px;font-size:10px;font-weight:400;line-height:1.7;display:block}#portfolio{border-top:1px solid var(--border);z-index:2;background:var(--black);box-sizing:border-box;padding:80px 8vw 0;position:relative}.section-header{justify-content:space-between;align-items:flex-end;margin-bottom:32px;display:flex}.section-title{text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(32px,4vw,56px);font-weight:700;line-height:.9}.section-count{font-family:var(--font);letter-spacing:.2em;color:var(--gold);opacity:.5;padding-bottom:8px;font-size:11px}.portfolio-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.portfolio-card--empty{pointer-events:none;opacity:.35}.portfolio-card{cursor:pointer;border:1px solid var(--border);color:inherit;text-decoration:none;transition:border-color .3s;display:block;position:relative;overflow:hidden}.portfolio-card:hover{border-color:#aaff004d}.card-img{aspect-ratio:4/5;background:#111;width:100%;overflow:hidden}.card-img.placeholder{background:#111}.card-img img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.portfolio-card:hover .card-img img{transform:scale(1.04)}.card-info{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.card-info-text{flex:1;min-width:0}.card-number{font-family:var(--font);color:var(--gold);opacity:.5;letter-spacing:.2em;margin-bottom:6px;font-size:10px}.portfolio-card h3{letter-spacing:.02em;text-transform:uppercase;margin-bottom:4px;font-size:16px;font-weight:700}.portfolio-card p{font-family:var(--font);opacity:.3;letter-spacing:.15em;text-transform:uppercase;font-size:10px}.card-ext{opacity:.35;white-space:nowrap;flex-shrink:0;align-items:center;gap:0;max-width:14px;transition:max-width .35s,opacity .3s,gap .35s;display:inline-flex;overflow:hidden}.portfolio-card:hover .card-ext{opacity:1;gap:6px;max-width:120px}.card-ext-icon{width:14px;height:14px;color:var(--gold);flex-shrink:0}.card-ext-label{font-family:var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);opacity:0;font-size:9px;transition:opacity .25s}.portfolio-card:hover .card-ext-label{opacity:1;transition-delay:80ms}#contact{border-top:1px solid var(--border);background:var(--black);z-index:2;justify-content:center;align-items:center;min-height:100vh;padding:0 8vw;display:flex;position:relative;overflow:hidden}#contact-canvas{pointer-events:none;opacity:0;image-rendering:pixelated;image-rendering:crisp-edges;z-index:1;position:absolute;top:0;left:0;transform:translateY(4%);width:52%!important;height:100%!important}.speech-bubble-above{background:var(--gold-dim);color:var(--gold);font-family:var(--font);letter-spacing:.25em;text-transform:uppercase;opacity:0;z-index:3;pointer-events:none;white-space:nowrap;border:1px solid #aaff0040;border-radius:100px;align-items:center;padding:10px 24px;font-size:10px;font-weight:700;animation:4s ease-in-out infinite floatBubble;display:inline-flex;position:absolute;top:18%;left:26%;transform:translate(-50%)}.speech-bubble-above:after{content:"";border:5px solid #0000;border-top-color:#aaff0040;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}@keyframes floatBubble{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-10px)}}.contact-content{z-index:2;text-align:center;width:400px;margin-left:100px;margin-right:-10vw;position:relative;overflow:visible}.contact-content-inner{transform-origin:top;transform:scale(calc(var(--contact-scale,1) * .8));padding-top:200px}.phone-wrapper{z-index:10;pointer-events:none;width:100%;max-width:320px;height:440px;margin:0 auto -60px;position:relative;overflow:visible}#phone-canvas{width:100%;height:200%;image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:none;display:block;position:absolute;bottom:20px;left:15px}#contact-heading{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;text-align:center;z-index:1;max-width:320px;margin-bottom:8px;margin-left:auto;margin-right:auto;font-size:30px;font-weight:700;line-height:1;position:relative}.contact-meta{font-family:var(--font);opacity:.3;letter-spacing:.3em;text-transform:uppercase;justify-content:center;align-items:center;gap:24px;margin-bottom:40px;font-size:11px;display:flex}.contact-meta span{color:var(--gold);opacity:.6}.contact-btn{z-index:20;isolation:isolate;width:100%;max-width:320px;color:var(--gold);font-family:var(--font);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #af06;border-radius:100px;margin:0 auto;padding:18px 24px;font-size:11px;font-weight:700;transition:all .4s;display:block;position:relative}.contact-btn:hover{background:var(--gold);color:var(--black);border-color:var(--gold)}.contact-form-view{z-index:2;text-align:left;width:40%;margin-top:20px;display:none;position:absolute;right:12vw}.contact-form-view.visible{animation:.5s forwards fadeUp;display:block}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-heading{text-transform:uppercase;letter-spacing:-.03em;margin-bottom:40px;font-size:clamp(32px,4vw,56px);font-weight:700;line-height:.88}.form-group{margin-bottom:14px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.form-input{border:1px solid var(--border);width:100%;color:var(--white);font-family:var(--font);letter-spacing:.1em;resize:none;background:#f0ede608;border-radius:8px;outline:none;padding:16px 20px;font-size:11px;transition:border-color .3s}.form-input::placeholder{opacity:.3}.form-input:focus{border-color:var(--gold)}.form-textarea{min-height:100px}.form-actions{align-items:center;gap:24px;margin-top:8px;display:flex}.form-submit{background:var(--gold);color:var(--black);font-family:var(--font);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border:none;border-radius:100px;padding:16px 40px;font-size:11px;font-weight:700;transition:opacity .3s}.form-submit:hover{opacity:.8}.form-back{color:var(--muted);font-family:var(--font);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;font-size:11px;transition:color .3s}.form-back:hover{color:var(--white)}footer{border-top:1px solid var(--border);background:var(--black);z-index:100;justify-content:space-between;align-items:center;padding:20px 48px;display:flex;position:relative}footer p{font-family:var(--font);letter-spacing:.2em;opacity:.2;text-transform:uppercase;font-size:10px}.footer-links{gap:32px;display:flex}.footer-links a{font-family:var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--white);opacity:.2;font-size:10px;text-decoration:none;transition:opacity .3s,color .3s}.footer-links a:hover{opacity:.8;color:var(--gold)}@media (width>=769px){#character-reveal{scroll-snap-align:start;scroll-snap-stop:always;height:100vh}#three-canvas{position:absolute;top:50px;left:0}.bubbles-overlay{margin-top:0;position:absolute;top:50px;left:0}#portfolio{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;min-height:100vh;padding-bottom:120px;display:flex}#portfolio .card-img{aspect-ratio:unset;height:calc(50vh - 115px)}#contact{scroll-snap-align:start;scroll-snap-stop:always;padding-bottom:64px}#contact .contact-content{top:clamp(0px,100vh - 604px,50px)}.bubbles-overlay{margin-top:0;position:absolute}#resume-btn-overlay{width:100%;height:100%;margin-top:0;position:absolute;top:0;left:0}footer{position:fixed;bottom:0;left:0;right:0}}@media (width>=769px) and (width<=1100px){#contact{--contact-scale:.9}}@media (width>=769px) and (width<=950px){#contact{--contact-scale:.75}}@media (width<=768px){#resume-btn-overlay{height:auto;margin-top:0;padding:0 0 32px;position:sticky}.bubble{letter-spacing:.18em;padding:12px 22px;font-size:10px}.bubble.active{max-width:78vw;padding:16px 24px}.bubble-desc{max-width:100%;font-size:11px}.section-label{top:96px}#contact{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;padding:0 6vw 80px}#contact-canvas{position:absolute;top:0;left:0;width:100%!important;height:100vh!important}.speech-bubble-above{white-space:normal;text-align:center;width:max-content;max-width:84vw;padding:9px 18px;font-size:9px;top:9vh;left:50%}.contact-content{text-align:center;width:100%;margin-top:54vh;margin-right:0}.contact-content-inner{transform:none}#contact-heading{margin-bottom:20px;font-size:clamp(38px,13vw,60px)}.contact-meta{letter-spacing:.2em;flex-direction:column;gap:6px;margin-bottom:28px;font-size:10px}.contact-btn{padding:16px 36px}.contact-form-view{text-align:left;width:100%;margin-top:54vh;position:relative;right:auto}.form-heading{margin-bottom:24px}.form-actions{flex-direction:column-reverse;align-items:stretch;gap:14px}.form-submit{width:100%}}#rotate-overlay{z-index:99999;background:var(--black);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:none;position:fixed;inset:0}#rotate-icon{color:var(--gold);margin-bottom:24px;font-size:48px;animation:2s ease-in-out infinite rotateHint}@keyframes rotateHint{0%,to{transform:rotate(0)}50%{transform:rotate(-90deg)}}#rotate-title{font-family:var(--font);text-transform:uppercase;letter-spacing:.1em;color:var(--white);margin-bottom:12px;font-size:18px;font-weight:700}#rotate-subtitle{font-family:var(--font);color:var(--muted);letter-spacing:.05em;font-size:13px}html.device-landscape #rotate-overlay{display:flex}.footer-link-icon{width:18px;height:18px;display:none}.footer-link-icon--behance{width:27px;height:27px}@media (width<=768px){.footer-links{flex:1;justify-content:flex-end;gap:20px;margin-left:auto}.footer-links a{justify-content:center;align-items:center;display:flex;opacity:1!important}.footer-link-text{display:none}.footer-link-icon{color:var(--muted);opacity:1;transition:color .3s;display:block}.footer-links a:hover .footer-link-icon,.footer-links a:active .footer-link-icon{color:var(--gold)}}.nowrap{white-space:nowrap}@media (width>=769px){.mobile-only{display:none!important}}@media (width<=768px){.desktop-only{display:none!important}}.ticker-wrap{border-bottom:1px solid var(--border);width:100%;margin-top:88px;padding:10px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%)}.ticker{align-items:center;width:max-content;animation:30s linear infinite ticker;display:flex}.ticker-item{font-family:var(--font);letter-spacing:.04em;color:var(--white);opacity:.6;white-space:nowrap;padding:0 16px;font-size:15px}.ticker-sep{color:var(--gold);flex-shrink:0;font-size:18px;font-weight:700;line-height:1}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}#hero{border-bottom:1px solid var(--border);flex-direction:column;justify-content:flex-end;min-height:calc(100vh - 150px);padding:0 8vw 80px;display:flex;position:relative}.hero-eyebrow{font-family:var(--font);letter-spacing:.3em;text-transform:uppercase;color:var(--white);opacity:.7;margin-top:20px;margin-bottom:20px;font-size:14px}.hero-text h1{letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;color:var(--white);font-size:clamp(48px,9vw,120px);font-weight:700;line-height:1}.hero-asterisk{color:var(--gold);vertical-align:middle;font-size:1.2em;line-height:1;display:inline-block}.hero-bottom{justify-content:space-between;align-items:flex-end;margin-top:48px;display:flex}.hero-desc{font-family:var(--font);letter-spacing:.2em;text-transform:uppercase;opacity:.3;font-size:11px;line-height:2.2}.hero-scroll{opacity:.25;align-items:center;gap:16px;display:flex}@media (width<=768px){.nav-logo-full{display:none}.nav-logo-short{display:block}.bubbles-overlay{padding-bottom:0}#portfolio{padding:120px 8vw}.section-header{margin-bottom:64px}.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card-img{aspect-ratio:4/3}.card-info{display:block}.card-ext{display:none}.contact-content{margin-left:0}.contact-content-inner{padding-top:0}#contact-heading{letter-spacing:-.03em;white-space:normal;max-width:none;line-height:.88}.contact-btn{letter-spacing:.25em;width:auto;max-width:none;font-weight:400;display:inline-block}footer{padding:32px 8vw}html{scroll-snap-type:y mandatory}#hero{scroll-snap-align:end;scroll-snap-stop:always}#character-reveal,#portfolio,#contact{scroll-snap-align:start;scroll-snap-stop:always}footer{scroll-snap-align:end}.portfolio-card:not(:first-child):not(:last-child){scroll-snap-align:center}.portfolio-card:last-child{scroll-snap-align:end;scroll-snap-stop:always;scroll-margin-bottom:120px}}
