.cover[data-astro-cid-rh43wxfv]{--cover-line:color-mix(in srgb, var(--fg) 22%, transparent);--ease:cubic-bezier(.22, 1, .36, 1);--dur:.4s;background-color:var(--surface);background-image:radial-gradient(var(--dash) 1px, transparent 1px);background-size:14px 14px;position:relative;overflow:hidden;container-type:inline-size}.cover[data-astro-cid-rh43wxfv][data-variant=card]{aspect-ratio:16/10;border:1px solid var(--cover-line);border-radius:.75rem}.cover[data-astro-cid-rh43wxfv][data-variant=detail]{position:absolute;inset:0}.cover[data-astro-cid-rh43wxfv]:before{content:"";z-index:0;opacity:0;pointer-events:none;background:linear-gradient(to bottom, color-mix(in srgb, var(--project-accent,var(--accent)) 75%, transparent), transparent 68%);transition:opacity var(--dur) var(--ease);position:absolute;inset:0}.cover[data-astro-cid-rh43wxfv][data-variant=detail]:before{opacity:.5}.project-card:hover .cover[data-astro-cid-rh43wxfv]:before,.project-card:focus-within .cover[data-astro-cid-rh43wxfv]:before{opacity:1}.browser[data-astro-cid-rh43wxfv]{--bx:3cqw;--by:4.8cqw;z-index:1;left:var(--bx);right:var(--bx);top:var(--by);aspect-ratio:16/9;box-shadow:0 0 0 1px var(--cover-line), 0 1.5cqw 4cqw #00000040;transform-origin:50% 0;will-change:transform;border-radius:1.6cqw;position:absolute;overflow:hidden}.cover[data-astro-cid-rh43wxfv][data-variant=detail] .browser[data-astro-cid-rh43wxfv]{--bx:7cqw;--by:3.9cqw}.browser[data-astro-cid-rh43wxfv] img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.cover[data-astro-cid-rh43wxfv][data-variant=card] .browser[data-astro-cid-rh43wxfv]{transition:transform var(--dur) var(--ease);transform:translateY(9cqw)scale(.92)}.phones[data-astro-cid-rh43wxfv]{z-index:1;justify-content:center;align-items:flex-end;gap:2.5cqw;display:flex;position:absolute;inset:0}.phone[data-astro-cid-rh43wxfv]{--w:25cqw;--ty:12%;--r:0deg;--s:1;width:var(--w);aspect-ratio:9/19.5;border:max(2px, calc(var(--w) * .035)) solid var(--fg);border-radius:calc(var(--w) * .16);transform-origin:50% 100%;transform:translateY(var(--ty)) rotate(var(--r)) scale(var(--s));will-change:transform;background:#000;flex:none;position:relative;overflow:hidden;box-shadow:0 1.5cqw 3cqw #0000004d}.phone[data-astro-cid-rh43wxfv]:after{content:"";top:calc(var(--w) * .05);width:28%;height:calc(var(--w) * .07);background:#000;border-radius:999px;position:absolute;left:50%;transform:translate(-50%)}.phone-2[data-astro-cid-rh43wxfv]{z-index:2}.phone[data-astro-cid-rh43wxfv] img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.phones[data-astro-cid-rh43wxfv][data-slice] .phone-1[data-astro-cid-rh43wxfv] img{object-position:14% 50%}.phones[data-astro-cid-rh43wxfv][data-slice] .phone-2[data-astro-cid-rh43wxfv] img{object-position:50% 50%}.phones[data-astro-cid-rh43wxfv][data-slice] .phone-3[data-astro-cid-rh43wxfv] img{object-position:86% 50%}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone[data-astro-cid-rh43wxfv]{transition:transform var(--dur) var(--ease)}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-1[data-astro-cid-rh43wxfv]{--r:-6deg}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-2[data-astro-cid-rh43wxfv]{--w:28cqw}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-3[data-astro-cid-rh43wxfv]{--r:6deg}.cover[data-astro-cid-rh43wxfv][data-variant=detail] .phones[data-astro-cid-rh43wxfv]{align-items:center;gap:4cqw}.cover[data-astro-cid-rh43wxfv][data-variant=detail] .phone[data-astro-cid-rh43wxfv]{--ty:0%;--w:18.5cqw}.cover[data-astro-cid-rh43wxfv][data-variant=detail] .phone-2[data-astro-cid-rh43wxfv]{--w:22cqw}@media (prefers-reduced-motion:no-preference){.project-card:hover .cover[data-astro-cid-rh43wxfv][data-variant=card] .browser[data-astro-cid-rh43wxfv],.project-card:focus-within .cover[data-astro-cid-rh43wxfv][data-variant=card] .browser[data-astro-cid-rh43wxfv]{transform:none}.project-card:hover .cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-1[data-astro-cid-rh43wxfv],.project-card:focus-within .cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-1[data-astro-cid-rh43wxfv]{--ty:1%;--r:-3deg;--s:1.05}.project-card:hover .cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-2[data-astro-cid-rh43wxfv],.project-card:focus-within .cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-2[data-astro-cid-rh43wxfv]{--ty:4%;--s:1.05}.project-card:hover .cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-3[data-astro-cid-rh43wxfv],.project-card:focus-within .cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-3[data-astro-cid-rh43wxfv]{--ty:1%;--r:3deg;--s:1.05}}@media (prefers-reduced-motion:reduce){.cover[data-astro-cid-rh43wxfv]:before,.cover[data-astro-cid-rh43wxfv][data-variant=card] .browser[data-astro-cid-rh43wxfv],.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone[data-astro-cid-rh43wxfv]{transition:none}.cover[data-astro-cid-rh43wxfv][data-variant=card] .browser[data-astro-cid-rh43wxfv]{transform:none}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-1[data-astro-cid-rh43wxfv]{--ty:1%;--r:-3deg;--s:1.05}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-2[data-astro-cid-rh43wxfv]{--ty:4%;--s:1.05}.cover[data-astro-cid-rh43wxfv][data-variant=card] .phone-3[data-astro-cid-rh43wxfv]{--ty:1%;--r:3deg;--s:1.05}}.detail[data-astro-cid-aih2bczu]{display:block}.demo-frame[data-astro-cid-aih2bczu]{aspect-ratio:16/9;border:1px solid color-mix(in srgb, var(--fg) 22%, transparent);background:var(--surface);border-radius:1rem;position:relative;overflow:hidden}.demo-frame[data-astro-cid-aih2bczu][data-playing=true]{background:#000}.demo-frame[data-astro-cid-aih2bczu] .demo-iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.head[data-astro-cid-aih2bczu]{flex-direction:column;align-items:flex-start;gap:.375rem;margin-top:1.25rem;display:flex}.title[data-astro-cid-aih2bczu]{letter-spacing:-.03em;text-wrap:balance;font-size:1.75rem;font-weight:700;line-height:1.1}[data-astro-cid-aih2bczu][data-variant=page] .title[data-astro-cid-aih2bczu]{font-size:clamp(2.25rem,4.5vw,3rem)}.year[data-astro-cid-aih2bczu]{color:var(--fg-muted);font-size:.875rem}.md-body[data-astro-cid-aih2bczu]{color:var(--fg);max-width:65ch;margin-top:1rem;font-size:1rem;line-height:1.65}.md-body[data-astro-cid-aih2bczu]>*+*{margin-top:.875rem}.md-body[data-astro-cid-aih2bczu] h2,.md-body[data-astro-cid-aih2bczu] h3{letter-spacing:-.02em;margin-top:1.5rem;font-weight:700;line-height:1.25}.md-body[data-astro-cid-aih2bczu] h2{font-size:1.25rem}.md-body[data-astro-cid-aih2bczu] h3{font-size:1.0625rem}.md-body[data-astro-cid-aih2bczu] ul,.md-body[data-astro-cid-aih2bczu] ol{padding-left:1.25rem}.md-body[data-astro-cid-aih2bczu] ul{list-style:outside}.md-body[data-astro-cid-aih2bczu] ol{list-style:decimal}.md-body[data-astro-cid-aih2bczu] a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.md-body[data-astro-cid-aih2bczu] code{background:var(--surface);border-radius:.375rem;padding:.1rem .35rem;font-size:.9em}.md-body[data-astro-cid-aih2bczu] pre{background:var(--surface);border-radius:.75rem;padding:.875rem 1rem;overflow-x:auto}.md-body[data-astro-cid-aih2bczu] pre code{background:0 0;padding:0}.tags[data-astro-cid-aih2bczu]{flex-wrap:wrap;gap:.375rem;margin-top:1.25rem;display:flex}.tag[data-astro-cid-aih2bczu]{border:1px dashed var(--dash);background:var(--surface);color:var(--fg-muted);border-radius:.5rem;padding:.125rem .5rem;font-size:.75rem;line-height:1.4}.actions[data-astro-cid-aih2bczu]{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.actions[data-astro-cid-aih2bczu] .btn{border:1px solid var(--fg);cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;min-height:2.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.actions[data-astro-cid-aih2bczu] .btn-primary{background:var(--fg);color:var(--bg)}.actions[data-astro-cid-aih2bczu] .btn-outline{border:1px dashed var(--border-strong);background:var(--surface);color:var(--fg)}.actions[data-astro-cid-aih2bczu] .btn-outline:hover{border-color:var(--fg)}.actions[data-astro-cid-aih2bczu] .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.actions[data-astro-cid-aih2bczu] .btn:disabled{cursor:default;opacity:.6}@media (pointer:coarse){.actions[data-astro-cid-aih2bczu] .btn{min-height:2.75rem}}
