/* Two presentation directions, one unchanged font engine. */
@font-face{font-family:'Faucet Digits';src:url('https://fonts.gstatic.com/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRUEY.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0030-0039}
:root{--interface-text:'Instrument Sans';--font-ui:'Faucet Digits',var(--interface-text),sans-serif;--font-mono:var(--font-ui);--accent:#efbed3;--accent-ink:#884460;--panel:#e8e8e9;--on-accent:#222123;--gutter:32px;--icon-stroke:1;--rail-w:320px}
html[data-ui-font=outfit]{--interface-text:'Outfit';--icon-stroke:1.2}
html[data-theme=dark]{--panel:#28292c;--paper:#18191b;--paper-2:#232427;--ink:#eeedf0;--muted:#aba9af;--line:#414147}
body{font-family:var(--font-ui);font-size:14px}
button,input,select,textarea,summary{font-family:var(--font-ui)}
button{letter-spacing:0!important}.btn{text-transform:none;font-size:13px;font-weight:500}
.studio-head{padding:0 26px}.studio-head .studio-label{letter-spacing:.025em;font-size:12px}
.studio-head .brand h1{font-family:var(--interface-text),sans-serif;font-weight:700;letter-spacing:-.045em}
#topbar{gap:10px;padding-left:var(--gutter);padding-right:var(--gutter)}#topbar>.btn{flex:0 0 auto;min-width:85px}
.appearance-actions{display:flex;align-items:center;gap:6px;flex:none}
#topbar #themeToggle,#themeToggle{display:grid;place-items:center;width:40px;height:40px;padding:3px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:50%;cursor:pointer;margin:0}
.ui-icon{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.ui-icon .icon-ring,.ui-icon .icon-stem{display:none}
html[data-ui-font=outfit] .ui-icon .icon-ring,html[data-ui-font=outfit] .ui-icon-down .icon-stem{display:block}
html[data-ui-font=outfit] .ui-icon{width:35px;height:35px}
#themeToggle .ui-icon{width:28px;height:28px}
.rail-group>summary,.grid-library>summary{position:relative;gap:10px;font-size:15px;font-weight:500;min-height:66px}
.rail-group>summary .ui-icon,.grid-library>summary .ui-icon{margin-left:auto}
.rail-group>summary::after,.grid-library>summary::after,.preset-menu>summary::after{content:none!important}
.rail-group[open]>summary .icon-vertical,.grid-library[open]>summary .icon-vertical{opacity:0}
.rail-group>summary .group-num{font-size:11px;color:var(--muted)}
.grid-library>summary{font-size:12px;min-height:44px;font-weight:400}
.grid-library>summary .ui-icon{width:26px;height:26px}
.preset-menu>summary{display:flex;align-items:center;gap:8px;min-height:40px}
.preset-menu>summary .ui-icon{width:27px;height:27px}
.preset-menu[open]>summary .ui-icon{transform:rotate(180deg)}
.rail-group .group-content{padding-bottom:22px}.rail-group .polygon-control{margin-bottom:0}
.mode-panel{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.mode-switch{padding:4px}.mode-switch button{font-weight:500}
.ctl label{font-size:14px;letter-spacing:-.015em}.ctl .val,.grid-axis-head input[type=number]{color:var(--ink)}
.ctl .row-tools{gap:8px}.chain{font-size:11px;letter-spacing:0}
input[type=range]{--range-fill:0%;height:26px;appearance:none;-webkit-appearance:none;background:transparent;padding:0;cursor:pointer;outline-offset:5px}
input[type=range]::-webkit-slider-runnable-track{height:3px;border:0;background:linear-gradient(var(--ink),var(--ink)) left center/var(--range-fill) 3px no-repeat,linear-gradient(var(--line),var(--line)) center/100% 1px no-repeat}
input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;height:20px;width:17px;margin-top:-8.5px;background:var(--ink);border:0;border-radius:var(--thumb-r,2px);box-shadow:0 0 0 3px var(--paper)}
input[type=range]:hover::-webkit-slider-thumb{background:var(--ink);transform:scale(1.08)}
input[type=range]::-moz-range-track{height:1px;background:var(--line);border:0}
input[type=range]::-moz-range-progress{height:3px;background:var(--ink)}
input[type=range]::-moz-range-thumb{height:20px;width:17px;background:var(--ink);border:0;border-radius:var(--thumb-r,2px);box-shadow:0 0 0 3px var(--paper)}
input[type=range]:disabled{cursor:not-allowed}
.btn.primary,.polygon-control button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.colour-picker{position:relative}
.colour-picker>summary{display:flex;align-items:center;justify-content:center;gap:1px;list-style:none;cursor:pointer;height:40px;border:1px solid var(--line);border-radius:22px;padding:0 7px 0 12px}
summary::-webkit-details-marker{display:none}.colour-picker .ui-icon{width:24px;height:24px}
.colour-dot{width:17px;height:17px;display:block;border-radius:50%;background:var(--accent);border:1px solid #0002}
.colour-menu{position:absolute;right:0;top:50px;z-index:20;background:var(--paper);padding:16px;border:1px solid var(--line);border-radius:16px;min-width:190px;box-shadow:0 12px 30px #0001}
.colour-menu>span{display:block;font-size:12px;color:var(--muted);margin:0 0 10px}
.colour-menu button{display:flex;align-items:center;gap:10px;width:100%;background:none;color:var(--ink);border:0;border-radius:8px;padding:8px;cursor:pointer;text-align:left}
.colour-menu button span{display:block;width:24px;height:24px;border-radius:50%;background:var(--swatch);border:1px solid #0002}
.colour-menu button[aria-pressed=true]{outline:1px solid var(--ink);outline-offset:-1px}
.colour-menu button[aria-pressed=true]:after{content:'✓';margin-left:auto}
.appearance-switcher{position:fixed;bottom:18px;left:18px;z-index:26;color:var(--ink);filter:drop-shadow(0 4px 10px #0001)}
.appearance-switcher>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:6px 8px 6px 16px;border:1px solid var(--line);background:var(--paper);border-radius:30px;font-size:12px}
.switcher-aa{font-family:var(--interface-text),sans-serif;font-size:22px;letter-spacing:-.05em}.appearance-switcher>summary .ui-icon{width:27px;height:27px;transform:rotate(180deg)}
.appearance-switcher[open]>summary .ui-icon{transform:none}
.appearance-panel{position:absolute;bottom:58px;left:0;width:270px;background:var(--paper);padding:20px;border:1px solid var(--line);border-radius:20px}
.appearance-panel fieldset{border:0;margin:0 0 16px}.appearance-panel legend{font-size:12px;color:var(--muted);margin-bottom:8px}
.appearance-panel button{width:100%;padding:10px 12px;text-align:left;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;font-size:14px}
.appearance-panel button[aria-pressed=true]{border-color:var(--ink)}
.appearance-panel p{font-size:11px;line-height:1.5;color:var(--muted)}
.preview-nav{padding-left:var(--gutter);padding-right:var(--gutter);gap:22px}.preview-nav a{display:flex;align-items:center;gap:5px}.preview-nav .ui-icon{width:21px!important;height:21px!important}.preview-nav .icon-ring{display:none!important}
.sectionhead,.cm-sec-h{letter-spacing:0;text-transform:none;padding-left:0;padding-right:0}
.sectionhead::after,.cm-sec-h::after{display:none!important;content:none!important}
#sizeProof,#characterProof,#examplesProof{margin:0 var(--gutter);padding:24px 0 8px;font-size:17px;font-weight:500;border-top:1px solid var(--line);scroll-margin-top:90px}
#characterProof span,#examplesProof span{font-size:12px;color:var(--muted);font-weight:400;margin-left:14px}
#hero{padding-left:var(--gutter);padding-right:var(--gutter)}.tester-title{display:none;font-size:19px;font-weight:600;margin:0 0 18px;letter-spacing:-.035em}
#previewText{font-family:var(--font-ui)}
#waterfall,#charmap{padding-left:var(--gutter);padding-right:var(--gutter)}
.cm-sec-h{font-size:12px;font-weight:500;letter-spacing:.03em}
.wf-row .sz{text-align:left;justify-content:flex-start;font-size:11px}
#gridReadout{font-size:31px;letter-spacing:-.07em}
.example-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;padding:20px var(--gutter) 34px}
.example-card{padding:28px;background:var(--paper-2);min-width:0;overflow:hidden}
.example-kicker{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:28px}
.example-render{min-width:0}.example-render svg{display:block;max-width:100%;fill:currentColor}
.paragraph-card .example-render{min-height:150px}.paragraph-card .example-render svg{max-width:100%!important}
.number-card{background:var(--accent);color:var(--on-accent);display:flex;flex-direction:column;justify-content:space-between}
.number-card .example-kicker{color:var(--on-accent)}
.number-pair{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:6px;margin:auto 0}
#exampleNumber svg{width:100%;height:220px}#exampleSmall{padding-bottom:28px}
.example-caption{display:flex;justify-content:space-between;gap:20px;font-size:12px;margin-top:28px}
.wide-card{grid-column:1/-1;background:var(--ink);color:var(--paper)}.wide-card .example-kicker{color:inherit}
#exampleHeadline svg{width:100%;max-height:230px}
.sample-editor{margin-top:20px}.sample-editor summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;font-size:12px}
.sample-editor .ui-icon{width:22px;height:22px}.sample-editor textarea{width:100%;height:150px;margin-top:10px;resize:vertical;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:12px;font:inherit;font-size:14px;line-height:1.5}
.studio-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 var(--gutter);padding:28px 0 36px;border-top:1px solid var(--line);font-size:12px}
.studio-footer a{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--muted)}.studio-footer .ui-icon{width:24px;height:24px;transform:rotate(-90deg)}
/* Modern UI 2.0: inset panels, generous corners and pill controls. */
html[data-ui-layout=modern]{--rail-w:340px;--gutter:32px;--paper:#f5f4f6;--paper-2:#fff;--line:#cdccd1;--panel:#e5e4e8;--radius-ui:20px}
html[data-ui-layout=modern][data-theme=dark]{--paper:#191a1d;--paper-2:#333439;--panel:#27282d;--line:#46474e}
html[data-ui-layout=modern] .studio-head{border:0;padding-left:28px;padding-right:28px}
html[data-ui-layout=modern] #rail{border:0;padding:20px 14px 100px 24px}
html[data-ui-layout=modern] .rail-group{background:var(--panel);border:0;border-radius:23px;padding:0 22px;margin-bottom:16px}
html[data-ui-layout=modern] .rail-group>summary{font-size:18px;letter-spacing:-.035em;min-height:80px;font-weight:600;gap:8px}
html[data-ui-layout=modern] .rail-group .group-num{font-size:10px;font-weight:400}
html[data-ui-layout=modern] .rail-group>summary .ui-icon{width:35px;height:35px}
html[data-ui-layout=modern] .rail-group .icon-ring{display:block}
html[data-ui-layout=modern] .group-content{padding-bottom:24px}
html[data-ui-layout=modern] .mode-panel{margin-top:18px;padding-top:18px}
html[data-ui-layout=modern] .mode-switch{border-radius:24px;background:var(--paper-2)}
html[data-ui-layout=modern] .mode-switch button{border-radius:20px;font-size:12px}
html[data-ui-layout=modern] .polygon-control{gap:5px}
html[data-ui-layout=modern] .polygon-control button{height:60px;border-radius:14px;background:var(--paper-2);border:0}
html[data-ui-layout=modern] .polygon-control button[aria-pressed=true]{background:var(--accent)}
html[data-ui-layout=modern] input[type=range]{height:48px;padding:0 20px;background:var(--paper-2);border-radius:28px}
html[data-ui-layout=modern] input[type=range]::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9.5px;border:2px solid var(--accent-ink);border-radius:50%;background:var(--paper-2);box-shadow:none}
html[data-ui-layout=modern] input[type=range]::-moz-range-thumb{width:20px;height:20px;border:2px solid var(--accent-ink);border-radius:50%;background:var(--paper-2);box-shadow:none}
html[data-ui-layout=modern][data-theme=dark] input[type=range]::-webkit-slider-thumb{border-color:var(--accent)}
html[data-ui-layout=modern][data-theme=dark] input[type=range]::-moz-range-thumb{border-color:var(--accent)}
html[data-ui-layout=modern] .ctl{margin-bottom:22px}.ctl:last-child{margin-bottom:0}
html[data-ui-layout=modern] .ctl .row{margin:0 7px 8px}
html[data-ui-layout=modern] .chain{background:var(--paper-2);border-radius:7px;padding:4px 7px}
html[data-ui-layout=modern] #main{padding:0 24px 0 10px}
html[data-ui-layout=modern] #topbar{padding:12px 6px;border:0;height:72px;background:var(--paper)}
html[data-ui-layout=modern] .btn{border-radius:24px}
html[data-ui-layout=modern] .preview-nav{border:0;padding:6px 10px 18px;gap:15px}
html[data-ui-layout=modern] #hero{background:var(--panel);border-radius:25px;margin-bottom:20px;padding:30px var(--gutter);min-height:340px}
html[data-ui-layout=modern] .tester-title{display:block}
html[data-ui-layout=modern] #previewText{border-color:var(--ink);font-size:20px;padding-bottom:12px}
html[data-ui-layout=modern] #stage{min-height:190px}
html[data-ui-layout=modern] .proof-panel{background:var(--panel);border-radius:25px;margin:0 0 20px;padding-top:1px;overflow:hidden}
html[data-ui-layout=modern] #sizeProof,html[data-ui-layout=modern] #characterProof,html[data-ui-layout=modern] #examplesProof{border:0;margin-top:6px;font-size:19px;font-weight:600}
html[data-ui-layout=modern] .wf-row .sz{background:var(--panel)}
html[data-ui-layout=modern] .cm{border-color:var(--line)}
html[data-ui-layout=modern] .example-card{border-radius:18px}
html[data-ui-layout=modern] .studio-status{border:0;padding:8px var(--gutter) 24px}
html[data-ui-layout=modern] .grid-library select{border-radius:12px;background:var(--paper-2)}
html[data-ui-layout=modern] #gridLink,html[data-ui-layout=modern] #gridWeights button{border-radius:18px}
/* FAQ uses the same typography, colour and layout settings. */
body.faq-page{overflow:auto;height:auto;min-height:100vh;background:var(--paper);margin:0;color:var(--ink)}
.faq-page *{box-sizing:border-box}.faq-page .studio-head{position:sticky;top:0}.faq-page .brand{font-size:24px;text-decoration:none;color:var(--ink);font-weight:700;letter-spacing:-.04em}
.faq-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.faq-actions>a{color:var(--ink);text-decoration:none;border:1px solid var(--line);padding:10px 16px;border-radius:24px}
.faq-main{max-width:1120px;margin:0 auto;padding:76px 36px 90px}.faq-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:40px;margin-bottom:64px}
.faq-intro h1{font-size:clamp(50px,7vw,100px);font-weight:500;letter-spacing:-.065em;line-height:1;margin:0}
.faq-intro p{font-size:18px;line-height:1.55;max-width:34ch;margin:0;color:var(--muted)}
.faq-group>h2{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin:40px 0 18px;color:var(--muted)}
.faq-item{border-top:1px solid var(--line)}.faq-item>summary{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:24px 0;font-size:20px;cursor:pointer;list-style:none}
.faq-item[open]>summary .icon-vertical{opacity:0}.faq-answer{max-width:70ch;font-size:16px;line-height:1.65;padding:0 44px 26px 0;color:var(--muted)}.faq-answer p{margin:0 0 12px}.faq-answer a{color:var(--ink);text-underline-offset:4px}
html[data-ui-layout=modern] .faq-group{background:var(--panel);border-radius:24px;padding:12px 32px 20px;margin-bottom:24px}
html[data-ui-layout=modern] .faq-group>h2{margin-top:20px}
.faq-page .studio-footer{max-width:1048px;margin:0 auto;padding-bottom:90px}
@media(max-width:1100px){.studio-head .edition{display:none}.example-grid{grid-template-columns:1fr}.wide-card{grid-column:auto}.number-pair{grid-template-columns:1fr 1fr}#exampleNumber svg{height:180px}}
@media(max-width:850px){:root,html[data-ui-layout=modern]{--gutter:22px}.studio-head{gap:14px;padding:0 18px}.studio-head .studio-label{font-size:10px}#topbar{flex-wrap:wrap;gap:7px}#topbar>.btn{min-width:0}.appearance-actions{margin-left:auto}.preset-menu{margin-right:auto}.preview-nav{gap:12px}.preview-nav span{width:100%}.preview-nav a{font-size:11px}#characterProof span,#examplesProof span{display:block;margin:7px 0 0}.appearance-switcher{bottom:12px;left:12px}.appearance-panel{width:260px}.studio-footer{padding-bottom:90px;align-items:flex-start;font-size:11px}html[data-ui-layout=modern] #main{padding:0 14px}html[data-ui-layout=modern] #rail{padding:16px 14px 100px}html[data-ui-layout=modern] .rail-group{padding:0 22px}html[data-ui-layout=modern] #hero{padding:26px 22px}.example-grid{padding:18px 18px 22px}.example-card{padding:22px}.faq-main{padding:48px 22px 60px}.faq-intro{grid-template-columns:1fr;gap:24px;margin-bottom:44px}.faq-intro p{font-size:16px}.faq-item>summary{font-size:17px}.faq-answer{padding-right:0}.faq-page .studio-footer{margin:0 22px}.faq-actions>a{padding:8px 12px}.faq-page .studio-head{gap:12px}html[data-ui-layout=modern] .faq-group{padding:8px 22px 16px}.colour-menu{right:0}.colour-picker .ui-icon{width:20px!important}}

.ui-icon .icon-alt-arrow{display:none}
html[data-ui-layout=modern] .rail-group>summary .icon-horizontal,html[data-ui-layout=modern] .rail-group>summary .icon-vertical{display:none}
html[data-ui-layout=modern] .rail-group>summary .icon-alt-arrow{display:block}
html[data-ui-layout=modern] .rail-group[open]>summary .ui-icon{transform:rotate(180deg)}
.grid-library select{appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23888888' stroke-width='1'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}

/* Keep the scrolling specimen panels at their natural content height. */
#main > *{flex-shrink:0}
#previewText{flex:none;min-height:42px;line-height:1.4;border-radius:0}
html[data-ui-layout=modern] #previewText{min-height:49px}

@media(max-width:850px){html[data-ui-layout=modern] #topbar{height:auto;min-height:72px;padding:12px 6px;row-gap:10px}}

/* Compact ring icons, with more breathing room around the inner mark. */
.rail-group>summary .ui-icon,html[data-ui-font=outfit] .rail-group>summary .ui-icon,html[data-ui-layout=modern] .rail-group>summary .ui-icon{width:30px;height:30px}
.faq-item>summary .ui-icon{width:30px;height:30px}
/* A dedicated chevron keeps the palette control identical across font choices. */
.colour-picker>summary{gap:3px;padding:0 10px 0 12px}
.colour-chevron{display:block;width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.colour-picker[open] .colour-chevron{transform:rotate(180deg)}
.colour-menu,.appearance-panel{background:var(--paper-2)}
html[data-theme=dark] .number-card,html[data-theme=dark] .wide-card{background:var(--paper-2);color:var(--ink)}
html[data-theme=dark] .number-card .example-kicker{color:var(--muted)}

.colour-picker>summary{background:var(--paper-2)}
.btn.primary,.polygon-control button[aria-pressed=true],html[data-ui-layout=modern] .polygon-control button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}

.grid-spacing-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:18px 0;font-size:13px}
#gridSpacing{display:flex;gap:3px}#gridSpacing button{padding:8px;font:inherit;font-size:11px;color:var(--ink);background:transparent;border:1px solid var(--line);cursor:pointer}
#gridSpacing button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
html[data-ui-layout=modern] #gridSpacing button{border-radius:16px}
.example-controls{display:flex;gap:32px;flex-wrap:wrap;padding:18px var(--gutter) 4px}.example-controls label{display:grid;grid-template-columns:1fr auto;gap:6px;width:220px;font-size:13px}.example-controls input{grid-column:1/-1;width:100%}.example-controls output{text-align:right}
