*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--black: #000;--white: #fff;--accent: #e8ff00;--dim: #888;--border: rgba(255,255,255,.1);--font-mono: "DM Mono", "Courier New", Courier, monospace;--font-sans: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--body-lh: 1.6;--body-ls: 0em;--body-weight: 400}html{scroll-behavior:smooth;font-size:16px}body{background:var(--black);color:var(--white);font-family:var(--font-sans);line-height:var(--body-lh);letter-spacing:var(--body-ls);font-weight:var(--body-weight);overflow-x:hidden}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;border-bottom:1px solid var(--border);background:#000000d9;backdrop-filter:blur(12px)}nav .logo{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.15em;color:var(--accent);text-transform:uppercase;text-decoration:none;transition:opacity .3s;display:flex;align-items:center;line-height:1}nav ul{list-style:none;display:flex;gap:2.5rem}nav ul a{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);text-decoration:none;transition:color .2s;line-height:1}nav ul a:hover{color:var(--white)}nav ul a.active{color:var(--white)}nav .contact-link{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);text-decoration:none;border:1px solid var(--accent);padding:.4rem 1rem;transition:background .2s,color .2s}nav .contact-link:hover{background:var(--accent);color:var(--black)}nav .back-link{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);text-decoration:none;display:flex;align-items:center;gap:.5rem;line-height:1;transition:color .2s}nav .back-link:hover{color:var(--white)}nav .back-link:before{content:"\2190";color:var(--accent)}nav .nav-title{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);line-height:1}footer{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;border-top:1px solid var(--border)}footer .foot-left,footer .foot-right{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;color:var(--dim);text-transform:uppercase}.style-panel{position:fixed;bottom:2rem;right:2rem;z-index:300}.style-panel-trigger{width:48px;height:48px;border-radius:50%;background:var(--black);border:1px solid var(--border);color:var(--dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s,background .2s,opacity .3s,transform .3s;box-shadow:0 4px 20px #0006}.style-panel.fab-hidden .style-panel-trigger{opacity:0;transform:scale(.8);pointer-events:none}.style-panel-trigger:hover{color:var(--white);border-color:#ffffff4d}body.light .style-panel-trigger{background:#f5f5f0;box-shadow:0 4px 20px #00000026}.style-panel-dropdown{position:absolute;bottom:calc(100% + 12px);right:0;background:#0d0d0d;border:1px solid var(--border);min-width:300px;display:none;flex-direction:column;z-index:200}.style-panel.open .style-panel-dropdown{display:flex}.style-panel-section-label{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);padding:.6rem 1rem .4rem;border-bottom:1px solid var(--border)}.font-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--border)}.style-panel-dropdown .font-option{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);background:none;border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.65rem .75rem;cursor:pointer;text-align:center;display:flex;justify-content:center;align-items:center;transition:color .15s,background .15s;width:100%}.font-grid .font-option:nth-child(3n){border-right:none}.font-grid .font-option:nth-last-child(-n+3){border-bottom:none}.style-panel-dropdown .font-option:hover{color:var(--white);background:#ffffff0a}.style-panel-dropdown .font-option.active{color:var(--accent)}.font-tuning{display:flex;flex-direction:column;gap:0;border-bottom:1px solid var(--border)}.font-tuning-row{display:grid;grid-template-columns:5.5rem 1fr 2rem;align-items:center;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--border)}.font-tuning-row:last-child{border-bottom:none}.font-tuning-label{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim)}.font-tuning-val{font-family:var(--font-mono);font-size:.55rem;color:var(--accent);text-align:right;white-space:nowrap}.font-tuning-row input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:var(--border);outline:none;cursor:pointer;touch-action:none}.font-tuning-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);cursor:pointer}.font-tuning-row input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.reset-defaults-btn{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);background:none;border:none;border-top:1px solid var(--border);padding:.7rem 1rem;cursor:pointer;width:100%;text-align:center;transition:color .15s,background .15s}.reset-defaults-btn:hover{color:var(--white);background:#ffffff0a}.theme-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}.theme-toggle-row span{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.theme-toggle{position:relative;width:36px;height:20px;cursor:pointer}.theme-toggle input{opacity:0;width:0;height:0;position:absolute}.theme-toggle-track{position:absolute;inset:0;background:#ffffff1a;border:1px solid var(--border);transition:background .2s}.theme-toggle input:checked+.theme-toggle-track{background:var(--accent)}.theme-toggle-thumb{position:absolute;top:3px;left:3px;width:12px;height:12px;background:var(--dim);transition:transform .2s,background .2s;pointer-events:none}.theme-toggle input:checked~.theme-toggle-thumb{transform:translate(16px);background:var(--black)}.palette-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--border)}.palette-option{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem .4rem .6rem;cursor:pointer;background:none;border:none;border-right:1px solid var(--border);transition:background .15s}.palette-option:last-child{border-right:none}.palette-option:hover{background:#ffffff0a}.palette-swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(255,255,255,.15)}.palette-option .palette-name{font-family:var(--font-mono);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);text-align:center;white-space:nowrap}.palette-option.active .palette-name{color:var(--accent)}.palette-option.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}body.light{--black: #f5f5f0;--white: #111;--dim: #555;--border: rgba(0,0,0,.12);background:var(--black);color:var(--white)}body.light nav{background:#f5f5f0eb}body.light .style-panel-dropdown{background:#e8e8e3}body.light .theme-toggle-track{background:#0000001a;border-color:#0003}body.light ::-webkit-scrollbar-track{background:var(--black)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--black)}::-webkit-scrollbar-thumb{background:var(--accent)}section{border-bottom:1px solid var(--border)}.section-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;border-bottom:1px solid var(--border)}.section-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent)}.section-index{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;color:var(--dim)}#hero{min-height:100vh;display:flex;align-items:center;padding-top:80px}.hero-left{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:5rem 3rem;width:100%}.hero-inner{width:60%}.hero-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:2rem}.hero-name{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;text-transform:uppercase;margin-bottom:2rem}.hero-bio{font-size:1.05rem;color:#ffffffa6;line-height:1.8;max-width:480px;margin-bottom:2.5rem}body.light .hero-bio{color:#0009}.hero-role{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;border-top:1px solid var(--border);padding-top:1.5rem;margin-top:1rem}#about{display:grid;grid-template-columns:1fr 1fr}.about-left{padding:5rem 3rem;border-right:1px solid var(--border)}.about-left h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-bottom:2.5rem;text-transform:uppercase}.about-left p{font-size:1rem;color:#ffffffb3;line-height:1.8;max-width:480px}body.light .about-left p{color:#0009}.about-right{padding:5rem 3rem;display:flex;flex-direction:column;gap:2.5rem}.skill-item{border-top:1px solid var(--border);padding-top:1.5rem}.skill-item .skill-num{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;color:var(--accent);margin-bottom:.75rem}.skill-item p{font-size:.95rem;color:#ffffffa6;line-height:1.7}body.light .skill-item p{color:#0009}#work{padding:0}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem}.work-item{position:relative;overflow:hidden;aspect-ratio:4/3;cursor:pointer;display:block;text-decoration:none;color:inherit}.work-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease,filter .4s ease;filter:grayscale(30%) brightness(.75)}.work-item:hover img,.work-item.is-active img{transform:scale(1.04);filter:grayscale(0%) brightness(.9)}body.light .work-item img{filter:grayscale(20%) brightness(.95)}body.light .work-item:hover img,body.light .work-item.is-active img{filter:grayscale(0%) brightness(1)}.work-item-info{position:absolute;bottom:0;left:0;right:0;padding:2rem;background:#000000eb;transform:translateY(100%);opacity:0;transition:transform .3s ease,opacity .3s ease;color:#fff}body.light .work-item-info{background:#f5f5f0f7;color:#111}.work-item:hover .work-item-info,.work-item.is-active .work-item-info{transform:translateY(0);opacity:1}.work-item-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.work-item-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;letter-spacing:-.01em}#featured{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.work-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:0;scrollbar-width:none}.work-scroll::-webkit-scrollbar{display:none}.ws-item{flex:0 0 300px;scroll-snap-align:center;display:block;text-decoration:none;color:inherit;border-right:1px solid var(--border);transition:background .3s ease,opacity .4s ease;opacity:1}.work-scroll.is-scrolling .ws-item{opacity:.72}.work-scroll.is-scrolling .ws-item.is-centered{opacity:1}.work-scroll.is-scrolling .ws-item.is-centered .ws-thumb img{transform:scale(1.06);filter:grayscale(0%) brightness(.95)}.ws-item:hover{background:#ffffff08}body.light .ws-item:hover{background:#00000008}.ws-thumb{width:100%;aspect-ratio:4/3;overflow:hidden}.ws-thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(30%) brightness(.75);transition:transform .5s ease,filter .4s ease}.ws-item:hover .ws-thumb img{transform:scale(1.04);filter:grayscale(0%) brightness(.95)}.ws-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding:1rem 1.25rem .3rem}.ws-title{font-family:var(--font-display);font-size:1rem;font-weight:600;letter-spacing:-.01em;padding:0 1.25rem 1.25rem;color:var(--white)}body.light .ws-title{color:var(--white)}#contact{min-height:60vh;display:flex;flex-direction:column;justify-content:center;padding:6rem 3rem;position:relative;overflow:hidden}#contact:before{content:"CONTACT";position:absolute;font-family:var(--font-display);font-size:clamp(8rem,20vw,18rem);font-weight:900;letter-spacing:-.05em;color:#ffffff08;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;user-select:none}body.light #contact:before{color:#0000000a}.contact-inner{max-width:700px}.contact-inner h2{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,5rem);font-weight:800;letter-spacing:-.03em;line-height:1;text-transform:uppercase;margin-bottom:2rem}.contact-inner h2 em{font-style:normal;color:var(--accent)}.contact-inner p{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.1em;color:var(--dim);margin-bottom:2.5rem}body.light .contact-inner p{color:#0009}.contact-email{display:inline-flex;align-items:center;gap:1rem;font-family:var(--font-mono);font-size:1rem;letter-spacing:.05em;color:var(--white);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:.5rem;transition:color .2s}.contact-email:hover{color:var(--accent)}.contact-email:after{content:"\2192";color:var(--accent)}.case-hero{min-height:100vh;padding-top:80px;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:4rem;padding-left:3rem;padding-right:3rem;border-bottom:1px solid var(--border);position:relative;overflow:hidden}.case-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(20%) brightness(.4);z-index:0}.case-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,.3) 60%,transparent 100%);z-index:1}.case-hero-content{position:relative;z-index:2;max-width:800px}.case-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem}.case-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,5.5rem);font-weight:800;letter-spacing:-.03em;line-height:1;text-transform:uppercase;margin-bottom:2rem}.case-meta{display:flex;gap:3rem;border-top:1px solid var(--border);padding-top:1.5rem}.case-meta-item{display:flex;flex-direction:column;gap:.35rem}.case-meta-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.case-meta-value{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;color:var(--white)}.case-section{border-bottom:1px solid var(--border)}.case-section-inner{display:grid;grid-template-columns:1fr 2fr}.case-section-label-col{padding:4rem 3rem;border-right:1px solid var(--border)}.case-section-label-col .label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);position:sticky;top:100px}.case-section-body{padding:4rem 3rem}.case-section-body h2{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-bottom:1.5rem}.case-section-body p{font-size:1rem;color:#ffffffb3;line-height:1.8;max-width:600px;margin-bottom:1rem}body.light .case-section-body p{color:#0009}body.light .case-section-body h2{color:#111}body.light .case-title{color:#fff}body.light .case-label{color:#e8ff00}body.light .case-meta-value{color:#fff}body.light .case-meta-label{color:#ffffff80}body.light .work-item-label{color:var(--accent)}body.light .work-item-title{color:var(--white)}.case-section-body p:last-child{margin-bottom:0}.img-full{width:100%;display:block;border-bottom:1px solid var(--border)}.img-full img{width:100%;display:block}.img-stack{display:flex;flex-direction:column;gap:40px;border-bottom:1px solid var(--border)}.img-stack img{width:100%;display:block}.img-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px}.img-grid-2 .img-cell{overflow:hidden}.img-grid-2 img{width:100%;display:block}.next-project{display:flex;justify-content:space-between;align-items:center;padding:3rem;text-decoration:none;color:var(--white);transition:background .2s}.next-project:hover{background:#ffffff08}.next-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:.5rem}.next-title{font-family:var(--font-display);font-size:clamp(1.2rem,3vw,2rem);font-weight:700;letter-spacing:-.02em}.next-arrow{font-size:2rem;color:var(--accent)}@media(max-width:768px){nav{padding:1rem 1.5rem}nav ul{display:none}.hero-left{padding:4rem 1.5rem 3rem;border-right:none}.hero-inner{width:100%}#about{grid-template-columns:1fr}.about-left{padding:3rem 1.5rem;border-right:none}.about-right{padding:2rem 1.5rem 3rem}.work-grid{grid-template-columns:1fr}.featured-strip{height:200px}#contact{padding:4rem 1.5rem}footer{padding:1.5rem;flex-direction:column;gap:.5rem;text-align:center}.section-header{padding:1rem 1.5rem}.case-hero{padding-left:1.5rem;padding-right:1.5rem}.case-meta{gap:1.5rem;flex-wrap:wrap}.case-section-inner{grid-template-columns:1fr}.case-section-label-col{padding:2rem 1.5rem .5rem;border-right:none;border-bottom:1px solid var(--border)}.case-section-body,.next-project{padding:2rem 1.5rem}}
