/**
 * VI.BE Design System — Token Library
 * 
 * Auto-generated by Style Dictionary. Do not edit this file directly.
 * Edit tokens/lib/*.json and run `npm run build:tokens` to regenerate.
 */

:root {
  --vibe-border-regular: 1px solid #1d1d1b;
  --vibe-border-regular-width: 1px;
  --vibe-border-regular-style: solid;
  --vibe-border-regular-color: #1d1d1b;
  --vibe-color-text: #1d1d1b;
  --vibe-color-error: #da553e;
  --vibe-color-outline: #c7ced7;
  --vibe-font-family-main: 'Phantom Sans', sans-serif;
  --vibe-font-family-title: 'Basis Grotesque', sans-serif;
  --vibe-font-size-xs: 11px;
  --vibe-font-size-s: clamp(13px, 12.6296px + 0.1029vw, 14px);
  --vibe-font-size-m: clamp(16px, 15.2593px + 0.2058vw, 18px);
  --vibe-font-size-l: clamp(21px, 19.8889px + 0.3086vw, 24px);
  --vibe-font-size-xl: clamp(32px, 29.0370px + 0.8230vw, 40px);
  --vibe-font-weight-regular: 400;
  --vibe-font-weight-semibold: 600;
  --vibe-font-variation-regular: "wght" 1;
  --vibe-line-height: 1.3;
  --vibe-opacity-disabled: 0.5;
  --vibe-opacity-subtle: 0.7;
  --vibe-outline-regular: 2px solid #c7ced7;
  --vibe-outline-regular-width: 2px;
  --vibe-outline-regular-style: solid;
  --vibe-outline-regular-color: #c7ced7;
  --vibe-radius-regular: 0px;
  --vibe-radius-pill: 9999px;
  --vibe-size-space-xxs: clamp(2px, 1.2593px + 0.2058vw, 4px);
  --vibe-size-space-xs: clamp(5px, 3.8889px + 0.3086vw, 8px);
  --vibe-size-space-s: clamp(8px, 6.5185px + 0.4115vw, 12px);
  --vibe-size-space-m: clamp(16px, 15.2593px + 0.2058vw, 18px);
  --vibe-size-space-l: clamp(18px, 13.5556px + 1.2346vw, 30px);
  --vibe-size-space-xl: clamp(32px, 26.0741px + 1.6461vw, 48px);
  --vibe-size-space-xxl: clamp(44px, 30.6667px + 3.7037vw, 80px);
  --vibe-size-control-s: clamp(16px, 15.2593px + 0.2058vw, 18px);
  --vibe-viewport-fluid-min: 360; /** Min viewport width (px) at which fluid type starts scaling */
  --vibe-viewport-fluid-max: 1332; /** Max viewport width (px) at which fluid type stops scaling */
}
/**
 * VI.BE Design System — Reset
 *
 * This file is bundled into dist/styles.css together with tokens.css.
 * Do not include it separately — just import styles.css in the host application.
 *
 * Hides vibe-* elements until they are upgraded (i.e. until the JS bundle has
 * loaded and executed) to prevent a flash of unstyled content.
 */
vibe-checkbox:not(:defined),
vibe-radio:not(:defined),
vibe-fieldset:not(:defined) {
  visibility: hidden;
}

[class^="vibe-"],
[class*=" vibe-"],
vibe-checkbox,
vibe-radio,
vibe-fieldset {
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.015em;
}
vibe-checkbox:not(:defined),vibe-radio:not(:defined),vibe-fieldset:not(:defined){visibility:hidden}[class^=vibe-],[class*=\ vibe-],vibe-checkbox,vibe-radio,vibe-fieldset{-webkit-font-smoothing:antialiased;letter-spacing:.015em}:root{--vibe-border-regular:1px solid #1d1d1b;--vibe-border-regular-width:1px;--vibe-border-regular-style:solid;--vibe-border-regular-color:#1d1d1b;--vibe-color-text:#1d1d1b;--vibe-color-error:#da553e;--vibe-color-outline:#c7ced7;--vibe-font-family-main:"Phantom Sans", sans-serif;--vibe-font-family-title:"Basis Grotesque", sans-serif;--vibe-font-size-xs:11px;--vibe-font-size-s:clamp(13px, 12.6296px + .1029vw, 14px);--vibe-font-size-m:clamp(16px, 15.2593px + .2058vw, 18px);--vibe-font-size-l:clamp(21px, 19.8889px + .3086vw, 24px);--vibe-font-size-xl:clamp(32px, 29.037px + .823vw, 40px);--vibe-font-weight-regular:400;--vibe-font-weight-semibold:600;--vibe-font-variation-regular:"wght" 1;--vibe-line-height:1.3;--vibe-opacity-disabled:.5;--vibe-opacity-subtle:.7;--vibe-outline-regular:2px solid #c7ced7;--vibe-outline-regular-width:2px;--vibe-outline-regular-style:solid;--vibe-outline-regular-color:#c7ced7;--vibe-radius-regular:0px;--vibe-radius-pill:9999px;--vibe-size-space-xxs:clamp(2px, 1.2593px + .2058vw, 4px);--vibe-size-space-xs:clamp(5px, 3.8889px + .3086vw, 8px);--vibe-size-space-s:clamp(8px, 6.5185px + .4115vw, 12px);--vibe-size-space-m:clamp(16px, 15.2593px + .2058vw, 18px);--vibe-size-space-l:clamp(18px, 13.5556px + 1.2346vw, 30px);--vibe-size-space-xl:clamp(32px, 26.0741px + 1.6461vw, 48px);--vibe-size-space-xxl:clamp(44px, 30.6667px + 3.7037vw, 80px);--vibe-size-control-s:clamp(16px, 15.2593px + .2058vw, 18px);--vibe-viewport-fluid-min:360;--vibe-viewport-fluid-max:1332}:where(vibe-checkbox) .vibe-checkbox-input{appearance:none;cursor:pointer;aspect-ratio:1;inline-size:var(--vibe-size-control-s);border:var(--vibe-border-regular);grid-area:1/1}:where(vibe-checkbox) .vibe-checkbox-input:focus-visible{outline:var(--vibe-outline-regular)}:where(vibe-checkbox) .vibe-checkbox-input:checked{border-color:currentColor}:where(vibe-checkbox) .vibe-checkbox-input:checked+.vibe-checkbox-tick{display:block}:where(vibe-checkbox[disabled]) .vibe-checkbox-input{cursor:not-allowed;pointer-events:none}:where(vibe-checkbox) .vibe-checkbox-slot{align-items:center;display:inline-flex}@scope(vibe-checkbox) to (.vibe-checkbox-slot){:where(:not(img,svg):not(svg *)),:before,:after{all:unset;display:revert;box-sizing:border-box}:scope{cursor:pointer;vertical-align:middle;font-size:var(--vibe-font-size-m);align-items:flex-start;display:inline-flex}.vibe-checkbox-content{flex-direction:column;padding-inline-start:var(--vibe-size-space-s);display:flex}:scope:not([hydrated]),.vibe-checkbox{align-items:flex-start;gap:var(--vibe-size-space-s);cursor:pointer;vertical-align:middle;display:inline-flex}.vibe-checkbox-control{line-height:var(--vibe-line-height);margin-top:calc((1lh - var(--vibe-size-control-s)) / 2);flex-shrink:0;display:inline-grid;position:relative}.vibe-checkbox-input{appearance:none;cursor:pointer;aspect-ratio:1;inline-size:var(--vibe-size-control-s);border:var(--vibe-border-regular);grid-area:1/1}.vibe-checkbox-input:focus-visible{outline:var(--vibe-outline-regular)}.vibe-checkbox-input:checked{border-color:currentColor}.vibe-checkbox-tick{pointer-events:none;grid-area:1/1;padding:2px;display:none;overflow:visible}.vibe-checkbox-tick path{fill:none;stroke:var(--vibe-border-regular-color);stroke-width:calc(var(--vibe-border-regular-width) * 1);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.vibe-checkbox-input:checked+.vibe-checkbox-tick{display:block}.vibe-checkbox-label{gap:var(--vibe-size-space-s);cursor:pointer;font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);font-variation-settings:var(--vibe-font-variation-regular);line-height:var(--vibe-line-height);color:var(--vibe-color-text);display:inline-flex}:scope[disabled]{opacity:var(--vibe-opacity-disabled);cursor:not-allowed}:scope[disabled] .vibe-checkbox-input,:scope[disabled] .vibe-checkbox-label{cursor:not-allowed;pointer-events:none}.vibe-checkbox-error{font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);line-height:var(--vibe-line-height);color:var(--vibe-checkbox-error-color,var(--vibe-color-error));flex-basis:100%}}@scope(vibe-fieldset){.vibe-fieldset-header,.vibe-fieldset-legend,.vibe-fieldset-legend-text,.vibe-fieldset-required,.vibe-fieldset-hint,.vibe-fieldset-error{all:unset;display:revert;box-sizing:border-box}:scope{gap:var(--vibe-size-space-s);border:none;flex-direction:column;margin:0;padding:0;display:flex}.vibe-fieldset-header{flex-direction:column;display:flex}.vibe-fieldset-legend{align-items:baseline;gap:var(--vibe-size-space-xs);display:flex}.vibe-fieldset-legend-text{font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);font-weight:var(--vibe-font-weight-semibold);line-height:var(--vibe-line-height);color:var(--vibe-color-text)}.vibe-fieldset-required{font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);line-height:var(--vibe-line-height);color:var(--vibe-color-text)}.vibe-fieldset-hint{font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);line-height:var(--vibe-line-height);color:var(--vibe-color-text);opacity:var(--vibe-opacity-subtle)}.vibe-fieldset-error{font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);line-height:var(--vibe-line-height);color:var(--vibe-color-error)}:scope[disabled]{opacity:var(--vibe-opacity-disabled);pointer-events:none;cursor:not-allowed}}:where(vibe-radio) .vibe-radio-input{appearance:none;cursor:pointer;aspect-ratio:1;inline-size:var(--vibe-size-control-s);border:var(--vibe-border-regular);border-radius:var(--vibe-radius-pill);line-height:var(--vibe-line-height);flex-shrink:0;margin-block-start:calc((1lh - var(--vibe-size-control-s)) / 2);position:relative}:where(vibe-radio) .vibe-radio-input:focus-visible{outline:var(--vibe-outline-regular)}:where(vibe-radio) .vibe-radio-input:checked{border-color:currentColor}:where(vibe-radio) .vibe-radio-input:checked:after{content:"";border-radius:var(--vibe-radius-pill);background-color:currentColor;display:block;position:absolute;inset:2px}:where(vibe-radio[disabled]) .vibe-radio-input{cursor:not-allowed;pointer-events:none}@scope(vibe-radio) to (.vibe-radio-slot){:where(:not(img,svg):not(svg *)),:before,:after{all:unset;display:revert;box-sizing:border-box}:scope{cursor:pointer;vertical-align:middle;font-size:var(--vibe-font-size-m);align-items:flex-start;display:inline-flex}:scope:not([hydrated]),.vibe-radio{align-items:flex-start;gap:var(--vibe-size-space-s);cursor:pointer;vertical-align:middle;display:inline-flex}.vibe-radio-input{appearance:none;cursor:pointer;aspect-ratio:1;inline-size:var(--vibe-size-control-s);border:var(--vibe-border-regular);border-radius:var(--vibe-radius-pill);line-height:var(--vibe-line-height);flex-shrink:0;margin-block-start:calc((1lh - var(--vibe-size-control-s)) / 2);position:relative}.vibe-radio-input:focus-visible{outline:var(--vibe-outline-regular)}.vibe-radio-input:checked{border-color:currentColor}.vibe-radio-input:checked:after{content:"";border-radius:var(--vibe-radius-pill);background-color:currentColor;display:block;position:absolute;inset:2px}.vibe-radio-label{gap:var(--vibe-size-space-s);cursor:pointer;font-family:var(--vibe-font-family-main);font-size:var(--vibe-font-size-m);font-variation-settings:var(--vibe-font-variation-regular);line-height:var(--vibe-line-height);color:var(--vibe-color-text);padding-inline-start:var(--vibe-size-space-s);display:inline-flex}:scope[disabled]{opacity:var(--vibe-opacity-disabled);cursor:not-allowed}:scope[disabled] .vibe-radio-input,:scope[disabled] .vibe-radio-label{cursor:not-allowed;pointer-events:none}}