:root{--bg:#0b1118;--bg2:#0e1620;--bg3:#111c28;--line:rgba(141,160,173,.13);--gridline:rgba(95,232,220,.06);--ink:#eef3f6;--mut:#8da0ad;--cyan:#5fe8dc;--cyan-dim:rgba(95,232,220,.12);--sand:#e9bd7c;--radius:14px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.mono{font-family:IBM Plex Mono,monospace}.wrap{max-width:1160px;margin:0 auto;padding:0 48px}section{position:relative}nav{display:flex;justify-content:space-between;align-items:center;padding:22px 48px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0b1118e0;backdrop-filter:blur(12px);z-index:50}.logo{font-family:Sora,sans-serif;font-weight:800;font-size:19px;letter-spacing:-.01em}.logo .bracket{color:var(--cyan);font-weight:400;font-family:IBM Plex Mono,monospace}nav ul{display:flex;gap:32px;list-style:none;font-size:14px;color:var(--mut);font-weight:500;align-items:center}nav ul a{transition:color .15s}nav ul a:hover,nav ul a:focus-visible{color:var(--ink)}.nav-cta{background:var(--cyan);color:#06231f!important;font-weight:700;padding:9px 18px;border-radius:8px;font-size:13.5px}.nav-cta:hover{opacity:.9}.hero{background-image:linear-gradient(var(--gridline) 1px,transparent 1px),linear-gradient(90deg,var(--gridline) 1px,transparent 1px);background-size:48px 48px;border-bottom:1px solid var(--line)}.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;padding:88px 0 80px}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--cyan);letter-spacing:.12em;margin-bottom:24px}h1{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(38px,4.6vw,62px);line-height:1.06;letter-spacing:-.025em}h1 .hl{color:var(--cyan)}.select-box{position:relative;display:inline-block}.select-box:before{content:"";position:absolute;inset:-5px -9px;border:1.5px solid var(--cyan);border-radius:2px;pointer-events:none}.handle{position:absolute;width:8px;height:8px;background:var(--bg);border:1.5px solid var(--cyan);z-index:2}.h-tl{top:-9px;left:-13px}.h-tr{top:-9px;right:-13px}.h-bl{bottom:-9px;left:-13px}.h-br{bottom:-9px;right:-13px}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes drawBox{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes popHandle{0%{opacity:0;transform:scale(0)}70%{transform:scale(1.5)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:no-preference){.hero .eyebrow,.hero h1,.hero .hero-sub,.hero .hero-cta{opacity:0;animation:rise .7s cubic-bezier(.22,.8,.3,1) forwards}.hero .eyebrow{animation-delay:.1s}.hero h1{animation-delay:.25s}.hero .hero-sub{animation-delay:.45s}.hero .hero-cta{animation-delay:.6s}.hero .select-box:before{animation:drawBox .55s ease-out 1.05s backwards}.hero .select-box .handle{animation:popHandle .3s cubic-bezier(.34,1.56,.64,1) backwards}.hero .select-box .h-tl{animation-delay:1.6s}.hero .select-box .h-tr{animation-delay:1.7s}.hero .select-box .h-br{animation-delay:1.8s}.hero .select-box .h-bl{animation-delay:1.9s}.hero .hero-photo{opacity:0;animation:rise .8s cubic-bezier(.22,.8,.3,1) .5s forwards}.hero .ann-name{opacity:0;animation:popHandle .35s cubic-bezier(.34,1.56,.64,1) 1.25s forwards}}.spec-tag{position:absolute;font-family:IBM Plex Mono,monospace;font-size:11px;color:#06231f;background:var(--cyan);padding:3px 8px;border-radius:3px;white-space:nowrap;z-index:3}.hero-sub{margin-top:28px;font-size:17.5px;color:var(--mut);max-width:50ch;line-height:1.7}.hero-sub strong{color:var(--ink);font-weight:600}.hero-cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}.btn-pri{background:var(--cyan);color:#06231f;font-weight:700;font-size:15px;padding:15px 30px;border-radius:8px;border:none;cursor:pointer;font-family:Inter,sans-serif;transition:transform .15s ease}.btn-pri:hover{transform:translateY(-2px)}.btn-sec{color:var(--ink);font-weight:600;font-size:15px;padding:15px 26px;border-radius:8px;border:1px solid rgba(141,160,173,.3);background:transparent;cursor:pointer;font-family:Inter,sans-serif;transition:border-color .15s}.btn-sec:hover{border-color:var(--cyan)}.price-chip{font-family:IBM Plex Mono,monospace;font-size:12.5px;color:var(--sand);border:1px dashed rgba(233,189,124,.45);padding:9px 14px;border-radius:6px;margin-top:4px}.hero-photo{position:relative;justify-self:end;width:min(380px,100%)}.photo-frame{background:linear-gradient(160deg,#16283a,#1d3349);border-radius:16px;aspect-ratio:4/4.7;position:relative;overflow:visible;border:1.5px solid var(--cyan)}.photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}.photo-frame .handle{width:9px;height:9px}.photo-frame .h-tl{top:-6px;left:-6px}.photo-frame .h-tr{top:-6px;right:-6px}.photo-frame .h-bl{bottom:-6px;left:-6px}.photo-frame .h-br{bottom:-6px;right:-6px}.ann{position:absolute;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--cyan);white-space:nowrap}.ann .ln{display:inline-block;vertical-align:middle;height:1px;background:var(--cyan);opacity:.6}.ann-name{top:-34px;right:-8px;background:var(--cyan);color:#06231f;padding:4px 10px;border-radius:3px;font-weight:500}.ann-dim{position:static;margin-top:14px;text-align:center;color:var(--mut)}.ann-dim:before,.ann-dim:after{content:"";display:inline-block;width:60px;height:1px;background:var(--mut);opacity:.4;vertical-align:middle;margin:0 10px}.hero{position:relative;overflow:hidden}.hero>.wrap{position:relative;z-index:2}.orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0}.orb-1{width:520px;height:520px;background:radial-gradient(circle,#5fe8dc,transparent 65%);opacity:.1;top:-180px;right:-120px}.orb-2{width:420px;height:420px;background:radial-gradient(circle,#e9bd7c,transparent 65%);opacity:.06;bottom:-200px;left:-140px}.cross{position:absolute;font-family:IBM Plex Mono,monospace;font-size:15px;color:var(--cyan);pointer-events:none;z-index:1;opacity:0}@keyframes crossPulse{0%{opacity:0;transform:scale(.4)}35%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.15)}}@keyframes gridDrift{0%{background-position:0 0}to{background-position:48px 48px}}@keyframes orbFloat{0%{transform:translate(0)}to{transform:translate(-60px,50px)}}@keyframes orbFloat2{0%{transform:translate(0)}to{transform:translate(70px,-40px)}}@keyframes idleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes blink{50%{opacity:0}}.glow-card{position:relative}.glow-card:after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .35s;pointer-events:none;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(95,232,220,.09),transparent 65%)}.glow-card:hover:after{opacity:1}@media(prefers-reduced-motion:no-preference){.hero,.cta{animation:gridDrift 9s linear infinite}.orb-1{animation:orbFloat 24s ease-in-out infinite alternate}.orb-2{animation:orbFloat2 30s ease-in-out infinite alternate}.photo-frame{animation:idleFloat 8s ease-in-out 3s infinite}.eyebrow:after{content:"";display:inline-block;width:8px;height:13px;background:var(--cyan);margin-left:8px;vertical-align:-2px;animation:blink 1.1s steps(1) infinite}}.marquee{overflow:hidden;border-bottom:1px solid var(--line);padding:16px 0;white-space:nowrap;background:var(--bg2)}.marquee-track{display:inline-block;animation:scroll 36s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}.marquee span{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--mut);margin:0 26px;letter-spacing:.06em}.marquee span em{font-style:normal;color:var(--cyan)}.stats{padding:80px 0 8px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.stat-card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;transition:border-color .2s,transform .2s}.stat-card:hover{border-color:#5fe8dc66;transform:translateY(-3px)}.stat-card .n{font-family:Sora,sans-serif;font-weight:800;font-size:42px;letter-spacing:-.02em}.stat-card .n em{font-style:normal;color:var(--cyan)}.stat-card .l{color:var(--mut);font-size:14px;margin-top:10px;line-height:1.55}.section{padding:88px 0}.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:44px;flex-wrap:wrap}.sec-kicker{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--cyan);letter-spacing:.12em;margin-bottom:14px}h2{font-family:Sora,sans-serif;font-weight:700;font-size:clamp(28px,3.2vw,38px);letter-spacing:-.02em}.sec-sub{color:var(--mut);font-size:16px;max-width:58ch;line-height:1.65;margin-top:12px}.sec-link{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--cyan);white-space:nowrap}.sec-link:hover{text-decoration:underline}.projects{border-top:1px solid var(--line);background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%)}.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.proj-card{background:var(--bg3);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .2s,transform .2s;cursor:pointer}.proj-card:hover{border-color:#5fe8dc73;transform:translateY(-4px)}.proj-shot{background:linear-gradient(135deg,#13202e,#1a2c3d);aspect-ratio:16/10.5;position:relative;overflow:hidden}.fake-ui{position:absolute;top:24px;left:24px;right:24px;height:200%;background:#f4f6f8;border-radius:8px 8px 0 0;box-shadow:0 14px 40px #00000080;padding:16px;transition:transform 2.8s cubic-bezier(.2,.6,.25,1)}.proj-card:hover .fake-ui{transform:translateY(-46%)}@media(prefers-reduced-motion:reduce){.proj-card:hover .fake-ui{transform:none}}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.8,.3,1),transform .7s cubic-bezier(.22,.8,.3,1);transition-delay:var(--d,0s)}.reveal.in{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.fake-ui .bar{height:9px;border-radius:5px;background:#dde4ea;margin-bottom:9px}.fake-ui .w60{width:60%}.fake-ui .w80{width:80%}.fake-ui .w40{width:40%}.fake-ui .blue{background:#3563c4;width:36%;height:22px;border-radius:6px;margin-top:14px}.fake-ui .green{background:#2f9e7d;width:36%;height:22px;border-radius:6px;margin-top:14px}.fake-ui .amber{background:#c4823a;width:36%;height:22px;border-radius:6px;margin-top:14px}.proj-body{padding:26px}.proj-meta{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--cyan);letter-spacing:.08em;margin-bottom:12px}.proj-body h3{font-family:Sora,sans-serif;font-size:20px;font-weight:700;margin-bottom:10px;letter-spacing:-.01em}.proj-body p{color:var(--mut);font-size:14.5px;line-height:1.6}.tools-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.tool-pill{font-size:11.5px;font-weight:600;color:var(--ink);background:var(--cyan-dim);border:1px solid rgba(95,232,220,.2);padding:4px 10px;border-radius:99px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.step{padding:34px 28px;border-right:1px solid var(--line);background:var(--bg2);position:relative}.step:last-child{border-right:none}.step .no{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--cyan);margin-bottom:18px}.step h3{font-family:Sora,sans-serif;font-size:18px;font-weight:700;margin-bottom:10px}.step p{color:var(--mut);font-size:14px;line-height:1.6}.stack{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2)}.stack-inner{display:flex;gap:14px 40px;flex-wrap:wrap;align-items:center;padding:40px 0}.stack-label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.12em;color:var(--mut)}.stack-item{font-family:Sora,sans-serif;font-weight:700;font-size:17px}.stack-item small{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--sand);font-weight:400;vertical-align:super;margin-left:4px}.quotes-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.quote-card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:36px}.quote-card blockquote{font-family:Sora,sans-serif;font-size:19px;font-weight:600;line-height:1.5;letter-spacing:-.01em}.quote-card blockquote .mark{color:var(--cyan)}.quote-card cite{display:block;margin-top:22px;font-style:normal;color:var(--mut);font-size:14px}.quote-card cite strong{color:var(--ink)}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}.about-photo{background:linear-gradient(160deg,#16283a,#1d3349);border-radius:16px;aspect-ratio:4/4.4;position:relative;border:1px solid var(--line)}.about-photo:after{content:"CASUAL PHOTO - TAIWAN / TRAVEL";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--mut);letter-spacing:.12em;text-align:center;padding:0 24px}.about-copy p{color:var(--mut);font-size:16px;line-height:1.75;margin-top:18px}.about-copy p strong{color:var(--ink);font-weight:600}.pricing{border-top:1px solid var(--line);background:var(--bg2)}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.price-big{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(34px,4vw,52px);letter-spacing:-.025em;line-height:1.1}.price-big .alt{color:var(--mut);font-size:.55em;font-weight:600;display:block;margin-top:10px;font-family:IBM Plex Mono,monospace;letter-spacing:0}.price-list{list-style:none}.price-list li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--mut);font-size:15px;line-height:1.6}.price-list li:last-child{border-bottom:none}.price-list .tick{color:var(--cyan);font-family:IBM Plex Mono,monospace;flex-shrink:0}.price-list strong{color:var(--ink);font-weight:600}.cta{padding:104px 0;text-align:center;background-image:linear-gradient(var(--gridline) 1px,transparent 1px),linear-gradient(90deg,var(--gridline) 1px,transparent 1px);background-size:48px 48px;border-top:1px solid var(--line)}.cta .sec-kicker{justify-content:center}.cta h2{font-size:clamp(32px,4vw,48px)}.cta p{color:var(--mut);font-size:17px;max-width:54ch;margin:20px auto 0;line-height:1.7}.cta .hero-cta{justify-content:center;margin-top:36px}.cta .email-line{margin-top:28px;font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--mut)}.cta .email-line a{color:var(--cyan)}.form-card{max-width:580px;margin:44px auto 0;text-align:left;background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:30px}.form-card h3{font-family:Sora,sans-serif;font-weight:700;font-size:21px;letter-spacing:-.02em}.form-card>p{color:var(--mut);font-size:14px;margin-top:6px}#contact-form{margin-top:20px;display:flex;flex-direction:column;gap:15px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--ink)}.field .opt{font-weight:400;color:var(--mut)}.field input,.field select,.field textarea{font-family:Inter,sans-serif;font-size:14.5px;color:var(--ink);background:var(--bg3);border:1px solid var(--line);border-radius:9px;padding:12px 13px;width:100%;transition:border-color .15s}.field input::placeholder,.field textarea::placeholder{color:var(--mut);opacity:.7}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cyan)}.field textarea{resize:vertical;min-height:84px}.field select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238da0ad' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:32px}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#e8745f}.field-error{color:#e8745f;font-size:12px}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-status{font-size:13.5px;padding:0}.form-status.is-error{color:#e8745f;padding:10px 12px;background:#e8745f14;border:1px solid rgba(232,116,95,.3);border-radius:8px}.form-status.is-success{color:var(--cyan)}.form-card .btn-pri{width:100%}.form-priv{color:var(--mut);font-size:12px;text-align:center;margin-top:2px}@media(max-width:520px){.field-row{grid-template-columns:1fr}.form-card{padding:22px}}footer{border-top:1px solid var(--line);padding:28px 48px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--mut);flex-wrap:wrap;gap:12px}footer ul{display:flex;gap:24px;list-style:none}footer a:hover{color:var(--ink)}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@media(max-width:960px){.wrap{padding:0 22px}nav{padding:18px 22px}nav ul li:not(:last-child){display:none}.hero-inner{grid-template-columns:1fr;gap:64px;padding:64px 0}.hero-photo{justify-self:center}.stats-grid,.process-grid{grid-template-columns:1fr 1fr}.step{border-bottom:1px solid var(--line)}.proj-grid{grid-template-columns:1fr}.quotes-grid,.about-grid,.price-grid{grid-template-columns:1fr;gap:36px}.section{padding:64px 0}}@media(max-width:560px){.stats-grid,.process-grid{grid-template-columns:1fr}.step{border-right:none}}.page{padding:96px 0 110px;min-height:62vh}.page .wrap{max-width:1160px}.page.legal .wrap{max-width:760px}.page h1{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(32px,4.4vw,46px);letter-spacing:-.025em;margin:.3em 0 .35em}.page p{color:var(--mut);font-size:16px;line-height:1.7;margin-bottom:1em}.page p strong,.page p a{color:var(--ink)}.page a{color:var(--cyan)}.page-center{text-align:center}.page-center .sec-kicker{display:inline-block}.page-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:36px}.legal h2{font-family:Sora,sans-serif;font-size:21px;font-weight:700;margin:1.6em 0 .4em}.legal-meta{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--mut);margin-bottom:32px}a.proj-card{text-decoration:none;color:inherit;display:block}.proj-shot img{position:absolute;top:0;left:0;width:100%;height:auto;display:block;transition:transform 2.8s cubic-bezier(.2,.6,.25,1)}.proj-card:hover .proj-shot img{transform:translateY(-67%)}@media(prefers-reduced-motion:reduce){.proj-card:hover .proj-shot img{transform:none}}.tool-pill-more{color:var(--mut);background:transparent}.carousel{position:relative}.carousel-viewport{overflow:hidden}.carousel-track{display:flex;gap:22px;will-change:transform;cursor:grab;touch-action:pan-y}.carousel-track:active{cursor:grabbing}.carousel-track>.proj-card{flex:0 0 auto}.carousel-controls{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.carousel-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--bg2);color:var(--ink);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s,background .2s}.carousel-arrow:hover{border-color:var(--cyan);color:var(--cyan)}.projects-page .projects-intro{color:var(--mut);font-size:17px;line-height:1.7;max-width:60ch;margin-top:14px}.filters{margin:36px 0 40px;display:flex;flex-direction:column;gap:18px}.filter-group{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}.filter-label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);min-width:64px}.filter-pills{display:flex;gap:8px;flex-wrap:wrap}.filter-pill{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--mut);background:var(--bg2);border:1px solid var(--line);padding:7px 14px;border-radius:99px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.filter-pill:hover{color:var(--ink);border-color:#5fe8dc66}.filter-pill.is-active{color:#06231f;background:var(--cyan);border-color:var(--cyan)}.filters-compact{flex-direction:row;flex-wrap:wrap;align-items:center;gap:14px 18px;margin:28px 0}.filter-select{display:inline-flex;align-items:center;gap:8px}.filter-select select{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--bg2);border:1px solid var(--line);padding:8px 30px 8px 13px;border-radius:99px;cursor:pointer;transition:border-color .15s;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238da0ad' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.filter-select select:hover,.filter-select select:focus{border-color:#5fe8dc80;outline:none}.filter-count{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-left:auto}.grid-all{row-gap:34px}.proj-card[hidden]{display:none}.no-results{color:var(--mut);font-size:15px;padding:40px 0;text-align:center}.project-detail .back-link{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--cyan);display:inline-block;margin-bottom:28px}.project-detail .back-link:hover{text-decoration:underline}.proj-head{max-width:1160px}.proj-head h1{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(30px,4vw,46px);letter-spacing:-.025em;margin:.25em 0 .1em}.proj-attrs{display:flex;flex-wrap:wrap;gap:14px 40px;margin:24px 0 22px;padding:0}.proj-attrs dt{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:4px}.proj-attrs dd{font-size:15px;color:var(--ink);margin:0}.proj-attrs dd a{color:var(--cyan)}.proj-tools{margin-bottom:26px}.project-detail .btn-pri{display:inline-block;text-decoration:none}.proj-copy{margin-top:30px}.proj-copy p{color:var(--mut);font-size:16px;line-height:1.8;margin-bottom:1em}.proj-gallery{margin-top:52px;columns:2;column-gap:26px}.proj-gallery img{width:100%;height:auto;margin-bottom:26px;break-inside:avoid;border:1px solid var(--line);border-radius:var(--radius)}@media(max-width:760px){.proj-gallery{columns:1}.proj-gallery img{margin-bottom:16px}}
