/* ===== Design System — portfolio + zarco-permission-calculator fusion ===== */
:root{
  color-scheme: dark;
  --bg: oklch(0.085 0 0);
  --fg: oklch(0.97 0 0);
  --card: oklch(0.12 0 0);
  --card-fg: oklch(0.97 0 0);
  --popover: oklch(0.12 0 0);
  --popover-fg: oklch(0.97 0 0);
  --primary: oklch(0.64 0.22 260);
  --primary-light: #00fff5;
  --primary-dark: #003a32;
  --accent: #00796b;
  --secondary: oklch(0.16 0 0);
  --secondary-fg: oklch(0.97 0 0);
  --muted: oklch(0.16 0 0);
  --muted-fg: oklch(0.66 0 0);
  --accent-bg: oklch(0.18 0 0);
  --destructive: oklch(0.72 0 0);
  --warning: #ff9800;
  --success: #4caf50;
  --border: oklch(1 0 0 / 9%);
  --input: oklch(1 0 0 / 14%);
  --ring: oklch(0.96 0 0 / 60%);
  --radius: 1rem;
  --border-radius: 12px;
  --transition: all 0.3s ease;
  --shadow: 0 8px 20px rgba(0,0,0,0.15);
  --shadow-hover: 0 12px 25px rgba(0,0,0,0.2);
  --valid: #31d0c6;
  --invalid: #f9754c;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;padding:20px;
  font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
  background:var(--bg);color:var(--fg);min-height:100vh;
}
a{color:var(--primary-light);text-decoration:none;}
a:hover{text-decoration:underline;}
button{cursor:pointer;border:none;background:none;font:inherit;color:inherit;}
button:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:6px;}
button:disabled{opacity:0.5;cursor:not-allowed;}
ul{list-style:none;}
.container{max-width:1400px;margin:0 auto;}
.flex{display:flex;}
.inline-flex{display:inline-flex;}
.grid{display:grid;}
.items-center{align-items:center;}
.justify-center{justify-content:center;}
.justify-between{justify-content:space-between;}
.flex-col{flex-direction:column;}
.flex-wrap{flex-wrap:wrap;}
.gap-2{gap:0.5rem;}
.gap-4{gap:1rem;}
.gap-10{gap:2.5rem;}
.mx-auto{margin-left:auto;margin-right:auto;}
.mt-4{margin-top:1rem;}
.mt-6{margin-top:1.5rem;}
.mt-8{margin-top:2rem;}
.mt-10{margin-top:2.5rem;}
.mt-12{margin-top:3rem;}
.mb-8{margin-bottom:2rem;}
.px-6{padding-left:1.5rem;padding-right:1.5rem;}
.py-4{padding-top:1rem;padding-bottom:1rem;}
.py-8{padding-top:2rem;padding-bottom:2rem;}
.py-12{padding-top:3rem;padding-bottom:3rem;}
.py-20{padding-top:5rem;padding-bottom:5rem;}
.pr-2{padding-right:0.5rem;}
.pl-6{padding-left:1.5rem;}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem;}
.relative{position:relative;}
.absolute{position:absolute;}
.fixed{position:fixed;}
.sticky{position:sticky;}
.inset-0{top:0;right:0;bottom:0;left:0;}
.top-0{top:0;}
.left-1\/2{left:50%;}
.-translate-x-1\/2{transform:translateX(-50%);}
.z-0{z-index:0;}
.z-1{z-index:1;}
.z-30{z-index:30;}
.z-40{z-index:40;}
.z-50{z-index:50;}
.overflow-hidden{overflow:hidden;}
.pointer-events-none{pointer-events:none;}
.opacity-0{opacity:0;}
.opacity-75{opacity:0.75;}
.w-full{width:100%;}
.h-6{height:1.5rem;}
.size-2{width:0.5rem;height:0.5rem;}
.size-4{width:1rem;height:1rem;}
.size-10{width:2.5rem;height:2.5rem;}
.size-full{width:100%;height:100%;}
.max-w-md{max-width:28rem;}
.max-w-xl{max-width:36rem;}
.max-w-2xl{max-width:42rem;}
.max-w-4xl{max-width:56rem;}
.max-w-6xl{max-width:72rem;}
.min-h-svh{min-height:svh;}
.border{border-width:1px;}
.border-t{border-top-width:1px;}
.border-border{border-color:var(--border);}
.rounded-full{border-radius:9999px;}
.rounded-lg{border-radius:calc(var(--radius)*0.6);}
.rounded-2xl{border-radius:calc(var(--radius)*1.4);}
.rounded-3xl{border-radius:calc(var(--radius)*1.8);}
.rounded-xl{border-radius:calc(var(--radius)*1.4);}
.font-sans{font-family:ui-sans-serif,system-ui,sans-serif;}
.font-display{font-family:'Sora',ui-sans-serif,system-ui,sans-serif;}
.font-mono{font-family:ui-monospace,SFMono-Regular,monospace;}
.font-bold{font-weight:700;}
.font-semibold{font-weight:600;}
.font-medium{font-weight:500;}
.text-xs{font-size:0.75rem;}
.text-sm{font-size:0.875rem;}
.text-lg{font-size:1.125rem;}
.text-xl{font-size:1.25rem;}
.text-2xl{font-size:1.5rem;}
.text-4xl{font-size:2.25rem;}
.text-5xl{font-size:3rem;}
.text-6xl{font-size:3.75rem;}
.tracking-tight{letter-spacing:-0.025em;}
.tracking-tighter{letter-spacing:-0.05em;}
.tracking-widest{letter-spacing:0.1em;}
.leading-none{line-height:1;}
.leading-\[0\.9\]{line-height:0.9;}
.leading-relaxed{line-height:1.625;}
.text-balance{text-wrap:balance;}
.text-pretty{text-wrap:pretty;}
.text-center{text-align:center;}
.text-left{text-align:left;}
.uppercase{text-transform:uppercase;}
.whitespace-nowrap{white-space:nowrap;}
.text-foreground{color:var(--fg);}
.text-muted-foreground{color:var(--muted-fg);}
.text-primary{color:var(--primary);}
.text-primary-foreground{color:#000;}
.text-secondary-foreground{color:var(--secondary-fg);}
.underline-offset-4{text-underline-offset:4px;}
.bg-transparent{background:transparent;}
.bg-card{background:var(--card);}
.bg-card\/60{background:color-mix(in oklch,var(--card)60%,transparent);}
.bg-black\/60{background:color-mix(in oklch,black 60%,transparent);}
.bg-primary{background:var(--primary);}
.bg-secondary{background:var(--secondary);}
.bg-border{background:var(--border);}
.backdrop-blur{backdrop-filter:blur(4px);}
.backdrop-blur-2xl{backdrop-filter:blur(24px);}
.transition-all{transition:all 0.2s ease;}
.transition-colors{transition:color 0.2s ease,border-color 0.2s ease,background-color 0.2s ease;}
.transition-transform{transition:transform 0.2s ease;}
.duration-200{transition-duration:0.2s;}
.duration-300{transition-duration:0.3s;}
.duration-500{transition-duration:0.5s;}
.ease-out{transition-timing-function:ease-out;}
.will-change-transform{will-change:transform;}
.select-none{user-select:none;}
.outline-none{outline:none;}
.cursor-default{cursor:default;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
@media (max-width: 640px){.sm\:hidden{display:none;}.sm\:px-12{padding-left:3rem;padding-right:3rem;}.sm\:py-40{padding-top:10rem;padding-bottom:10rem;}}
@media (min-width: 640px){.sm\:flex{display:flex;}.sm\:gap-1{gap:0.25rem;}.sm\:ml-2{margin-left:0.5rem;}.sm\:px-12{padding-left:3rem;padding-right:3rem;}.sm\:py-40{padding-top:10rem;padding-bottom:10rem;}.sm\:self-end{align-self:flex-end;}.sm\:h-12{height:3rem;}.sm\:px-3\.5{padding-left:0.875rem;padding-right:0.875rem;}.sm\:py-24{padding-top:6rem;padding-bottom:6rem;}}
@media (min-width: 768px){.md\:flex{display:flex;}.md\:flex-row{flex-direction:row;}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.md\:items-end{align-items:flex-end;}.md\:justify-between{justify-content:space-between;}.md\:px-12{padding-left:3rem;padding-right:3rem;}.md\:py-20{padding-top:5rem;padding-bottom:5rem;}.md\:py-40{padding-top:10rem;padding-bottom:10rem;}.md\:text-4xl{font-size:2.25rem;}.md\:text-5xl{font-size:3rem;}.md\:text-7xl{font-size:4.5rem;}.md\:text-xl{font-size:1.25rem;}.md\:max-w-4xl{max-width:56rem;}.md\:w-full{width:100%;}}
/* Toast */
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(120px);background:rgba(15,17,22,0.9);color:#fff;border-radius:calc(var(--radius)*0.8);padding:0.85rem 1.25rem;display:flex;align-items:center;gap:0.75rem;opacity:0;pointer-events:none;transition:all .35s cubic-bezier(.34,1.56,.64,1);z-index:100;box-shadow:0 20px 40px -10px rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.08);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast .toast-icon{width:1rem;height:1rem;background:var(--primary);border-radius:50%;}
/* Theme toggle */
.theme-toggle{position:relative;width:2.25rem;height:1.125rem;border-radius:9999px;background:rgba(255,255,255,0.08);border:1px solid var(--border);cursor:pointer;display:inline-flex;align-items:center;padding:0.18rem;transition:all .3s;}
.theme-toggle .knob{width:0.75rem;height:0.75rem;background:#fff;border-radius:50%;transform:translateX(0);transition:transform .3s;}
.theme-toggle.dark .knob{transform:translateX(1.125rem);}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;}.reveal{opacity:1;transform:none;filter:none;}}
/* Animations */
@keyframes rise{from{opacity:0;transform:translateY(110%)}to{opacity:1;transform:translateY(0)}}
@keyframes fade-up{from{opacity:0;transform:translateY(16px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes drift{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(6%,-8%)scale(1.08)}66%{transform:translate(-6%,6%)scale(0.95)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pulse-ring{0%{transform:scale(1);opacity:0.7}100%{transform:scale(2.6);opacity:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes shimmer{from{background-position:200% center}to{background-position:-200% center}}
@keyframes word-in{from{opacity:0;transform:translateY(60%)rotateX(-70deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes caret-blink{0%,50%{opacity:1}51%,100%{opacity:0}}
.animate-rise{animation:rise 0.9s cubic-bezier(0.22,1,0.36,1) both}
.animate-fade-up{animation:fade-up 0.8s cubic-bezier(0.22,1,0.36,1) both}
.animate-drift{animation:drift 18s ease-in-out infinite}
.animate-marquee{animation:marquee 28s linear infinite}
.animate-pulse-ring{animation:pulse-ring 1.8s cubic-bezier(0.22,1,0.36,1) infinite}
.animate-float{animation:float 3.2s ease-in-out infinite}
.animate-word-in{animation:word-in 0.7s cubic-bezier(0.22,1,0.36,1) both}
.animate-orbit{animation:orbit 14s linear infinite}
.text-shimmer{background-image:linear-gradient(110deg,var(--primary)35%,#fff50%,var(--primary)65%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 4s linear infinite;}
.reveal{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1),filter .9s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.reveal[data-visible="true"]{opacity:1;transform:none;filter:none}
/* Background layers */
.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.aurora-blob{position:absolute;border-radius:50%;filter:blur(120px);opacity:0.15;will-change:transform;}
.b1{width:60vmax;height:60vmax;background:var(--primary-light)/15;top:-10%;left:-10%;animation:drift 18s ease-in-out infinite;}
.b2{width:50vmax;height:50vmax;background:oklch(0.58 0.15 300)/15;right:-15%;bottom:-20%;animation:drift 18s ease-in-out infinite;animation-delay:-9s;}
.grain{position:fixed;inset:0;z-index:40;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:0.04;mix-blend-mode:overlay;}
.cursor-glow{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:0;transition:opacity .5s;background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%),color-mix(in oklch,var(--primary)7%,transparent),transparent 70%);}
/* Header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(13,14,18,0.7);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);}
/* Hero */
.hero{position:relative;isolation:isolate;padding-top:2rem;}
/* Builder */
.builder{max-width:1260px;margin:0 auto 4rem;padding:0 1rem;}
.builder h2{font-family:var(--font-display);font-size:1.8rem;font-weight:700;margin-bottom:0.5rem;letter-spacing:-0.01em;}
.section-head{padding-bottom:0.5rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem;}
.builder-grid{display:grid;gap:1.5rem;grid-template-columns:1fr 1.15fr;align-items:start;}
@media(max-width:1000px){.builder-grid{grid-template-columns:1fr;}}
.stack{display:grid;gap:1.5rem;}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;position:relative;overflow:hidden;transition:all .3s ease;}
.card:hover{transform:translateY(-2px);border-color:color-mix(in oklch,var(--primary)40%,transparent);box-shadow:0 20px 40px -15px rgba(139,92,246,0.25);}
.spotlight{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;transition:all .5s ease;}
.spotlight::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s ease;background:radial-gradient(320px circle at var(--x,50%) var(--y,50%),color-mix(in oklch,var(--primary)18%,transparent),transparent 70%);}
.spotlight:hover::before{opacity:1;}
.spotlight:hover{transform:translateY(-1px);border-color:color-mix(in oklch,var(--primary)50%,transparent);}
.card-head{display:flex;gap:0.65rem;margin-bottom:0.9rem;align-items:flex-end;flex-wrap:wrap;}
.step-badge{background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;border-radius:50%;width:1.5rem;height:1.5rem;font-size:0.95rem;text-align:center;flex-shrink:0;box-shadow:0 8px 16px -8px rgba(139,92,246,0.8);}
.card-head h3{font-size:1.15rem;line-height:1.1;margin-bottom:0.18rem;}
.card-head p{font-size:0.82rem;color:var(--muted-fg);margin:0;}
.card .count-pill{margin-left:auto;font-size:0.85rem;color:var(--muted-fg);font-weight:600;}
/* Forms */
.field{margin-bottom:1.25rem;}
.field label{display:block;font-size:0.75rem;font-weight:600;color:var(--muted-fg);margin-bottom:0.35rem;letter-spacing:0.02em;text-transform:uppercase;}
.field .field-label{font-size:0.8rem;color:var(--fg);font-weight:600;display:block;margin-bottom:0.4rem;}
.input-wrap{position:relative;display:flex;align-items:center;}
.input-badge{position:absolute;right:0.7rem;width:0.9rem;height:0.9rem;border-radius:50%;font-size:0.65rem;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.input-badge::after{content:'';display:none;width:0.5rem;height:0.5rem;border-radius:50%;}
.input-badge.badge-ok::after{display:block;background:var(--valid);box-shadow:0 0 6px var(--valid);}
.input-badge.badge-bad::after{display:block;background:var(--invalid);box-shadow:0 0 6px var(--invalid);}
.field .hint{font-size:0.72rem;color:var(--muted-fg);margin:0.22rem 0;}
.field .opt{font-weight:600;color:var(--muted-fg);font-size:0.8rem;}
.advanced{margin-top:0.7rem;border-top:1px solid var(--border);padding-top:0.7rem;}
.advanced summary{font-weight:600;color:var(--fg);display:flex;align-items:center;gap:0.5rem;cursor:pointer;list-style:none;}
.advanced summary svg{fill:var(--muted-fg);stroke:var(--primary);stroke-width:1.5;transition:transform .25s;}
.advanced[open] summary svg{transform:rotate(90deg);}
.advanced-body{padding-top:0.6rem;}
.row-actions{display:flex;gap:0.5rem;flex-wrap:wrap;}
/* Bot preview */
.bot-preview{display:flex;gap:0.8rem;align-items:center;padding:0.9rem 1rem;border-radius:var(--radius-sm);background:rgba(255,255,255,0.04);border:1px dashed rgba(255,255,255,0.08);margin-top:0.6rem;}
.bot-avatar{width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,0.1);overflow:hidden;display:grid;place-items:center;}
.bot-avatar img{width:100%;height:100%;object-fit:cover;}
.bot-meta strong{font-size:0.95rem;}
.bot-meta small{font-size:0.76rem;color:var(--muted-fg);display:block;}
/* Segmented control */
.segmented{position:relative;display:grid;grid-template-columns:1fr 1fr;background:color-mix(in oklch,var(--primary)6%,transparent);border-radius:var(--radius-sm);overflow:hidden;}
.segmented input{position:absolute;opacity:0;}
.segmented label{background:transparent;color:var(--muted-fg);padding:0.6rem;font-size:0.85rem;cursor:pointer;position:relative;z-index:1;transition:color .2s;}
.segmented input:checked + label{color:#fff;}
.segmented .glider{position:absolute;top:0;left:0;width:50%;height:100%;background:linear-gradient(135deg,#8b5cf6,#3b82f6);border-radius:calc(var(--radius-sm)-3px);box-shadow:0 8px 18px -8px rgba(139,92,246,0.9);transition:transform .35s cubic-bezier(.4,1.4,.6,1);z-index:0;}
#install-guild:checked ~ .glider{transform:translateX(0%);}
#install-user:checked ~ .glider{transform:translateX(100%);}
/* Scope rows */
.scope-row{display:flex;align-items:flex-start;gap:0.7rem;padding:0.6rem;border-radius:var(--radius-sm);border:1.5px solid rgba(255,255,255,0.06);background:rgba(255,255,255,0.03);cursor:pointer;transition:all .2s;}
.scope-row:hover{border-color:color-mix(in oklch,var(--primary)40%,transparent);background:rgba(255,255,255,0.06);transform:translateY(-1px);}
.scope-row input{margin-top:0.28rem;}
.scope-text{font-size:0.9rem;line-height:1.35;}
.scope-text strong{color:var(--fg);margin-right:0.2rem;}
.scope-text small{color:var(--muted-fg);display:block;margin-top:0.1rem;font-size:0.78rem;}
/* Permissions toolbar & list */
.perm-toolbar{margin:1rem 0;display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;}
.search-wrap{display:flex;align-items:center;gap:0.4rem;background:rgba(255,255,255,0.06);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0.5rem 0.6rem;}
.search-wrap i{fill:var(--muted-fg);stroke:var(--primary);stroke-width:1.5;}
.search-wrap input{border:none;background:transparent;margin:0;padding:0;font-size:0.9rem;flex:1;color:var(--fg);}
.preset-row{display:flex;gap:0.5rem;flex-wrap:wrap;}
.preset{font-size:0.78rem;background:rgba(255,255,255,0.06);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0.35rem 0.55rem;cursor:pointer;transition:all .18s;font-weight:500;}
.preset:hover{border-color:color-mix(in oklch,var(--primary)40%,transparent);background:rgba(255,255,255,0.08);transform:translateY(-1px);}
.preset.active{background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;border-color:transparent;box-shadow:0 10px 20px -8px rgba(139,92,246,0.6);}
.perm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0.65rem;}
.perm{display:flex;align-items:flex-start;gap:0.55rem;background:rgba(255,255,255,0.03);border:1.5px solid rgba(255,255,255,0.06);border-radius:var(--radius-sm);padding:0.5rem 0.6rem;cursor:pointer;transition:all .18s;position:relative;overflow:hidden;}
.perm:hover{background:rgba(255,255,255,0.06);border-color:color-mix(in oklch,var(--primary)30%,transparent);transform:translateY(-1px);z-index:2;}
.perm input{margin-top:0.25rem;accent-color:var(--primary);}
.perm-label{font-size:0.84rem;color:var(--fg);font-weight:500;line-height:1.35;}
.perm.tooltip::after{content:attr(data-tip);position:absolute;bottom:calc(100%+8px);left:50%;transform:translateX(-50%);background:rgba(23,26,43,0.92);color:#fff;padding:0.5rem 0.75rem;border-radius:var(--radius-sm);font-size:0.72rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50;}
.perm.tooltip:hover::after{opacity:1;}
.perm-group-head{align-self:self-start;font-size:0.78rem;color:var(--muted-fg);margin:0.6rem 0 0.2rem;font-weight:600;letter-spacing:0.02em;}
.perm-foot{margin-top:1rem;display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;}
.bitfield{display:flex;align-items:center;gap:0.4rem;background:rgba(255,255,255,0.04);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0.42rem 0.6rem;font-size:0.85rem;}
.bitfield-label{color:var(--muted-fg);font-size:0.78rem;}
.bitfield code{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(0,0,0,0.3);padding:0.12rem 0.4rem;border-radius:var(--radius-xs);font-size:0.8rem;color:var(--primary);}
.btn-xs{font-size:0.72rem;padding:0.28rem 0.5rem;}
/* Output card */
.output-card{margin-top:2rem;}
.output-actions{display:flex;gap:0.5rem;flex-wrap:wrap;}
.url-input{flex:1;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0.75rem 1rem;font-size:0.94rem;background:rgba(255,255,255,0.06);color:var(--fg);}
.btn-copy-inline{padding:0.45rem 0.7rem;}
.output-meta{margin-top:1rem;display:flex;gap:0.4rem;flex-wrap:wrap;}
.meta-chip{display:inline-flex;align-items:center;gap:0.3rem;background:rgba(255,255,255,0.06);border-radius:var(--radius-sm);padding:0.25rem 0.55rem;font-size:0.82rem;color:var(--fg);}
.meta-chip i{fill:var(--muted-fg);stroke:var(--primary);stroke-width:1.5;}
.dot{width:0.7rem;height:0.7rem;border-radius:50%;display:inline-block;}
.dot-wait{background:var(--invalid);}
.dot-ok{background:var(--valid);box-shadow:0 0 8px var(--valid);}
/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;border-radius:calc(var(--radius)*0.6);font-weight:500;font-size:0.875rem;transition:all .2s ease;white-space:nowrap;position:relative;overflow:hidden;}
.btn-default{background:var(--primary);color:#000;border:1px solid var(--primary);}
.btn-default:hover{background:oklch(0.68 0.23 260);}
.btn-ghost{background:transparent;color:var(--fg);border:1px solid transparent;}
.btn-ghost:hover{background:rgba(255,255,255,0.05);color:var(--fg);}
.btn-outline{background:transparent;color:var(--fg);border:1px solid var(--border);}
.btn-outline:hover{background:rgba(255,255,255,0.05);}
.btn-primary{background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;}
.btn-primary:hover{filter:brightness(1.1);}
.btn-sm{padding:0.5rem 1rem;font-size:0.8rem;}
.btn-md{padding:0.625rem 1.25rem;}
.btn-lg{padding:0.875rem 1.5rem;font-size:1rem;}
.btn-icon{padding:0.625rem;aspect-ratio:1;}
.btn-icon-sm{padding:0.4rem;}
/* Guide */
.guide{margin-top:4rem;}
.guide h2{font-family:var(--font-display);font-size:1.7rem;}
.guide-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:1rem;}
.guide-step{border:1px solid var(--border);border-radius:var(--radius-sm);padding:1.1rem;background:rgba(255,255,255,0.03);transition:transform .2s,border-color .2s;}
.guide-step:hover{transform:translateY(-2px);border-color:color-mix(in oklch,var(--primary)30%,transparent);}
.guide-num{background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;width:2rem;height:2rem;border-radius:50%;font-size:1rem;text-align:center;display:inline-block;margin-bottom:0.5rem;box-shadow:0 6px 14px -6px rgba(139,92,246,0.7);}
.guide-step i{fill:var(--muted-fg);stroke:var(--primary);stroke-width:2;margin-bottom:0.55rem;display:block;}
.guide-step h3{font-size:1rem;line-height:1.3;}
.guide-step p{font-size:0.82rem;color:var(--muted-fg);margin-top:0.3rem;}
/* FAQ */
.faq{margin-top:4rem;}
.faq h2{font-family:var(--font-display);font-size:1.7rem;}
.faq-list{display:grid;gap:0.5rem;margin-top:1rem;}
.faq-item{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .2s;}
.faq-q{display:flex;gap:0.5rem;align-items:center;background:rgba(255,255,255,0.03);font-size:0.92rem;padding:0.7rem 1rem;width:100%;text-align:left;border:0;color:var(--fg);cursor:pointer;transition:background .2s;}
.faq-q i{fill:var(--muted-fg);stroke:var(--primary);stroke-width:1.5;margin-left:auto;transition:transform .25s;}
.faq-q:hover{background:rgba(255,255,255,0.06);}
.faq-panel{background:rgba(255,255,255,0.02);padding:0.5rem 1rem 1rem;display:none;}
.faq-item[open] .faq-panel{display:block;}
.faq-q[aria-expanded="true"] i{transform:rotate(90deg);}
.faq-a{color:var(--muted-fg);}
.faq-a p{margin-bottom:0.5rem;}
/* Footer */
.site-footer{background:rgba(255,255,255,0.03);padding:2.5rem 1rem;border-top:1px solid var(--border);margin-top:4rem;}
.footer-inner{display:flex;gap:2rem;flex-wrap:wrap;}
.footer-brand{font-family:var(--font-display);}
.footer-brand strong{font-size:1.15rem;}
.fine{font-size:0.78rem;color:var(--muted-fg);margin:0;}
.chip{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-sm);padding:0.32rem 0.75rem;font-size:0.8rem;color:var(--fg);display:flex;gap:0.35rem;align-items:center;backdrop-filter:blur(8px);}