@view-transition{navigation:auto}@layer pages{.hero-title{font-family:var(--font-mono)}.hero-subtitle{font-family:var(--font-sans)}.container{border:1px solid color-mix(in srgb,var(--accent-bright) 18%,transparent);box-shadow:none}.match-highlight-preview,.match-results,.analysis-section__highlight,.analysis-section__explanation{user-select:text}.tool-grid{--token-literal: #85c1b2;--token-literal-escaped: #64b5f6;--token-anchor: #d99a5b;--token-quantifier: #ffb600;--token-quantifier-range: #a78bfa;--token-char-class: #64b5f6;--token-grouping: #7d9ccb;--token-char-set: #5a8f56;--token-operator: #d946ef;--token-wildcard: #64b5f6;--token-escape: #64b5f6;--token-assertion: #8fb35f;--token-backref: #64b5f6;--token-flag: #f48fb1;--token-delimiter: #9e9e9e;--token-error: #ff5252;--color-match-hit-bg: #ffeaa7;--color-match-hit-text: #1a1a1a;--font-size-output-label: 1.1rem;--font-size-pattern-display: clamp(1.1rem, 2vw, 1.25rem);display:flex;flex-direction:column;gap:1.5rem}.primary-workspace{display:flex;flex-direction:column;gap:1.5rem}.from-builder-nav{margin-block-end:calc(var(--spacing-sm) * -.5)}.regex-analyzer-page .container:has(.tool-grid:not(.no-results-view)){max-width:var(--chrome-max-width)}@media(width>=80rem){.regex-analyzer-page .container:has(.tool-grid:not(.no-results-view)){width:80%}}.pattern-row{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:.5rem}.pattern-row input[type=text]{flex:1;margin-bottom:0;min-width:0}.flavor-select-wrapper{flex-shrink:0}.flavor-select-wrapper .select{inline-size:100%}.regex-inputs>label,.test-text-field>label{color:var(--text-secondary);font-size:var(--font-size-md);font-weight:600;margin-bottom:.5rem;display:block}.regex-inputs input[type=text],.regex-inputs textarea,.test-text-field textarea{width:100%;padding:.75rem;background:var(--bg-darker);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-primary);font-size:var(--font-size-md);transition:var(--transition-fast);margin-bottom:.5rem}.regex-inputs textarea,.test-text-field textarea{resize:vertical;min-height:100px}.regex-inputs input[type=text]:focus-visible,.regex-inputs textarea:focus-visible,.test-text-field textarea:focus-visible{border-color:var(--accent-bright);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-bright) 45%,transparent)}.test-text-field,.test-text-modal-body{display:flex;flex-direction:column}.test-text-modal-actions{display:flex;justify-content:flex-end;margin-top:var(--spacing-sm)}.test-text-modal__error:empty{display:none}.regex-inputs__error:empty{display:none}.regex-inputs__hint{margin-block-start:.5rem}.regex-inputs__hint:empty{display:none}.error-message{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin:0;line-height:1.6}.error-message:before{--icon-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E");content:"";flex-shrink:0;inline-size:1lh;block-size:1lh;background-color:currentcolor;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat}.redos-warning{margin-block-start:var(--spacing-md)}.redos-warning__title{color:var(--warning-color);line-height:1.6}.redos-warning__title:before{--icon-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E");content:"";flex-shrink:0;inline-size:1lh;block-size:1lh;background-color:currentcolor;-webkit-mask:var(--icon-warning) center / contain no-repeat;mask:var(--icon-warning) center / contain no-repeat}.redos-warning p{margin-block:var(--spacing-sm) 0;color:var(--text-secondary);line-height:1.6}.helper-text{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5;margin-top:.25rem}.regex-options{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1rem 0;border:none;padding:0;min-inline-size:0}.flag-option{display:flex;align-items:center;gap:.5rem;position:relative}.regex-options label{color:var(--text-secondary);font-size:var(--font-size-sm);display:flex;align-items:center;gap:.5rem;margin-bottom:0}.regex-options input[type=checkbox]{accent-color:var(--accent-bright);cursor:pointer}.flag-info-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:var(--accent-bright);color:var(--bg-primary);border:none;border-radius:50%;font-size:var(--font-size-lg);font-weight:700;cursor:pointer;transition:var(--transition-fast);flex-shrink:0;position:relative}.flag-info-btn:after{content:"";position:absolute;inset:calc((var(--hit-target-min) - 100%) / -2)}.flag-info-btn:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.flag-tooltip[popover]{background:var(--surface-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-card);padding:var(--spacing-md);min-width:280px;max-width:min(400px,90vw);box-shadow:var(--shadow-elevated)}.flag-tooltip[popover]:after{display:none}.flag-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--border-color)}@supports (anchor-name: --x){#flag-btn-ci{anchor-name:--flag-btn-ci}#flag-btn-gm{anchor-name:--flag-btn-gm}#flag-btn-ml{anchor-name:--flag-btn-ml}#tooltip-case-insensitive{position-anchor:--flag-btn-ci}#tooltip-global-match{position-anchor:--flag-btn-gm}#tooltip-multiline{position-anchor:--flag-btn-ml}.flag-tooltip[popover]{position:fixed;inset:0;margin:auto;max-height:60vh;overflow-y:auto}.flag-tooltip[popover]:after{display:none}@media(width>=64rem){.flag-tooltip[popover]{position:absolute;position-area:top center;inset:unset;max-height:unset;overflow-y:unset;margin:0 0 .5rem}.flag-tooltip[popover]:after{display:block}}}.flag-tooltip strong{display:block;color:var(--accent-bright);font-size:var(--font-size-md);padding-bottom:var(--spacing-xs);margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.flag-tooltip p{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5;margin:var(--spacing-sm) 0}.tooltip-example{display:flex;flex-direction:column;gap:var(--spacing-xs);background:var(--bg-darker);border-left:3px solid var(--accent-bright);padding:var(--spacing-sm);margin-top:var(--spacing-md);border-radius:var(--border-radius-xs)}.tooltip-example__row{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm)}.tooltip-example__label{flex-shrink:0;inline-size:3.75rem;color:var(--text-secondary)}.tooltip-example__row code{color:var(--text-primary);font-family:var(--font-mono)}.tooltip-example__row:before{content:"";flex-shrink:0;inline-size:1em;block-size:1em;background-color:currentcolor;-webkit-mask:var(--icon-example) center / contain no-repeat;mask:var(--icon-example) center / contain no-repeat}.tooltip-example__row--fail{--icon-example: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");color:var(--token-error, #ff5252)}.tooltip-example__row--pass{--icon-example: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");color:var(--token-assertion, #8fb35f)}.flag-tooltip:popover-open{animation:tooltipFadeIn .2s var(--ease-out)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.flag-tooltip:popover-open{animation:none}.analysis-section.analysis-visible{animation:none}.analysis-section__explanation li{transition:none}}.regex-output h3{color:var(--text-primary);font-weight:600;margin-bottom:1rem}.match-results{min-height:50px;padding:.75rem;background:var(--bg-darker);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.8}.match-preview{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.match-preview__label{color:var(--text-primary);font-size:var(--font-size-md);font-weight:600}.match-highlight-preview{min-height:60px;padding:.75rem;background:var(--bg-darker);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.7;white-space:pre-wrap;overflow-wrap:break-word}.match-highlight-preview mark.match-hit{background:var(--color-match-hit-bg, #ffeaa7);color:var(--color-match-hit-text, #1a1a1a);border-radius:var(--border-radius-xs);padding:0 2px;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-primary-black) 8%,transparent)}.match-highlight-preview mark.match-hit--empty{display:inline-block;inline-size:3px;block-size:1em;padding:0;vertical-align:text-bottom}.placeholder-text{margin:0;padding:var(--spacing-md) var(--spacing-sm);color:var(--text-secondary);text-align:center;line-height:1.6}.placeholder-text__title{display:block;margin-bottom:var(--spacing-xs);color:var(--text-primary);font-weight:600}.placeholder-text__body{margin:0}.analysis-section{display:none;background:var(--surface-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-card);box-shadow:var(--shadow-elevated);padding:var(--spacing-md)}.tool-grid.results-stale .regex-output,.tool-grid.results-stale .analysis-section{opacity:.45;transition:opacity .15s ease}.analysis-section h3{color:var(--text-primary);font-size:var(--font-size-output-label, var(--font-size-lg));font-weight:600;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color);text-transform:uppercase;letter-spacing:1px}.analysis-section__highlight{white-space:pre-wrap;overflow-wrap:break-word;font-size:var(--font-size-pattern-display, var(--font-size-lg));color:var(--text-primary);line-height:2;padding:1.5rem;background:var(--bg-darker);border:1px solid var(--border-color);border-radius:var(--border-radius-md);margin-bottom:2rem;overflow-x:auto;box-shadow:inset 0 1px 3px color-mix(in srgb,var(--text-primary-black) 30%,transparent),0 2px 8px color-mix(in srgb,var(--text-primary-black) 20%,transparent);letter-spacing:.5px}.analysis-section__explanation{margin-top:2rem;padding-top:2rem;border-top:2px solid var(--border-color)}.analysis-section__explanation>p{color:var(--accent-bright);font-size:var(--font-size-output-label, var(--font-size-lg));font-weight:600;margin-bottom:1.5rem}.analysis-section__explanation ol{list-style:none;padding-left:0;counter-reset:explanation-counter;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.8}.analysis-section__explanation li{counter-increment:explanation-counter;margin-bottom:1.25rem;padding:1rem 1rem 1rem 3.5rem;background:var(--bg-darker);border-left:3px solid var(--border-color);border-radius:var(--border-radius-sm);position:relative;transition:var(--transition-fast);list-style:none}:where(.analysis-section__explanation li)>code:where(:first-of-type){margin-inline-end:var(--spacing-xs)}.analysis-section__explanation code{text-shadow:none}.analysis-section__explanation li:before{content:counter(explanation-counter);position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:1.75rem;height:1.75rem;color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--border-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-sm)}.literal{color:var(--token-literal, #85c1b2);font-weight:600;text-shadow:0 1px 2px color-mix(in srgb,var(--text-primary-black) 30%,transparent)}.literal-escaped{color:var(--token-literal-escaped, #64b5f6);font-weight:600;text-shadow:0 0 8px color-mix(in srgb,var(--token-literal-escaped, #64b5f6) 40%,transparent)}.anchor{color:var(--token-anchor, #d99a5b);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-anchor, #d99a5b) 40%,transparent)}.quantifier{color:var(--token-quantifier, #ffb600);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-quantifier, #ffb600) 40%,transparent)}.quantifier-range{color:var(--token-quantifier-range, #a78bfa);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-quantifier-range, #a78bfa) 40%,transparent)}.char-class{color:var(--token-char-class, #64b5f6);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-char-class, #64b5f6) 40%,transparent)}.grouping{color:var(--token-grouping, #7d9ccb);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-grouping, #7d9ccb) 40%,transparent)}.assertion{color:var(--token-assertion, #8fb35f);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-assertion, #8fb35f) 40%,transparent)}.char-set,.char-set-content,.char-set-negate,.char-set-range{color:var(--token-char-set, #5a8f56);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-char-set, #5a8f56) 40%,transparent)}.operator{color:var(--token-operator, #d946ef);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-operator, #d946ef) 40%,transparent)}.wildcard{color:var(--token-wildcard, #64b5f6);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-wildcard, #64b5f6) 40%,transparent)}.escape{color:var(--token-escape, #64b5f6);font-weight:600;text-shadow:0 0 8px color-mix(in srgb,var(--token-escape, #64b5f6) 40%,transparent)}.backref{color:var(--token-backref, #64b5f6);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-backref, #64b5f6) 40%,transparent)}.analysis-section__highlight .error,.analysis-section__explanation .error{color:var(--token-error, #ff5252);font-weight:700}.delimiter{color:var(--token-delimiter, #9e9e9e);font-weight:600}.flag{color:var(--token-flag, #f48fb1);font-weight:700;text-shadow:0 0 8px color-mix(in srgb,var(--token-flag, #f48fb1) 40%,transparent)}.pattern-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center;justify-content:space-between;margin-top:.5rem}.pattern-actions__group{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}@keyframes analysisSlideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.analysis-section.analysis-visible{animation:analysisSlideIn .2s ease-out}.match-card{border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:.75rem;margin-bottom:.5rem;background:var(--bg-content);transition:var(--transition-fast)}.match-card:last-child{margin-bottom:0}.match-card__header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.match-card__number{color:var(--accent-bright);font-size:var(--font-size-sm);font-weight:600;min-width:4rem}.match-card__value{display:inline-block;max-width:100%;overflow-x:auto;white-space:pre;color:var(--text-primary);font-size:var(--font-size-md);background:color-mix(in srgb,var(--accent-bright) 8%,transparent);padding:.1rem .4rem;border-radius:var(--border-radius-xs);vertical-align:bottom}.match-card__empty-badge{padding:0 var(--spacing-xs);border:1px solid var(--border-color);border-radius:var(--border-radius-pill);font-size:var(--font-size-xs);color:var(--text-secondary)}.match-card__position{color:var(--text-dim);font-size:var(--font-size-sm);margin-left:auto}.match-results__more{margin-block-start:var(--spacing-sm);inline-size:100%}.match-card__groups{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.25rem}.match-card__group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:var(--font-size-sm);color:var(--text-secondary)}.match-card__group code{display:inline-block;max-width:100%;overflow-x:auto;white-space:pre;vertical-align:bottom;color:var(--token-char-class, #64b5f6);font-family:var(--font-mono)}@media(width>=64rem){.flag-info-btn{width:20px;height:20px;font-size:var(--font-size-md)}cyber-hero{max-width:100%;padding:2rem 0 var(--spacing-md);margin-bottom:2rem}.pattern-row{flex-direction:row;align-items:flex-start}.flavor-select-wrapper{inline-size:10rem}.tool-grid{--font-size-pattern-display: 1.125rem;display:grid;grid-template-columns:3fr 2fr;gap:2rem;align-items:start}.primary-workspace{grid-column:1;grid-row:1}.analysis-section{grid-column:2;grid-row:1;margin-top:0;position:sticky;top:var(--nav-height);max-block-size:calc(100vh - var(--nav-height) - var(--spacing-xs));max-block-size:calc(100svh - var(--nav-height) - var(--spacing-xs));overflow-y:auto;padding-inline-end:1rem}.tool-grid.no-results-view{grid-template-columns:1fr;gap:.5rem}.tool-grid.no-results-view .primary-workspace{grid-column:1;grid-row:1}.tool-grid.no-results-view .analysis-section{display:none}.analysis-section__explanation{margin-top:2rem;padding-top:2rem}.analysis-section__explanation li{margin-bottom:1rem}.regex-inputs input[type=text],.test-text-field textarea{padding:var(--spacing-sm);font-size:var(--font-size-md)}.regex-inputs>label,.test-text-field>label,.match-preview__label{font-size:var(--font-size-xl)}.test-text-field textarea{min-height:120px}}@media(width>=90rem){.tool-grid{--font-size-pattern-display: 1.35rem;gap:2.5rem;grid-template-columns:3fr 2fr}.analysis-section__highlight{padding:2.5rem;line-height:2.4}.analysis-section__explanation li{font-size:var(--font-size-lg)}}@media(hover:hover)and (pointer:fine){.flag-info-btn:hover{background:var(--accent-bright);box-shadow:0 0 8px var(--accent-bright);transform:scale(1.1)}.analysis-section__explanation li:hover{background:color-mix(in srgb,var(--accent-bright) 8%,var(--bg-darker));border-left-color:var(--accent-bright);transform:translate(4px)}.analysis-section__explanation li:hover:before{color:var(--bg-primary);background:var(--accent-bright);border-color:var(--accent-bright);box-shadow:0 0 12px var(--accent-bright)}.match-card:hover{border-color:var(--accent-bright)}}@media(prefers-reduced-motion:reduce){.flag-info-btn:hover,.analysis-section__explanation li:hover{transform:none}}@media(prefers-contrast:more){.regex-inputs input[type=text],.regex-inputs textarea,.test-text-field textarea,.analysis-section{border-width:2px}.regex-inputs__error{border-width:2px;border-inline-start-width:5px}}@media(forced-colors:active){.regex-inputs input[type=text],.regex-inputs textarea,.test-text-field textarea{border:1px solid ButtonText;background:Canvas;color:CanvasText}.analysis-section,.match-highlight-preview{border:1px solid CanvasText}}@media(prefers-reduced-transparency:reduce){.container{border-color:var(--accent-bright)}}.regex-analyzer-page{background:radial-gradient(circle at bottom,var(--bg-section-night-start) 0%,var(--bg-section-night-end) 100%);background-attachment:fixed}}
