.media-viewer.media-viewer{color:#f4ece6;background:0 0;border:0;border-radius:0;outline:none;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.media-viewer.media-viewer:focus-visible{outline:none}.media-viewer::backdrop{-webkit-backdrop-filter:blur(18px)saturate(110%);backdrop-filter:blur(18px)saturate(110%);background:#04060bf0}.media-viewer[open]{animation:.22s ease-out media-viewer-in}@keyframes media-viewer-in{0%{opacity:0}to{opacity:1}}.media-viewer-body{place-items:center;padding:56px 84px 40px;display:grid;position:absolute;inset:0}.media-viewer-figure{pointer-events:none;flex-direction:column;align-items:center;gap:16px;max-width:100%;max-height:100%;margin:0;display:flex}.media-viewer-screen{pointer-events:auto;background:#05070c;position:relative;overflow:hidden;box-shadow:0 40px 120px #000000b3,0 0 0 1px #ffffff1a}.media-viewer-phone .media-viewer-screen{aspect-ratio:720/1558;outline-offset:0;border-radius:clamp(28px,5.5vh,52px);outline:7px solid #17191f;height:min(100dvh - 150px,920px)}.media-viewer-monitor .media-viewer-screen{aspect-ratio:1280/803;border-radius:12px;width:min(100vw - 168px,1240px,159.402dvh - 239.103px)}.media-viewer-screen img{object-fit:cover;opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:opacity .35s}.media-viewer-screen img.is-current{opacity:1}.media-viewer-figure figcaption{text-align:center;color:#e9dfd8;pointer-events:auto;align-items:center;gap:12px;max-width:640px;font-size:14px;line-height:1.5;display:flex}.media-viewer-count{font-variant-numeric:tabular-nums;color:#cfc4bd;background:#ffffff14;border-radius:999px;flex-shrink:0;padding:2px 9px;font-size:12px}.media-viewer .media-viewer-arrow,.media-viewer .media-viewer-close{color:#fff4ea;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0f;border:1px solid #ffffff24;border-radius:50%;place-items:center;padding:0;font:300 26px/1 system-ui,sans-serif;transition:background .2s,border-color .2s,transform .2s;display:grid;position:fixed}.media-viewer .media-viewer-arrow{width:48px;height:48px;margin-top:-24px;padding-bottom:3px;top:50%}.media-viewer-prev{left:22px}.media-viewer-next{right:22px}.media-viewer .media-viewer-close{width:42px;height:42px;padding-bottom:2px;font-size:24px;top:18px;right:22px}.media-viewer .media-viewer-arrow:hover,.media-viewer .media-viewer-close:hover{background:#ffffff21;border-color:#ffffff40}.media-viewer-prev:hover{transform:translate(-2px)}.media-viewer-next:hover{transform:translate(2px)}.media-viewer .media-viewer-arrow:focus-visible,.media-viewer .media-viewer-close:focus-visible{outline-offset:2px;outline:2px solid #ffdfc4}.media-viewer-free .media-viewer-screen{aspect-ratio:var(--ar);width:min(calc(100vw - 168px), 1240px, calc((100dvh - 150px) * var(--ar)));border-radius:12px}.media-viewer-free .media-viewer-screen img{object-fit:contain}@media (max-width:640px){.media-viewer-figure figcaption{flex-direction:column;gap:6px;padding:0 8px}.media-viewer-free .media-viewer-screen{width:min(calc(100vw - 24px), calc((100dvh - 170px) * var(--ar)))}.media-viewer-body{padding:64px 12px 28px}.media-viewer-monitor .media-viewer-screen{aspect-ratio:1280/803;width:calc(100vw - 24px)}.media-viewer .media-viewer-arrow{width:42px;height:42px;margin-top:0;top:auto;bottom:18px}.media-viewer-phone .media-viewer-screen{aspect-ratio:720/1558;height:min(100dvh - 170px,920px)}.media-viewer-body{padding-bottom:76px}}@media (prefers-reduced-motion:reduce){.media-viewer-screen img{transition:none}.media-viewer[open]{animation:none}}
.device-carousel{width:100%;position:relative;container-type:inline-size}.device-stage{position:relative}.device-frame{z-index:1;position:relative}.device-screen{cursor:zoom-in;touch-action:pan-y;background:#05070c;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.device-screen img{object-fit:cover;opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:opacity .7s}.device-screen img.is-current{opacity:1}.device-screen:focus-visible{outline-offset:3px;outline:2px solid #ffdfc4}.device-phone .device-frame{background:linear-gradient(145deg,#3a3d45,#15171c 45%,#2a2d34);border-radius:15cqw;padding:3.2cqw;box-shadow:0 0 0 1px #ffffff1c,0 18px 40px #0000006b,0 4px 10px #00000040}.device-phone .device-screen{aspect-ratio:720/1558;border-radius:12cqw}.device-phone .device-frame:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(125deg,#ffffff14 0%,#0000 28%);border-radius:12cqw;position:absolute;inset:3.2cqw}.device-monitor .device-frame{background:linear-gradient(#2a2d34,#15171c);border-radius:2.6cqw;padding:1.6cqw 1.6cqw 3.6cqw;box-shadow:0 0 0 1px #ffffff1c,0 18px 40px #0000006b}.device-monitor .device-screen{aspect-ratio:1280/803;border-radius:1cqw}.device-monitor .device-frame:before{content:"";background:#ffffff26;border-radius:50%;width:1.2cqw;height:1.2cqw;margin-left:-.6cqw;position:absolute;bottom:1.2cqw;left:50%}.device-monitor .device-stage:after{content:"";clip-path:polygon(30% 0,70% 0,82% 100%,18% 100%);background:linear-gradient(#121419,#3a3e48);width:18cqw;height:8cqw;margin:-1px auto 0;display:block}.device-monitor .device-stage:before{content:"";z-index:0;background:linear-gradient(#4a4e59,#2a2d35);border-radius:1.2cqw 1.2cqw .5cqw .5cqw;width:36cqw;height:2cqw;margin-left:-18cqw;position:absolute;bottom:0;left:50%;box-shadow:0 6px 14px #00000059}.device-plain .device-frame{background:linear-gradient(#2a2d34,#15171c);border-radius:2.4cqw;padding:1.4cqw;box-shadow:0 0 0 1px #ffffff1c,0 18px 40px #0000006b}.device-plain .device-screen{border-radius:1.2cqw}.device-screen img.device-backdrop{object-fit:cover;opacity:.55;filter:blur(14px)saturate(120%);transition:none;transform:scale(1.15)}.device-carousel .device-arrow{z-index:3;color:#fff4ea;cursor:pointer;opacity:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1220c7;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:30px;height:30px;margin-top:-15px;padding:0 0 2px;font-size:18px;line-height:1;transition:opacity .2s,background .2s;display:grid;position:absolute;top:50%}.device-prev{left:-8px}.device-next{right:-8px}.device-carousel:hover .device-arrow,.device-arrow:focus-visible{opacity:1}.device-arrow:hover{background:#1b2236}@media (hover:none){.device-stage>.device-arrow{display:none}}.device-dots{justify-content:center;gap:5px;margin-top:12px;display:flex}.device-dots button{background:color-mix(in srgb, currentColor 26%, transparent);cursor:pointer;border:0;border-radius:3px;width:6px;height:6px;padding:0;transition:width .3s cubic-bezier(.2,.8,.2,1),background .2s;position:relative;overflow:hidden}.device-dots button:hover{background:color-mix(in srgb, currentColor 45%, transparent)}.device-dots button[aria-current]{width:20px}.device-dots i{border-radius:inherit;transform-origin:0;background:currentColor;animation:linear forwards device-fill;position:absolute;inset:0}@keyframes device-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.device-caption{text-align:center;opacity:.85;min-height:1.5em;margin:12px 0 0!important;font-size:13px!important;line-height:1.5!important}@media (prefers-reduced-motion:reduce){.device-screen img,.device-dots button{transition:none}.device-dots i{animation:none;transform:none}}
.project-showcase{--showcase-muted:var(--story-muted,var(--muted));--showcase-accent:var(--story-text,var(--accent));min-width:0}.community-demo{margin:0 0 20px}.community-demo iframe{aspect-ratio:16/9;background:#0a101b;border:1px solid #ffffff28;border-radius:12px;width:100%;display:block}.community-demo figcaption{color:var(--showcase-muted);margin-top:8px;font-size:11px;line-height:1.5}.community-demo figcaption a{color:var(--showcase-accent);white-space:nowrap}.project-gallery{margin:0 0 20px}.polsa-showcase{grid-template-columns:minmax(0,1fr) minmax(0,2.45fr);align-items:end;gap:22px;margin:6px 0 26px;display:grid}.polsa-device{min-width:0;margin:0}.polsa-device-phone{padding:0 6px}.polsa-device figcaption{text-align:center;flex-direction:column;align-items:center;gap:6px;margin-top:10px;display:flex}.polsa-device figcaption b{letter-spacing:.01em;color:var(--showcase-text,inherit);font-size:12px;font-weight:560}.gallery-preview{aspect-ratio:1512/827;cursor:zoom-in;background:0 0;border:0;border-radius:0;width:100%;padding:0;display:block;position:relative}.gallery-preview img{object-fit:contain;border-radius:6px;width:100%;height:100%;margin:auto;display:block;position:absolute;inset:0}.gallery-preview>span{color:#fff;filter:drop-shadow(0 1px 3px #000);place-items:center;width:30px;height:30px;font-size:20px;display:grid;position:absolute;bottom:8px;right:8px}.gallery-caption{color:var(--showcase-muted);margin:8px 0;font-size:11px;line-height:1.5}.gallery-stage{position:relative}.gallery-arrow{color:#fff4e9;text-shadow:0 1px 4px #000,0 0 8px #000;cursor:pointer;background:0 0;border:0;place-items:center;width:44px;height:44px;padding:0 0 3px;font-size:30px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-prev{left:8px}.gallery-next{right:8px}.gallery-arrow:hover{color:#ffdfc4}.gallery-arrow:focus-visible,.gallery-preview:focus-visible{outline-offset:3px;outline:2px solid #f2d4b5}.gallery-count{color:#fff4e9;pointer-events:none;background:#101827b3;border-radius:12px;padding:3px 8px;font-size:10px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}@media (hover:hover) and (pointer:fine){.gallery-arrow,.gallery-count,.gallery-preview>span{opacity:0;transition:opacity .18s}.gallery-arrow{pointer-events:none}.gallery-stage:hover .gallery-arrow,.gallery-stage:hover .gallery-count,.gallery-stage:hover .gallery-preview>span{opacity:1}.gallery-stage:has(:focus-visible) .gallery-arrow{opacity:1}.gallery-stage:has(:focus-visible) .gallery-count{opacity:1}.gallery-stage:has(:focus-visible) .gallery-preview>span{opacity:1}.gallery-stage:hover .gallery-arrow{pointer-events:auto}.gallery-stage:has(:focus-visible) .gallery-arrow{pointer-events:auto}}.project-gallery button:focus-visible,.community-demo:focus-visible{outline-offset:3px;outline:2px solid #f2d4b5}@media (prefers-reduced-motion:reduce){.project-showcase *{transition:none!important}}
.about-photos{min-width:0;max-width:640px;margin:24px 0}
.experience-list{--experience-muted:var(--muted);--experience-line:var(--border);--experience-accent:var(--accent);margin:20px 0 0;padding:0;list-style:none}.planet-story .experience-list{--experience-muted:#d9cfcc;--experience-line:#ffffff20;--experience-accent:#ffdfc4}.experience-list>li{border-bottom:1px solid var(--experience-line)}.experience-list>li:last-child{border-bottom:0}.experience-detail>summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 16px;align-items:start;gap:12px;padding:18px 0;list-style:none;display:grid}.experience-detail>summary::-webkit-details-marker{display:none}.experience-role{font-size:15px;font-weight:500;line-height:1.45;display:block}.experience-company{color:var(--experience-muted);align-items:center;gap:7px;margin-top:4px;font-size:14px;line-height:1.5;display:flex}.experience-date{color:var(--experience-muted);white-space:nowrap;font-size:12px;line-height:1.8}.experience-toggle{color:var(--experience-muted);text-align:center;font-size:19px;line-height:1.2}.experience-detail[open] .experience-toggle{transform:rotate(45deg)}.experience-detail>summary:hover .experience-role{color:var(--experience-accent)}.experience-body{padding:0 0 20px}.experience-blurb{margin:0 0 14px;font-size:14px;line-height:1.7}.experience-bullets{color:var(--experience-muted);margin:20px 0;padding-left:18px;font-size:14px;line-height:1.75;list-style:outside}.experience-bullets li{margin-bottom:9px;padding-left:3px}.experience-bullets li::marker{color:var(--experience-accent)}.experience-meta{color:var(--experience-muted);flex-direction:column;gap:4px;padding-top:0;font-size:14px;line-height:1.6;display:flex}.experience-links{margin-top:18px}@media (max-width:760px){.experience-detail>summary{grid-template-columns:minmax(0,1fr) 20px;gap:5px 12px;padding:17px 0}.experience-date{grid-area:2/1}.experience-toggle{grid-area:1/2}}.experience-company-logo{object-fit:contain;flex-shrink:0;width:22px;height:22px}.experience-bullets li:last-child{margin-bottom:0}
.famzy-showcase{width:100%;max-width:214px;margin:26px 0 24px max(0px,50% - 172px)}.famzy-mascot{z-index:2;pointer-events:none;width:76cqw;position:absolute;bottom:2cqw;right:-70cqw}.famzy-mascot img{transform-origin:50% 100%;filter:drop-shadow(0 8px 12px #00000059);width:100%;height:auto;animation:.5s cubic-bezier(.3,1.45,.5,1) both famzy-pop;display:block}@keyframes famzy-pop{0%{opacity:0;transform:translateY(10%)scale(.86)rotate(-6deg)}to{opacity:1;transform:none}}@media (max-width:420px){.famzy-showcase{max-width:184px;margin-left:max(0px,50% - 150px)}.famzy-mascot{width:66cqw;right:-56cqw}}@media (prefers-reduced-motion:reduce){.famzy-mascot img{animation:none}}
.graduation-video{box-sizing:border-box;background:#0b0f18;border:1px solid #ffffff30;border-radius:10px;width:100%;max-width:640px;margin:18px 0;padding:3px;position:relative;box-shadow:0 10px 30px #0005}.graduation-video video{aspect-ratio:788/444;border-radius:6px;width:100%;display:block}.graduation-video-control{color:#fff4e9;cursor:pointer;background:#0b0f18cc;border:1px solid #fff4;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.graduation-video-control.is-playing{opacity:0}.graduation-video:hover .graduation-video-control,.graduation-video-control:focus-visible{opacity:1}.graduation-video-control:focus-visible{outline-offset:3px;outline:2px solid #fff4e9}
.websites-section{padding:56px 0;scroll-margin-top:80px}.websites-section>h2{letter-spacing:-.035em;margin:0 0 24px;font-size:26px;font-weight:550}.website-gallery{--sites-muted:var(--muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;margin:0;padding:0;list-style:none;display:grid}.website-card{border-radius:8px;display:block}.website-card:focus-visible{outline-offset:7px;outline:2px solid}.website-preview{aspect-ratio:16/9;background:#272832;border:1px solid #85859b30;border-radius:8px;position:relative;overflow:hidden}.website-preview img{object-fit:cover;object-position:top}.website-card-title{justify-content:space-between;align-items:baseline;gap:12px;margin-top:14px;display:flex}.website-card-title h3{letter-spacing:-.025em;margin:0;font-size:17px;font-weight:550;line-height:1.35}.website-card-title>span{color:var(--sites-muted)}.website-card:hover h3{text-underline-offset:4px;text-decoration:underline}.website-card p{color:var(--sites-muted);margin:7px 0 9px;font-size:14px;line-height:1.55}.website-address{color:var(--sites-muted);overflow-wrap:anywhere;font-size:12px}.websites-open{width:100%;min-height:52px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #ffffff30;align-items:center;gap:10px;margin-top:28px;padding:14px 0 0;font-size:15px;display:flex}.websites-open svg{width:21px;height:21px}.websites-open>span{margin-left:auto}.websites-open:hover{color:#ffe4be}.websites-dialog{color:#f6f2ed;overscroll-behavior:contain;background:#202431;border:1px solid #ffffff25;border-radius:18px;width:min(1040px,100vw - 32px);max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;box-shadow:0 24px 100px #0006}.websites-dialog::backdrop{background:#141724c9}.websites-dialog .website-gallery{--sites-muted:#bcbfca}.websites-dialog-header{z-index:1;background:#202431;border-bottom:1px solid #ffffff18;justify-content:space-between;align-items:center;gap:16px;padding:20px 28px;display:flex;position:sticky;top:0}.websites-dialog-header h2{letter-spacing:-.035em;margin:0;font-size:clamp(21px,3vw,29px);font-weight:500}.websites-dialog-header button{height:44px;color:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff30;border-radius:50%;flex:0 0 44px;place-items:center;font-size:27px;display:grid}.websites-dialog-header button:hover{background:#ffffff12}.websites-dialog-content{padding:28px}@media (max-width:600px){.website-gallery{grid-template-columns:minmax(0,1fr);gap:28px}.websites-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.websites-dialog-header{padding:14px 18px}.websites-dialog-content{padding:20px 18px}}
