:root{--bg: #f1f1f3;--fg: #18181b;--fg-muted: #18181b;--glass-fill: linear-gradient(165deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .22) 100%);--glass-fill-hover: linear-gradient(165deg, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .38) 100%);--glass-border: rgba(255, 255, 255, .85);--glass-blur: 12px;--glass-saturate: 180%;--glass-shadow: 0 10px 30px rgba(24, 24, 27, .1), inset 0 1px 1px rgba(255, 255, 255, .95), inset 0 -10px 18px -14px rgba(255, 255, 255, .6);--glass-shadow-hover: 0 14px 36px rgba(24, 24, 27, .14), inset 0 1px 1px rgba(255, 255, 255, 1), inset 0 -10px 18px -14px rgba(255, 255, 255, .7);--blob-a: #e4e4e7;--blob-b: #ffffff;--blob-c: #d4d4d8;--status-online: #23a55a;--status-idle: #f0b132;--status-dnd: #f23f43;--status-offline: #9ca3af;--radius-lg: 28px;--font-heading: "Space Grotesk", sans-serif;--font-body: "DM Sans", sans-serif}body.dark-bg-text{--fg: #f4f4f5;--fg-muted: #f4f4f5;--glass-fill: linear-gradient(165deg, rgba(24, 24, 27, .55) 0%, rgba(24, 24, 27, .28) 100%);--glass-fill-hover: linear-gradient(165deg, rgba(24, 24, 27, .68) 0%, rgba(24, 24, 27, .4) 100%);--glass-border: rgba(255, 255, 255, .22);--glass-shadow: 0 10px 30px rgba(0, 0, 0, .35), inset 0 1px 1px rgba(255, 255, 255, .25), inset 0 -10px 18px -14px rgba(255, 255, 255, .12);--glass-shadow-hover: 0 14px 36px rgba(0, 0, 0, .4), inset 0 1px 1px rgba(255, 255, 255, .3), inset 0 -10px 18px -14px rgba(255, 255, 255, .16)}body.dark-bg-text .group{background:linear-gradient(165deg,#18181b4d,#18181b1f);border-color:#ffffff29}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.page{position:relative;min-height:100dvh;overflow-x:hidden}.blobs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.8;will-change:transform;animation:drift 22s ease-in-out infinite alternate}.blob--a{width:440px;height:440px;top:-10%;left:-8%;background:var(--blob-a)}.blob--b{width:400px;height:400px;top:30%;right:-12%;background:var(--blob-b);animation-delay:-7s}.blob--c{width:380px;height:380px;bottom:-12%;left:20%;background:var(--blob-c);animation-delay:-14s}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(40px,30px) scale(1.08)}}@media (prefers-reduced-motion: reduce){.blob,.hero__top,.handles,.pill-row,.group,.bottom-row,.row,.page-header,.portfolio-grid,.portfolio-card,.project-detail,.reviews-section,.reviews-list--feed,.baseplate-cta,.admin-title--shake{animation:none}.status-dot[data-status=online]:after{animation:none;display:none}.avatar{transition:none}a.row:active,.back-link:active,.portfolio-card:active,.project-detail__link:active,.baseplate-cta:active,.review-form__submit:active,.admin-review__approve:active,.admin-review__reject:active{transform:none}}.bg-avatar{position:fixed;top:-15%;right:-15%;bottom:-15%;left:-15%;z-index:0;background-size:cover;background-position:center;transform:scale(1.2);filter:blur(100px) saturate(160%);opacity:0;transition:opacity .9s ease;pointer-events:none}body.has-avatar-bg .bg-avatar{opacity:1}body.has-avatar-bg .blobs{opacity:0;transition:opacity .9s ease}.pill,.status-bubble,.row,.back-link,.portfolio-card,.project-detail__link,.baseplate-cta,.review-card,.review-form,.admin-review,.footer__pill{position:relative;overflow:hidden;background:var(--glass-fill);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}.pill:before,.status-bubble:before,.row:before,.back-link:before,.portfolio-card:before,.project-detail__link:before,.baseplate-cta:before,.review-card:before,.review-form:before,.admin-review:before,.footer__pill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff8c,#fff0 55%);pointer-events:none}.group{background:linear-gradient(165deg,#ffffff52,#ffffff1a);border:1px solid rgba(255,255,255,.6);box-shadow:0 10px 30px #18181b14,inset 0 1px 1px #ffffffb3;backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}.content{position:relative;z-index:1;max-width:480px;margin:0 auto;padding:92px 24px 40px;display:flex;flex-direction:column;min-height:100dvh}.hero{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:10px}.hero__top{display:flex;align-items:flex-start;gap:14px;width:100%;margin-bottom:6px}.hero__identity{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}.avatar-wrap{position:relative;flex-shrink:0;width:96px;height:96px}.avatar{position:absolute;top:0;right:0;bottom:0;left:0;width:96px;height:96px;border-radius:50%;object-fit:cover;background:#fff6;border:3px solid rgba(255,255,255,.85);box-shadow:var(--glass-shadow);display:block;opacity:1;transition:opacity .45s ease}.avatar.is-hidden{opacity:0;pointer-events:none}.avatar--placeholder{display:grid;place-items:center;font-family:var(--font-heading);font-weight:700;font-size:32px;color:#fff;background:linear-gradient(135deg,#a1a1aa,#52525b)}.status-dot{position:absolute;bottom:4px;right:4px;width:20px;height:20px;border-radius:50%;background:var(--status-offline);border:3px solid var(--bg);transition:background-color .2s ease}.status-dot[data-status=online]{background:var(--status-online)}.status-dot[data-status=idle]{background:var(--status-idle)}.status-dot[data-status=dnd]{background:var(--status-dnd)}.status-dot[data-status=offline]{background:var(--status-offline)}.status-dot[data-status=online]:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid var(--status-online);opacity:.6;animation:pulse-ring 2.2s ease-out infinite}@keyframes pulse-ring{0%{transform:scale(.8);opacity:.6}70%,to{transform:scale(1.7);opacity:0}}.status-bubble{width:fit-content;max-width:100%;margin:0;padding:12px 18px;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 8px;font-size:14px;line-height:1.4}.status-bubble[hidden]{display:none}.status-emoji{display:inline-block;width:18px;height:18px;vertical-align:-4px;margin-right:4px}.name{font-family:var(--font-heading);font-weight:700;font-size:28px;margin:0}.handles{font-family:var(--font-body);color:var(--fg-muted);margin:0;font-size:14px}.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}.pill[hidden]{display:none}.pill__icon{width:15px;height:15px;color:var(--fg-muted)}.pill__muted{color:var(--fg-muted);font-weight:400}.groups{position:relative;width:100%;margin-top:40px;display:flex;flex-direction:column;gap:28px}.groups:before{content:"";position:absolute;top:-40px;right:-24px;bottom:-80px;left:-24px;background:radial-gradient(60% 60% at 50% 30%,rgba(24,24,27,.06),transparent 70%);filter:blur(30px);z-index:-1;pointer-events:none}.group{padding:10px;border-radius:36px}.group__label{display:flex;align-items:center;gap:10px;margin:6px 8px 10px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}.group__rule{flex:1;height:1px;background:var(--glass-border)}.group__rows{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;justify-content:center;width:100%;padding:16px 44px;border-radius:999px;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}a.row:hover,a.row:focus-visible{background:var(--glass-fill-hover);transform:translateY(-1px);box-shadow:var(--glass-shadow-hover)}a.row:active{transform:scale(.97)}.row:focus-visible{outline:2px solid var(--fg-muted);outline-offset:2px}.row__icon{position:absolute;left:16px;width:20px;height:20px;color:var(--fg-muted);flex-shrink:0}.row__label{font-family:var(--font-heading);font-weight:600;font-size:15px;text-align:center}.bottom-row{margin-top:auto;padding-top:40px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.footer__pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--fg-muted);margin:0;padding:8px 16px;border-radius:999px}.page-header{display:flex;flex-direction:column;align-items:flex-start;gap:14px;width:100%}.back-link{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.back-link:hover,.back-link:focus-visible{background:var(--glass-fill-hover);transform:translateY(-1px);box-shadow:var(--glass-shadow-hover)}.back-link:active{transform:scale(.97)}.back-link:focus-visible{outline:2px solid var(--fg-muted);outline-offset:2px}.back-link svg{width:16px;height:16px}.page-title{font-family:var(--font-heading);font-weight:700;font-size:28px;margin:0}.portfolio-grid{width:100%;margin-top:32px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.portfolio-card{display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease;animation:fade-in-up .42s cubic-bezier(.16,1,.3,1) both}.portfolio-card:hover,.portfolio-card:focus-visible{background:var(--glass-fill-hover);transform:translateY(-2px);box-shadow:var(--glass-shadow-hover)}.portfolio-card:active{transform:scale(.98)}.portfolio-card:focus-visible{outline:2px solid var(--fg-muted);outline-offset:2px}.portfolio-grid .portfolio-card:nth-child(2){animation-delay:60ms}.portfolio-grid .portfolio-card:nth-child(3){animation-delay:.12s}.portfolio-grid .portfolio-card:nth-child(4){animation-delay:.18s}.portfolio-grid .portfolio-card:nth-child(5){animation-delay:.24s}.portfolio-grid .portfolio-card:nth-child(6){animation-delay:.3s}.portfolio-card__thumb{width:100%;aspect-ratio:4 / 3;background-size:cover;background-position:center}.portfolio-card__thumb--placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#d4d4d8,#a1a1aa);color:#ffffffd9}.portfolio-card__thumb--placeholder svg{width:32px;height:32px}.portfolio-card__body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}.portfolio-card__title{font-family:var(--font-heading);font-weight:600;font-size:15px}.portfolio-card__description{margin:0;font-size:13px;color:var(--fg-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-not-found{margin-top:40px;font-size:15px;color:var(--fg-muted)}.project-detail{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:8px}.project-detail__thumb{width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-lg);background-size:cover;background-position:center;overflow:hidden}.project-detail__thumb--placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#d4d4d8,#a1a1aa);color:#ffffffd9}.project-detail__thumb--placeholder svg{width:48px;height:48px}.project-detail__title{font-family:var(--font-heading);font-weight:700;font-size:24px;margin:8px 0 0}.project-detail__body{margin:0;font-size:14px;line-height:1.6;color:var(--fg)}.project-detail__link{display:inline-flex;align-self:flex-start;margin-top:8px;padding:10px 20px;border-radius:999px;font-family:var(--font-heading);font-weight:600;font-size:14px;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.project-detail__link:hover,.project-detail__link:focus-visible{background:var(--glass-fill-hover);transform:translateY(-1px);box-shadow:var(--glass-shadow-hover)}.project-detail__link:active{transform:scale(.97)}.baseplate-cta{display:inline-flex;align-items:center;gap:10px;align-self:center;margin:80px auto 0;padding:20px 36px;border-radius:999px;font-family:var(--font-heading);font-weight:700;font-size:18px;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.baseplate-cta:hover,.baseplate-cta:focus-visible{background:var(--glass-fill-hover);transform:translateY(-2px);box-shadow:var(--glass-shadow-hover)}.baseplate-cta:active{transform:scale(.97)}.baseplate-cta__arrow{width:20px;height:20px;transition:transform .2s ease}.baseplate-cta:hover .baseplate-cta__arrow{transform:translate(2px,-2px)}.reviews-section{width:100%;margin-top:40px;display:flex;flex-direction:column;gap:16px}.reviews-heading{font-family:var(--font-heading);font-weight:700;font-size:18px;margin:0}.reviews-list{display:flex;flex-direction:column;gap:12px}.reviews-list--feed{width:100%;margin-top:32px}.reviews-empty{font-size:14px;color:var(--fg-muted);margin:0}.review-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:var(--radius-lg)}a.review-card--feed{display:flex;text-decoration:none;color:inherit;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}a.review-card--feed:hover,a.review-card--feed:focus-visible{background:var(--glass-fill-hover);transform:translateY(-1px);box-shadow:var(--glass-shadow-hover)}.review-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.review-card__name{font-family:var(--font-heading);font-weight:600;font-size:14px}.review-card__stars{font-size:13px;letter-spacing:1px;color:var(--fg)}.review-card__comment{margin:0;font-size:14px;line-height:1.5;color:var(--fg)}.review-card__date{font-size:12px;color:var(--fg-muted)}.review-card__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}.review-card__project{font-size:12px;font-weight:600;color:var(--fg-muted)}.review-form{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:var(--radius-lg)}.review-form[hidden]{display:none}.admin-unlock{margin-top:32px;max-width:320px}.review-form__field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--fg)}.review-form__field input,.review-form__field select,.review-form__field textarea{font-family:var(--font-body);font-size:14px;font-weight:400;padding:10px 12px;border-radius:12px;border:1px solid var(--glass-border);background:#ffffffb3;color:#18181b;resize:vertical}.review-form__field input:focus-visible,.review-form__field select:focus-visible,.review-form__field textarea:focus-visible{outline:2px solid var(--fg-muted);outline-offset:1px}.review-form__honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.review-form__submit{align-self:flex-start;padding:10px 22px;border-radius:999px;border:none;font-family:var(--font-heading);font-weight:600;font-size:14px;cursor:pointer;background:var(--fg);color:var(--bg);transition:transform .2s ease,opacity .2s ease}.review-form__submit:hover{opacity:.85}.review-form__submit:active{transform:scale(.97)}.review-form__status{margin:0;font-size:13px;color:var(--fg-muted);min-height:18px}.review-form__status--ok{color:var(--status-online)}.review-form__status--error{color:var(--status-dnd)}.admin-root[hidden]{display:none}.admin-root{width:100%;margin-top:32px}.admin-review{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:var(--radius-lg);margin-bottom:12px}.admin-review__project{font-size:12px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em}.admin-review__actions{display:flex;align-items:center;gap:10px;margin-top:4px}.admin-review__approve,.admin-review__reject{padding:8px 16px;border-radius:999px;border:none;font-family:var(--font-heading);font-weight:600;font-size:13px;cursor:pointer;color:#fff;transition:transform .2s ease,opacity .2s ease}.admin-review__approve{background:var(--status-online)}.admin-review__reject{background:var(--status-dnd)}.admin-review__approve:hover,.admin-review__reject:hover{opacity:.85}.admin-review__approve:active,.admin-review__reject:active{transform:scale(.96)}.admin-review__badge{font-size:12px;font-weight:600;color:var(--status-online)}.admin-title--shake{animation:admin-title-shake .4s ease}@keyframes admin-title-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px) rotate(-1deg)}40%{transform:translate(6px) rotate(1deg)}60%{transform:translate(-4px) rotate(-.5deg)}80%{transform:translate(4px) rotate(.5deg)}}.admin-stats{display:flex;flex-wrap:wrap;gap:10px;width:100%;margin-top:32px;margin-bottom:24px}.admin-stat{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:var(--radius-lg);background:var(--glass-fill);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.admin-stat__value{font-family:var(--font-heading);font-weight:700;font-size:20px}.admin-stat__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted)}.admin-vibe{width:100%;margin:4px 0 0;font-size:14px;font-weight:600}.admin-export-btn{margin-top:20px;background:transparent;color:var(--fg);border:1px solid var(--glass-border)}.admin-portfolio{width:100%;margin-top:40px}.portfolio-admin-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.confetti-piece{position:fixed;width:8px;height:8px;border-radius:2px;pointer-events:none;z-index:1000;animation:confetti-burst .9s ease-out forwards}@keyframes confetti-burst{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero__top,.handles,.pill-row,.group,.bottom-row,.page-header,.portfolio-grid,.project-detail,.reviews-section,.reviews-list--feed,.baseplate-cta{animation:fade-in-up .52s cubic-bezier(.16,1,.3,1) both}.project-detail{animation-delay:60ms}.reviews-section{animation-delay:.14s}.reviews-list--feed,.baseplate-cta{animation-delay:60ms}.hero__top{animation-delay:0ms}.handles{animation-delay:70ms}.pill-row{animation-delay:.14s}.groups>.group:nth-child(1){animation-delay:.2s}.groups>.group:nth-child(2){animation-delay:.26s}.bottom-row{animation-delay:.38s}.page-header{animation-delay:0ms}.portfolio-grid{animation-delay:.14s}.row{animation:fade-in-up .42s cubic-bezier(.16,1,.3,1) both}.group__rows .row:nth-child(1){animation-delay:.26s}.group__rows .row:nth-child(2){animation-delay:.3s}.group__rows .row:nth-child(3){animation-delay:.34s}.group__rows .row:nth-child(4){animation-delay:.38s}@media (min-width: 640px) and (max-width: 899px){.content{padding-top:128px}}@media (min-width: 900px){.content{flex:1;justify-content:center;padding-top:40px;padding-bottom:40px}.content__center{width:100%;max-width:480px;transform:scale(1.18)}.bottom-row{margin-top:48px}}@media (max-width: 380px){.hero__top{flex-wrap:wrap}.hero__identity{flex-basis:100%}}
