@font-face{font-family:GeInter;src:url(inter.woff2) format('woff2');font-weight:100 900;font-display:swap}
/* QR Studio 1.1: intentionally scoped to the QR shortcode. */
.ges{
  --bg:#0c0f17;--panel:#151a25;--panel-2:#191f2c;--ink:#f2f2f7;
  --muted:#98a0b2;--dim:#737d93;--line:#2b3242;--soft:#222a3a;
  --accent:#b7a8ff;--accent-soft:#28243d;--action:#b9aafe;--on:#13101f;
  box-sizing:border-box;isolation:isolate;max-width:1440px;margin:0 auto;
  padding:26px clamp(20px,4.8vw,72px) 30px;
  border:0;border-radius:0;background:var(--bg);color:var(--ink);color-scheme:dark;
  font:400 15px/1.6 GeInter,Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  letter-spacing:-.008em;
  background-image:radial-gradient(ellipse 650px 400px at 79% 4%,rgba(112,84,194,.115),transparent 75%);
}
.ges[data-theme=light]{
  --bg:#f5f6fb;--panel:#fff;--panel-2:#f7f8fc;--ink:#1c2333;
  --muted:#626d82;--dim:#7c8698;--line:#e3e6ef;--soft:#f2f0fc;
  --accent:#6653b4;--accent-soft:#f1edff;--action:#28223f;--on:#fff;
  color-scheme:light;background-image:radial-gradient(ellipse 650px 400px at 79% 4%,rgba(164,141,232,.11),transparent 75%);
}
.ges *, .ges *::before, .ges *::after{box-sizing:border-box}
.ges [hidden]{display:none!important}
.ges h2,.ges h3,.ges p{font-family:inherit;color:inherit;margin:0;padding:0;line-height:inherit}
.ges h2{font-size:clamp(33px,4vw,52px);font-weight:650;letter-spacing:-.062em;line-height:1.13;text-wrap:balance}
.ges h3{font-size:18px;font-weight:640;letter-spacing:-.036em;line-height:1.35}
.ges svg{flex-shrink:0}
.ges button,.ges input,.ges select,.ges textarea{font-family:inherit;text-transform:none;letter-spacing:normal}
.ges button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:44px;margin:0;padding:11px 15px;
  color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:13px;
  font-size:13px;font-weight:600;line-height:1.3;text-decoration:none;
  cursor:pointer;box-shadow:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition:border-color .22s ease,background-color .22s ease,color .22s ease,transform .18s ease,box-shadow .22s ease;
}
.ges button:hover:not(:disabled){border-color:var(--accent);background:var(--soft)}
.ges button:active:not(:disabled){transform:scale(.975)}
.ges button:disabled{opacity:.43;cursor:not-allowed;filter:saturate(.55)}
.ges button.primary{background:var(--action);color:var(--on);border-color:transparent}
.ges button.primary:hover:not(:disabled){background:var(--action);filter:brightness(1.08);box-shadow:0 7px 24px rgba(141,117,250,.18)}
.ges :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ges input:not([type=checkbox]):not([type=range]),.ges select,.ges textarea{
  display:block;width:100%;max-width:100%;min-height:48px;padding:12px 15px;
  border:1px solid var(--line);border-radius:12px;outline:none;background:var(--panel-2);color:var(--ink);
  font-size:14px;font-weight:450;line-height:1.5;box-shadow:none;
  transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.ges input::placeholder,.ges textarea::placeholder{color:var(--dim);opacity:1}
.ges input:not([type=checkbox]):not([type=range]):focus,.ges select:focus,.ges textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(172,151,255,.13)}
.ges textarea{resize:vertical;min-height:130px;line-height:1.65}
.ges input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;flex:none}
.ges button svg{width:18px;height:18px}
/* Header / hero */
.ges-top{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:0 0 23px;border-bottom:1px solid var(--line)}
.ges-brand{display:flex;gap:11px;align-items:center;flex-wrap:wrap;min-width:0;font-weight:640;font-size:13px;letter-spacing:-.025em}
.ges-mark{display:grid;place-items:center;flex:none;width:35px;height:35px;border:1px solid rgba(192,174,255,.22);border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:25px;font-weight:730;line-height:1;letter-spacing:-.11em;padding-right:3px}
.ges-slash{font-weight:350;color:var(--dim);padding:0 1px}
.ges-brand-tool{color:var(--muted);font-weight:500}
.ges-header-actions{display:flex;align-items:center;gap:19px}
.ges-local-label{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;font-weight:500;white-space:nowrap}
.ges-local-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#7bcea3;box-shadow:0 0 0 3px rgba(123,206,163,.085)}
.ges-top button[data-theme-toggle]{padding:9px 13px;min-height:38px;gap:9px;border-radius:999px;background:var(--panel);font-size:12px;white-space:nowrap}
.ges-top [data-theme-icon]{font-size:18px;font-weight:400;line-height:1;color:var(--accent)}
.ges-hero{padding:49px 0 39px;max-width:820px}
.ges-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:17px;color:var(--accent);font-size:10px;font-weight:720;letter-spacing:.18em}
.ges-eyebrow-line{display:inline-block;width:21px;height:1px;background:var(--accent);opacity:.9}
.ges-hero p{max-width:655px;margin:14px 0 0;color:var(--muted);font-size:15px;line-height:1.78;letter-spacing:-.012em}
/* Workspace */
.ges-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:20px;width:100%}
.ges-panel{min-width:0;margin:0;padding:27px;background:var(--panel);border:1px solid var(--line);border-radius:21px;box-shadow:0 14px 45px rgba(0,0,0,.055)}
.ges-panel--editor{min-height:480px}
.ges-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.ges-panel-heading h3{margin-top:6px}
.ges-section-label{display:block;font-size:10px;font-weight:750;letter-spacing:.14em;color:var(--dim);line-height:1.4}
.ges-panel-chip{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:5px 10px;border:1px solid rgba(180,159,255,.16);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:630;white-space:nowrap}
.ges-panel-chip--muted{border-color:var(--line);background:var(--panel-2);color:var(--muted)}
.ges-editor-body{min-width:0}
.ges-editor-footnote{display:flex;align-items:center;gap:10px;margin-top:30px;padding-top:19px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.55}
.ges-editor-footnote svg{width:16px;height:16px;color:var(--accent)}
/* Type selection / forms */
.ges .ge-qr{min-width:0}
.ges .ge-qr>h3{font-size:16px;font-weight:620;letter-spacing:-.027em}
.ges .ge-qr-lead{color:var(--muted);font-size:13px;line-height:1.65;margin:5px 0 20px}
.ges .ge-qr-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.ges .ge-qr-types .ge-qr-type{
  display:flex;align-items:flex-start;flex-direction:column;justify-content:flex-start;
  gap:0;min-width:0;min-height:129px;padding:16px 13px 14px;text-align:left;
  border:1px solid var(--line);border-radius:15px;background:var(--panel-2);color:var(--ink);
  transition:border-color .2s ease,background-color .2s ease,transform .18s ease,box-shadow .2s ease;
}
.ges .ge-qr-type:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 7px 22px rgba(4,3,10,.1);transform:translateY(-2px)}
.ges .ge-qr-type:active:not(:disabled){transform:scale(.985)}
.ges .ge-qr-type-icon{width:32px;height:32px;display:grid;place-items:center;flex:none;margin:0 0 13px;border-radius:10px;background:var(--soft);color:var(--accent)}
.ges .ge-qr-type:hover .ge-qr-type-icon{background:var(--panel)}
.ges .ge-qr-type-icon svg{display:block;width:19px;height:19px}
.ges .ge-qr-type-label{display:block;font-size:13px;font-weight:660;line-height:1.3;color:var(--ink)}
.ges .ge-qr-type-desc{display:block;margin-top:4px;font-size:10px;font-weight:450;line-height:1.45;color:var(--muted)}
.ges .ge-qr-back{min-height:32px;padding:4px 10px;margin:0 0 21px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--muted);font-size:12px}
.ges .ge-qr-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 14px;max-width:100%}
.ges .ge-qr-form label{display:block;min-width:0;margin:0;color:var(--muted);font-size:12px;font-weight:600;line-height:1.5}
.ges .ge-qr-form label>input,.ges .ge-qr-form label>select,.ges .ge-qr-form label>textarea{margin-top:8px}
.ges .ge-qr-form label:has(textarea),.ges .ge-qr-form label:has([name=url]),.ges .ge-qr-form label:has([name=ssid]),.ges .ge-qr-form label:has([name=password]),.ges .ge-qr-form label:has([name=name]),.ges .ge-qr-form label:has([name=email]),.ges .ge-qr-form label:has([name=phone]),.ges .ge-qr-form label:has([name=security]){grid-column:1/-1}
.ges .ge-qr-form label:has(input[type=checkbox]){grid-column:1/-1;display:flex;align-items:center;flex-direction:row-reverse;justify-content:flex-end;gap:9px;padding:3px 0}
.ges .ge-qr-form label:has(input[type=checkbox])>input{margin:0}
.ges .ge-qr-form button:not(.ge-qr-submit){justify-self:start;min-height:37px;padding:8px 12px;font-size:12px;color:var(--muted);background:var(--panel-2)}
.ges .ge-qr-submit{grid-column:1/-1;min-height:48px;margin-top:5px;border:0;border-radius:12px;background:var(--action);color:var(--on);font-size:14px;font-weight:650}
.ges .ge-qr-submit::after{content:'→';font-size:17px;font-weight:450;line-height:1}
.ges .ge-qr-note{margin:19px 0 0;color:var(--muted);font-size:11px;line-height:1.65}
.ges .ge-qr-status{min-height:0;color:var(--accent);font-size:12px;font-weight:500;line-height:1.55;margin:11px 0 0;overflow-wrap:anywhere}
.ges .ge-qr-status:empty{display:none}
.ges .ge-qr-status.is-error{color:#ffa0ad}
.ges .ge-qr-close{display:none}
/* Preview / tips */
.ges-preview-column{display:flex;flex-direction:column;gap:16px;position:sticky;top:20px;min-width:0}
.ges-panel--preview{padding:24px}
.ges-panel--preview .ges-panel-heading{margin-bottom:22px}
.ges-panel--preview .ges-panel-heading h3{font-size:17px}
.ges-preview-stage{
  display:flex;align-items:center;justify-content:center;min-height:270px;padding:22px;
  border:1px dashed var(--line);border-radius:17px;background:var(--panel-2);
  overflow:hidden;
}
.ges-preview-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:6px;max-width:260px}
.ges-placeholder-art{display:grid;place-items:center;width:82px;height:82px;margin:0 0 18px;border:1px solid var(--line);border-radius:19px;background:var(--soft);color:var(--dim)}
.ges-placeholder-art svg{width:52px;height:52px;opacity:.72}
.ges-preview-placeholder strong{font-size:13px;line-height:1.5;font-weight:620;color:var(--ink)}
.ges-preview-placeholder span{font-size:12px;line-height:1.6;color:var(--muted)}
.ges-preview-stage.is-ready{padding:15px;border-style:solid;background:#fff;border-color:rgba(240,240,245,.8)}
.ges-preview-result{display:flex;align-items:center;justify-content:center;width:100%;min-height:240px}
.ges .ge-qr-preview{display:block;width:240px;height:auto;max-width:100%;border:0;border-radius:2px;box-shadow:none;background:#fff;padding:0;image-rendering:auto}
.ges-actions{margin:17px 0 0}
.ges .ges-download-button{width:100%;min-height:48px;border-radius:12px;font-size:13px;font-weight:680}
.ges-download-hint{margin:11px 0 0!important;text-align:center;color:var(--dim)!important;font-size:11px!important;line-height:1.6!important}
.ges-help{padding:21px 22px;border:1px solid var(--line);border-radius:18px;background:transparent}
.ges-help-heading{display:flex;align-items:center;gap:10px;margin:0 0 9px}
.ges-help-heading h3{font-size:13px;font-weight:640}
.ges-help-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:var(--accent-soft);color:var(--accent);font-size:17px;line-height:1}
.ges-help>p,.ges-help details p{color:var(--muted);font-size:12px;line-height:1.75}
.ges-help details{margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
.ges-help summary{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;list-style:none;color:var(--accent);font-size:12px;font-weight:550}
.ges-help summary::-webkit-details-marker{display:none}
.ges-help summary::marker{content:''}
.ges-help summary span{font-size:19px;font-weight:300;line-height:1;transition:transform .2s}
.ges-help details[open] summary span{transform:rotate(45deg)}
.ges-help details p{margin-top:12px}
/* Bottom status and shared footer */
.ges-status{min-height:18px;margin:16px 0 0!important;color:var(--dim)!important;font-size:11px!important;line-height:1.6}
.ges-status[data-error=true]{color:#ffa0ad!important}
.ges>.ge-sf.ge-sf{margin-top:40px;padding-top:32px}
@media(min-width:1250px){.ges-layout{grid-template-columns:minmax(0,1fr) 365px;gap:24px}.ges-panel{padding:30px}.ges-panel--preview{padding:25px}.ges .ge-qr-types{gap:13px}.ges .ge-qr-types .ge-qr-type{padding:18px 15px 16px;min-height:136px}}
@media(max-width:1060px){.ges-layout{grid-template-columns:minmax(0,1fr) 310px;gap:15px}.ges-panel{padding:22px}.ges .ge-qr-types{grid-template-columns:repeat(2,minmax(0,1fr))}.ges .ge-qr-types .ge-qr-type{min-height:108px;padding:14px}.ges .ge-qr-type-icon{margin-bottom:8px}}
@media(max-width:720px){
  .ges{padding:18px 16px 25px}
  .ges-top{padding-bottom:17px}
  .ges-local-label{display:none}
  .ges-brand{gap:8px;font-size:12px}
  .ges-mark{width:32px;height:32px;font-size:22px}
  .ges-top button[data-theme-toggle]{min-height:36px;padding:8px 10px}
  .ges-hero{padding:34px 0 28px}
  .ges-hero h2{font-size:clamp(31px,8vw,41px)}
  .ges-hero p{font-size:13px;margin-top:11px;line-height:1.7}
  .ges-layout{grid-template-columns:minmax(0,1fr);gap:16px}
  .ges-preview-column{position:static}
  .ges-panel--editor{min-height:0}
  .ges-panel{padding:21px 18px;border-radius:17px}
  .ges-preview-stage{min-height:238px}
  .ges-preview-result{min-height:215px}
  .ges-preview-stage.is-ready{min-height:244px}
  .ges-editor-footnote{margin-top:24px}
  .ges-help{padding:18px;border-radius:16px}
  .ges input:not([type=checkbox]):not([type=range]),.ges select,.ges textarea{font-size:16px!important}
  .ges>.ge-sf.ge-sf{margin-top:30px}
}
@media(max-width:380px){
  .ges-brand-tool{display:none}
  .ges-slash{display:none}
  .ges-panel{padding:18px 15px}
  .ges .ge-qr-types{gap:9px}
  .ges .ge-qr-types .ge-qr-type{padding:13px 11px}
  .ges .ge-qr-form{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.ges *, .ges *::before,.ges *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
