.portfolio{--bg: #0b0b0c;--ink: #f5f3ef;--muted: #8a8780;--line: rgba(245, 243, 239, .12);--accent: #ff5b1f;--accent-2: #d8ff3a;--card: #111113;--display: "Syne", sans-serif;--body: "DM Sans", sans-serif;--mono: "JetBrains Mono", monospace;--rail: 40px;--gutter: calc(var(--rail) + 24px);--nav-h: 66px;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;min-height:100vh;position:relative}.portfolio:before,.portfolio:after{content:"";position:fixed;top:0;bottom:0;width:1.5px;background:var(--line);pointer-events:none;z-index:50}.portfolio:before{left:var(--rail)}.portfolio:after{right:var(--rail)}@media(max-width:760px){.portfolio{--rail: 18px;--gutter: calc(var(--rail) + 16px)}}.portfolio *,.portfolio *:before,.portfolio *:after{box-sizing:border-box}.portfolio a{color:inherit;text-decoration:none}.portfolio img{max-width:100%;display:block}.portfolio ::selection{background:var(--accent);color:#000}.portfolio .cursor{position:fixed;width:18px;height:18px;border-radius:50%;background:var(--accent);pointer-events:none;mix-blend-mode:difference;z-index:9999;transition:transform .2s ease,width .25s,height .25s;transform:translate(-50%,-50%)}.portfolio .cursor.hover{width:56px;height:56px;background:var(--accent-2)}@media(hover:none){.portfolio .cursor{display:none}}.portfolio .nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:22px var(--gutter);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0b0b0c99;border-bottom:1px solid var(--line)}.portfolio .nav .logo{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:18px}.portfolio .nav .logo span{color:var(--accent)}.portfolio .nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:14px;color:var(--muted)}.portfolio .nav ul a:hover{color:var(--ink)}.portfolio .nav .nav-right{display:flex;align-items:center;gap:14px}.portfolio .nav .cta{font-family:var(--mono);font-size:12px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;transition:.3s}.portfolio .nav .cta:hover{background:var(--ink);color:#000;border-color:var(--ink)}.portfolio .hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:transparent;border:1px solid var(--line);border-radius:8px;padding:7px 8px;cursor:pointer}.portfolio .hamburger span{display:block;width:100%;height:1.5px;background:var(--ink);border-radius:2px;transition:transform .3s ease,opacity .3s ease;transform-origin:center}.portfolio .hamburger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.portfolio .hamburger.is-open span:nth-child(2){opacity:0}.portfolio .hamburger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}@media(max-width:760px){.portfolio .nav{padding:14px var(--gutter)}.portfolio .hamburger{display:flex}.portfolio .nav .cta{display:none}.portfolio .nav ul{display:none;position:fixed;inset:0;top:var(--nav-h);background:#0b0b0cf7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:40px;font-size:28px;font-family:var(--display);font-weight:700;letter-spacing:-.02em}.portfolio .nav ul.open{display:flex}.portfolio .nav ul a{color:var(--ink)}}.portfolio .hero{min-height:100vh;padding:160px var(--gutter) 80px;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow-x:clip}.portfolio .hero .grid-bg{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);opacity:.6;pointer-events:none}.portfolio .hero .meta-row{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;justify-content:flex-end;letter-spacing:.05em;text-transform:uppercase;position:relative;z-index:2}.portfolio .hero .name{font-family:var(--display);font-weight:800;font-size:clamp(52px,11vw,220px);line-height:.86;letter-spacing:-.045em;margin:60px 0 30px;position:relative;z-index:2}.portfolio .hero .name .stroke{-webkit-text-stroke:1.5px var(--ink);color:transparent;font-style:italic}.portfolio .hero .name .dot{color:var(--accent)}.portfolio .hero .hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;flex-wrap:wrap;position:relative;z-index:2}.portfolio .hero .philo{max-width:520px;font-size:clamp(18px,1.6vw,22px);line-height:1.45;color:var(--ink)}.portfolio .hero .scroll-hint{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.2em}.portfolio .hero .badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:18px}@media(max-width:760px){.portfolio .hero{padding:110px var(--gutter) 60px}.portfolio .hero .name{font-size:clamp(44px,17vw,88px);line-height:.9;margin:38px 0 24px}.portfolio .hero .hero-row{flex-direction:column;align-items:flex-start;gap:20px}.portfolio .hero .philo{max-width:100%}}.portfolio .marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:24px 0;background:#000}.portfolio .marquee-track{display:flex;gap:60px;animation:portfolio-scroll 28s linear infinite;white-space:nowrap;font-family:var(--display);font-weight:700;font-size:clamp(28px,4vw,56px);letter-spacing:-.02em;padding-left:60px}.portfolio .marquee-track span{display:inline-flex;align-items:center;gap:60px}.portfolio .marquee-track span:after{content:"✦";color:var(--accent)}@keyframes portfolio-scroll{to{transform:translate(-50%)}}.portfolio section{padding:140px var(--gutter);position:relative}.portfolio .section-head{display:flex;gap:30px;align-items:baseline;margin-bottom:80px;border-bottom:1px solid var(--line);padding-bottom:30px}.portfolio .section-head .num{font-family:var(--mono);font-size:13px;color:var(--accent)}.portfolio .section-head h2{font-family:var(--display);font-weight:700;font-size:clamp(40px,6vw,84px);line-height:.95;letter-spacing:-.035em;flex:1;margin:0}.portfolio .section-head .label{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.2em}@media(max-width:760px){.portfolio section{padding:90px var(--gutter)}.portfolio .section-head{flex-direction:column;gap:8px;margin-bottom:50px}}.portfolio .about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:start}.portfolio .about-grid p{font-size:clamp(20px,2vw,30px);line-height:1.35;letter-spacing:-.01em;color:var(--ink);margin:0}.portfolio .about-grid p+p{margin-top:30px;color:var(--muted)}.portfolio .about-grid .quote{border-left:2px solid var(--accent);padding:20px 0 20px 30px;font-family:var(--display);font-style:italic;font-size:22px;line-height:1.4}.portfolio .about-grid .quote cite{display:block;margin-top:14px;font-family:var(--mono);font-style:normal;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.15em}@media(max-width:900px){.portfolio .about-grid{grid-template-columns:1fr;gap:40px}}.portfolio .projects{display:flex;flex-direction:column}.portfolio .project{padding:40px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:60px 1.1fr 1fr 220px;gap:40px;align-items:center;position:relative;cursor:pointer;transition:padding .4s ease,background .4s ease;overflow:hidden}.portfolio .project:last-child{border-bottom:1px solid var(--line)}.portfolio .project:hover{padding:46px 12px;background:linear-gradient(90deg,transparent,rgba(255,91,31,.05),transparent)}.portfolio .project .idx{font-family:var(--mono);font-size:12px;color:var(--muted);position:relative;z-index:2}.portfolio .project h3{font-family:var(--display);font-weight:700;font-size:clamp(34px,5vw,68px);letter-spacing:-.035em;line-height:1;margin:0;transition:transform .4s ease,color .4s;position:relative;z-index:2}.portfolio .project:hover h3{transform:translate(20px);color:var(--accent)}.portfolio .project .desc{font-size:15px;line-height:1.5;color:var(--muted);max-width:380px;margin:0;position:relative;z-index:2}.portfolio .project .tag{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--ink);text-align:right;position:relative;z-index:2}.portfolio .project .tag span{color:var(--muted)}.portfolio .project .arrow{position:absolute;right:20px;bottom:20px;transform:translateY(10px);opacity:0;font-size:24px;color:var(--accent);transition:.4s;z-index:3}.portfolio .project:hover .arrow{transform:translateY(0);opacity:1}@media(max-width:900px){.portfolio .project{grid-template-columns:30px 1fr;gap:14px;padding:30px 0}.portfolio .project .desc,.portfolio .project .tag{grid-column:2;text-align:left}.portfolio .project:hover{padding:30px 0}}.project-page{--bg: #0b0b0c;--ink: #f5f3ef;--muted: #8a8780;--line: rgba(245, 243, 239, .12);--accent: #ff5b1f;--display: "Syne", sans-serif;--body: "DM Sans", sans-serif;--mono: "JetBrains Mono", monospace;--rail: 40px;--gutter: calc(var(--rail) + 24px);position:relative;background:var(--bg);color:var(--ink);font-family:var(--body)}.project-detail{min-height:100vh;padding:124px var(--gutter) 90px}.project-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:20px var(--gutter);border-bottom:1px solid var(--line);background:#0b0b0cb3;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.project-nav .logo{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:18px;color:var(--ink);text-decoration:none}.project-nav .logo span{color:var(--accent)}.project-nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}.project-nav a{color:var(--muted);text-decoration:none;font-size:13px}.project-nav a:hover{color:var(--ink)}.project-page:before,.project-page:after{content:"";position:fixed;top:0;bottom:0;width:1.5px;background:var(--line);pointer-events:none;z-index:10}.project-page:before{left:var(--rail)}.project-page:after{right:var(--rail)}.project-detail-header{max-width:980px;margin:0 auto}.project-detail .back-link{display:inline-block;margin-bottom:26px;font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}.project-detail .project-eyebrow{font-family:var(--mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.18em;margin-bottom:16px}.project-detail h1{font-family:var(--display);font-weight:800;font-size:clamp(52px,10vw,120px);line-height:.92;letter-spacing:-.04em;margin:0 0 24px}.project-detail .project-summary{max-width:820px;font-size:clamp(18px,2.1vw,30px);line-height:1.4;margin:0 0 38px}.project-detail .project-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.project-detail .project-meta div{display:flex;flex-direction:column;gap:6px}.project-detail .project-meta .k{font-family:var(--mono);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}.project-detail-content{max-width:980px;margin:60px auto 0}.project-pager{max-width:980px;margin:44px auto 0;padding-top:20px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:14px}.project-pager>div:last-child{text-align:right}.project-pager a{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;text-decoration:none}.project-pager a:hover{color:var(--ink)}.project-detail-content h2{font-family:var(--display);font-size:clamp(34px,5vw,62px);line-height:.95;letter-spacing:-.03em;margin:0 0 22px}.project-detail-content ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.project-links{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.project-links h3{margin:0 0 14px;font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}.project-links-grid{display:flex;flex-wrap:wrap;gap:10px}.project-links .link-chip{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 12px;transition:border-color .25s ease,color .25s ease,transform .2s ease}.project-links .link-chip:hover{border-color:#ff5b1f80;color:var(--accent);transform:translateY(-1px)}.project-detail-content li{color:var(--muted);font-size:15px;line-height:1.6;padding-left:20px;position:relative}.project-detail-content li:before{content:"•";position:absolute;left:0;color:var(--accent)}.project-shots{max-width:980px;margin:78px auto 0}.project-shots-head{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:24px}.project-shots-head h3{font-family:var(--display);font-size:clamp(30px,4vw,52px);letter-spacing:-.03em;margin:0}.project-shots-head p{margin:0;font-family:var(--mono);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.16em}.project-shots .shot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project-shots .shot-card{border:1px solid var(--line);border-radius:14px;background:#111113;overflow:hidden;padding:0;text-align:left;color:inherit;cursor:pointer}.project-shots .shot-card img{width:100%;aspect-ratio:16 / 10;object-fit:cover;display:block}.project-shots .shot-card span{display:block;padding:10px 12px;font-size:13px;color:var(--muted)}.shot-lightbox{position:fixed;inset:0;background:#000000d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:999;display:grid;place-items:center;padding:26px}.shot-lightbox figure{margin:0;max-width:min(1100px,92vw)}.shot-lightbox img{width:100%;border-radius:14px;border:1px solid rgba(245,243,239,.2)}.shot-lightbox figcaption{margin-top:10px;text-align:center;color:#d0ccc4;font-size:14px}.shot-close{position:absolute;top:20px;right:20px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(245,243,239,.24);background:#0b0b0ca6;color:#f5f3ef;cursor:pointer}.project-detail-footer{--bg: #000;--line: rgba(245, 243, 239, .12);--muted: #8a8780;--display: "Syne", sans-serif;--mono: "JetBrains Mono", monospace;padding:56px var(--gutter) 28px;border-top:1px solid var(--line);background:var(--bg)}.project-detail-footer .big{font-family:var(--display);font-weight:800;width:calc(100% + 2 * var(--gutter));margin-left:calc(-1 * var(--gutter));font-size:clamp(40px,12vw,220px);line-height:.82;letter-spacing:-.05em;text-align:center;background:linear-gradient(180deg,#f5f3ef,#1a1a1a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;margin-bottom:30px;white-space:nowrap}.project-detail-footer .foot-row{display:flex;justify-content:center;gap:10px;border-top:1px solid var(--line);padding-top:20px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}@media(max-width:860px){.project-page{--rail: 18px;--gutter: calc(var(--rail) + 16px)}.project-detail{padding:104px var(--gutter) 70px}.project-detail .project-meta{grid-template-columns:1fr}.project-nav{padding:14px var(--gutter)}.project-nav ul{display:none}.project-pager{grid-template-columns:1fr}.project-pager>div:last-child{text-align:left}.project-shots .shot-grid{grid-template-columns:1fr 1fr}}@media(max-width:580px){.project-shots-head{flex-direction:column;align-items:flex-start}.project-shots .shot-grid{grid-template-columns:1fr}.project-detail-footer{padding:40px var(--gutter) 24px}}.portfolio .exp-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}.portfolio .exp-grid>.bento-grid{grid-column:1 / -1}.portfolio .exp-card{grid-column:span 6;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:40px;transition:.4s;position:relative;overflow:hidden}.portfolio .exp-card:hover{border-color:var(--accent);transform:translateY(-4px)}.portfolio .exp-card h4{font-family:var(--display);font-size:28px;letter-spacing:-.025em;margin:0 0 14px}.portfolio .exp-card p{color:var(--muted);font-size:15px;line-height:1.6;margin:0}.portfolio .exp-card .kicker{font-family:var(--mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.2em;margin-bottom:20px}.portfolio .exp-card.big{grid-column:span 12;background:linear-gradient(135deg,#161618,#0f0f10)}.portfolio .exp-card.big h4{font-size:clamp(36px,4vw,56px)}.portfolio .stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.portfolio .stack span{font-family:var(--mono);font-size:11px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}@media(max-width:760px){.portfolio .exp-card{grid-column:span 12;padding:28px}}.portfolio .bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:14px;margin-top:14px}.portfolio .bento-card--frontend{grid-column:1 / 3;grid-row:1}.portfolio .bento-card--engineering{grid-column:3;grid-row:1 / 3}.portfolio .bento-card--design{grid-column:1;grid-row:2}.portfolio .bento-card--leadership{grid-column:2;grid-row:2}.portfolio .bento-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:18px;transition:border-color .35s ease,transform .35s ease,background .35s ease;position:relative;overflow:hidden;min-height:220px}.portfolio .bento-card:before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .35s ease;pointer-events:none}.portfolio .bento-card:hover{border-color:#ff5b1f73;transform:translateY(-3px)}.portfolio .bento-card:hover:before{opacity:1;background:radial-gradient(ellipse at top left,rgba(255,91,31,.06),transparent 70%)}.portfolio .bento-card-top{display:flex;align-items:center;gap:12px}.portfolio .bento-icon{width:44px;height:44px;border-radius:12px;background:#ff5b1f1a;border:1px solid rgba(255,91,31,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);transition:background .3s ease,border-color .3s ease}.portfolio .bento-card:hover .bento-icon{background:#ff5b1f2e;border-color:#ff5b1f66}.portfolio .bento-kicker{font-family:var(--mono);font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.22em}.portfolio .bento-body{display:flex;flex-direction:column;gap:10px;flex:1}.portfolio .bento-card h4{font-family:var(--display);font-size:clamp(22px,2vw,30px);letter-spacing:-.025em;margin:0;line-height:1.15}.portfolio .bento-card p{color:var(--muted);font-size:14px;line-height:1.7;margin:0}.portfolio .bento-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.portfolio .bento-tags span{font-family:var(--mono);font-size:10px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);transition:border-color .3s,color .3s}.portfolio .bento-card:hover .bento-tags span{border-color:#ff5b1f4d;color:var(--ink)}@media(max-width:900px){.portfolio .bento-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.portfolio .bento-card--frontend,.portfolio .bento-card--design,.portfolio .bento-card--leadership,.portfolio .bento-card--engineering{grid-column:auto;grid-row:auto;min-height:200px}}@media(max-width:520px){.portfolio .bento-grid{grid-template-columns:1fr}.portfolio .bento-card{min-height:unset}}.portfolio .interests{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden}.portfolio .interest{background:var(--bg);padding:50px 40px;min-height:320px;display:flex;flex-direction:column;justify-content:space-between;transition:.4s}.portfolio .interest:hover{background:var(--card)}.portfolio .interest .num{font-family:var(--mono);font-size:13px;color:var(--accent)}.portfolio .interest h4{font-family:var(--display);font-size:30px;letter-spacing:-.025em;line-height:1.1;margin:80px 0 16px}.portfolio .interest p{color:var(--muted);font-size:14px;line-height:1.6;margin:0}@media(max-width:900px){.portfolio .interests{grid-template-columns:1fr}}.portfolio .contact{padding:140px var(--gutter) 100px}.portfolio .contact .kicker{font-family:var(--mono);font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.3em;margin-bottom:30px}.portfolio .contact h2{font-family:var(--display);font-weight:800;font-size:clamp(56px,9vw,140px);line-height:.9;letter-spacing:-.045em;margin:0 0 60px}.portfolio .contact h2 .stroke{-webkit-text-stroke:1.5px var(--ink);color:transparent;font-style:italic}.portfolio .contact a.mail{display:inline-block;font-family:var(--display);font-size:clamp(18px,2.4vw,36px);padding-bottom:4px;border-bottom:1.5px solid var(--accent);margin-bottom:60px;transition:color .3s,transform .3s;word-break:break-word}.portfolio .contact a.mail:hover{color:var(--accent);transform:translateY(-3px)}.portfolio .contact-form{max-width:760px;display:flex;flex-direction:column;gap:24px;margin-bottom:60px}.portfolio .contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.portfolio .contact-form .form-field{display:flex;flex-direction:column;gap:8px}.portfolio .contact-form label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.portfolio .textarea-wrap{position:relative}.portfolio .textarea-wrap textarea{display:block;width:100%;padding-bottom:28px}.portfolio .word-count{position:absolute;bottom:10px;right:14px;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:0;pointer-events:none;transition:color .3s}.portfolio .word-count.near-limit{color:var(--accent)}.portfolio .contact-form input,.portfolio .contact-form textarea{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;font-family:var(--body);font-size:16px;color:var(--ink);outline:none;transition:border-color .3s ease;width:100%}.portfolio .contact-form input::placeholder,.portfolio .contact-form textarea::placeholder{color:#8a878080}.portfolio .contact-form input:focus,.portfolio .contact-form textarea:focus{border-color:var(--accent)}.portfolio .contact-form input[aria-invalid=true],.portfolio .contact-form textarea[aria-invalid=true]{border-color:#e55}.portfolio .contact-form textarea{resize:none;min-height:120px;overflow:hidden;line-height:1.6}.portfolio .form-error{font-family:var(--mono);font-size:11px;color:#e55;letter-spacing:.05em}.portfolio .form-submit{align-self:flex-start;font-family:var(--mono);font-size:13px;padding:14px 28px;background:var(--accent);color:#fff;border:none;border-radius:999px;cursor:pointer;transition:background .3s ease,transform .2s ease;letter-spacing:.05em}.portfolio .form-submit:hover{background:#e04e18;transform:translateY(-2px)}.portfolio .form-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}.portfolio .contact .socials{display:flex;gap:32px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.portfolio .contact .socials a:hover{color:var(--ink)}.portfolio .status-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px;z-index:1200}.portfolio .status-modal{width:min(460px,100%);background:#111113;border:1px solid var(--line);border-radius:18px;padding:28px 24px;box-shadow:0 22px 80px #00000073}.portfolio .status-modal-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-family:var(--mono);font-size:16px;margin-bottom:14px}.portfolio .status-modal--success .status-modal-icon{color:#072612;background:#45cf74}.portfolio .status-modal--error .status-modal-icon{color:#2a0a0a;background:#ff7d7d}.portfolio .status-modal h3{margin:0 0 8px;font-family:var(--display);font-size:28px;letter-spacing:-.02em}.portfolio .status-modal p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.portfolio .status-modal-close{margin-top:20px;border:1px solid var(--line);border-radius:999px;padding:10px 16px;background:transparent;color:var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.portfolio .status-modal-close:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:760px){.portfolio .contact{padding:90px var(--gutter) 80px}.portfolio .contact-form .form-row{grid-template-columns:1fr}.portfolio .contact .socials{gap:20px}}.portfolio .site-footer{padding:60px var(--gutter) 32px;border-top:1px solid var(--line);background:#000;width:100%;overflow:visible}.portfolio .site-footer .big{font-family:var(--display);font-weight:800;width:calc(100% + 2 * var(--gutter));margin-left:calc(-1 * var(--gutter));font-size:clamp(40px,12vw,220px);line-height:.82;letter-spacing:-.05em;text-align:center;background:linear-gradient(180deg,#f5f3ef,#1a1a1a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;margin-bottom:40px;white-space:nowrap;display:block}.portfolio .site-footer .foot-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:14px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);border-top:1px solid var(--line);padding-top:24px}.portfolio .site-footer .foot-row span{flex:0 1 auto}@media(max-width:760px){.portfolio .site-footer{padding:40px var(--gutter) 28px}.portfolio .site-footer .foot-row{flex-direction:column;text-align:center;gap:10px;letter-spacing:.14em}}.portfolio .reveal{opacity:0;transform:translateY(40px);transition:opacity 1s ease,transform 1s ease}.portfolio .reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.portfolio *,.portfolio *:before,.portfolio *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
