:root{--move: 1.5s;--ease: cubic-bezier(.45, .05, .15, 1);--petrol: #004966}.site-nav{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s21);flex-wrap:wrap;max-width:1220px;margin:0 auto;padding:var(--s21) var(--side) 0}.site-nav .wordmark{font-family:var(--font-display);font-weight:600;font-size:33px;color:var(--blue);text-decoration:none}.site-nav ul{list-style:none;display:flex;gap:var(--s21);margin:0;padding:0;flex-wrap:wrap}.site-nav a{font-family:var(--font-ui);font-size:14px;color:var(--charcoal);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:var(--s3)}.site-nav a[aria-current=page]{border-bottom-color:var(--blue);font-weight:600}.site-nav a:hover{border-bottom-color:var(--blue-light)}.partner-line{font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--petrol)}.gpage{position:relative;padding:var(--s34) 0 var(--s89)}.gpage .inner{max-width:1220px;margin:0 auto;padding:0 var(--side)}.gpage .kicker{font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--petrol);margin:0 0 var(--s13)}.gpage .gtitle{font-family:var(--font-display);font-weight:300;font-size:52px;line-height:1.05;margin:0 0 var(--s21);letter-spacing:-.005em;text-wrap:balance}.gpage .gtitle em{font-style:italic;font-weight:300}.gpage .intro{max-width:34em;margin:0 0 var(--s21)}.gsplit{display:grid;grid-template-columns:61.8fr 38.2fr;column-gap:var(--s55);align-items:start;position:relative}.gsplit:before{content:"";position:absolute;top:0;bottom:0;left:calc((100% - var(--s55)) * .618 + var(--s55) / 2);width:1px;background:var(--blue-light);pointer-events:none}.gminor{font-size:14px}.gminor p{margin:0 0 var(--s13)}.views{display:flex;flex-wrap:wrap;gap:var(--s8);margin:0 0 var(--s21)}.vbtn{font-family:var(--font-ui);font-size:14px;font-weight:600;padding:var(--s5) var(--s13);border:1px solid var(--blue);background:transparent;color:var(--blue);border-radius:2px;cursor:pointer}.vbtn[aria-pressed=true]{background:var(--blue);color:var(--paper)}.vbtn:hover:not([aria-pressed=true]){background:var(--blue-light);color:var(--blue-deep)}.colour-by{display:flex;gap:var(--s8);align-items:center;font-family:var(--font-ui);font-size:14px;margin-bottom:var(--s21);flex-wrap:wrap}.colour-by select{font-family:var(--font-ui);font-size:14px;padding:var(--s3) var(--s8);border:1px solid var(--blue-light);background:var(--paper);color:var(--charcoal)}.gnote{font-family:var(--font-mono);font-size:11px}.gstage{position:relative;margin:var(--s21) 0 0;border-top:1px solid var(--blue-light);border-bottom:1px solid var(--blue-light);overflow:hidden;background:var(--ground);transition:height var(--move) var(--ease)}.basemap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 1s ease .4s;pointer-events:none}.gstage.v-europe .basemap,.gstage.v-world .basemap{opacity:1}.basemap .land{fill:#eae8e1;stroke:var(--blue-light);stroke-width:.6}.basemap .borders{fill:none;stroke:var(--blue-light);stroke-width:.5;stroke-dasharray:2 2}.basemap .grat{fill:none;stroke:var(--blue-light);stroke-width:.4;opacity:.6}.sp{position:absolute;left:0;top:0;display:block;text-decoration:none;color:var(--charcoal);cursor:pointer;will-change:transform;transition:transform var(--move) var(--ease),width var(--move) var(--ease),height var(--move) var(--ease),opacity .8s ease}.sp .bars{display:flex;gap:2px;width:100%;height:100%}.sp .bars i{display:block;flex:1 1 0;min-width:1px;transition:flex-grow var(--move) var(--ease),opacity .8s ease}.sp .bars i.null{box-shadow:inset 0 0 0 1px var(--charcoal);background:var(--paper)}.sp .lbl{position:absolute;left:0;top:100%;width:100%;margin-top:var(--s3);font-family:var(--font-ui);font-size:11px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .6s ease}.sp .lbl b{display:block;font-family:var(--font-mono);font-weight:400;color:var(--blue-deep)}.sp .yr{position:absolute;right:100%;top:0;margin-right:var(--s8);font-family:var(--font-mono);font-size:11px;line-height:13px;color:var(--blue-deep);white-space:nowrap;opacity:0;transition:opacity .8s ease}.sp .side{position:absolute;left:100%;top:0;margin-left:var(--s13);font-family:var(--font-ui);font-size:11px;line-height:13px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity .8s ease}.sp .side em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--blue-deep)}.sp:hover,.sp:focus-visible{z-index:50;outline:none}.sp:hover .bars,.sp:focus-visible .bars{outline:1px solid var(--charcoal);outline-offset:2px}.gstage.v-spectrum .sp .lbl,.gstage.v-europe .sp .lbl,.gstage.v-world .sp .lbl{opacity:0;pointer-events:none}.gstage.v-spectrum .sp .yr,.gstage.v-spectrum .sp .side{opacity:1}.gstage.v-spectrum .sp .bars i:nth-child(1){flex-grow:34}.gstage.v-spectrum .sp .bars i:nth-child(2){flex-grow:89}.gstage.v-spectrum .sp .bars i:nth-child(3){flex-grow:34}.gstage.v-spectrum .sp .bars i:nth-child(4){flex-grow:34}.gstage.v-spectrum .sp .bars i:nth-child(5){flex-grow:21}.gstage.v-europe .sp .bars,.gstage.v-world .sp .bars{gap:1px;box-shadow:0 0 0 1px var(--paper)}.gstage.by-name .sp .bars i:not(:nth-child(1)),.gstage.by-year .sp .bars i:not(:nth-child(2)),.gstage.by-place .sp .bars i:not(:nth-child(3)),.gstage.by-dewey .sp .bars i:not(:nth-child(4)),.gstage.by-gender .sp .bars i:not(:nth-child(5)){flex-grow:0;opacity:0}.gstage.by-name .sp .bars,.gstage.by-year .sp .bars,.gstage.by-place .sp .bars,.gstage.by-dewey .sp .bars,.gstage.by-gender .sp .bars{gap:0;border-radius:50%;overflow:hidden}.sp.off{opacity:0;pointer-events:none}.era{position:absolute;left:0;font-family:var(--font-display);font-weight:400;font-size:21px;line-height:1;color:var(--charcoal);opacity:0;transition:opacity .8s ease,transform var(--move) var(--ease);pointer-events:none;white-space:nowrap}.gstage.v-spectrum .era{opacity:1;transition-delay:.6s,0s}.era:after{content:"";display:block;height:1px;background:var(--blue-light);margin-top:var(--s5);width:610px;max-width:80vw}.apage .bar-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--s13);font-family:var(--font-ui);font-size:14px;margin-bottom:var(--s21);flex-wrap:wrap}.apage .bar-nav a,.apage .bar-nav button{font-family:var(--font-ui);font-size:14px;background:none;border:1px solid var(--blue);color:var(--blue);padding:var(--s5) var(--s13);border-radius:2px;cursor:pointer;text-decoration:none}.apage .bar-nav a:hover,.apage .bar-nav button:hover{background:var(--blue-light);color:var(--blue-deep)}.apage .native{font-style:italic;margin:0 0 var(--s13)}.apage .aart{background:var(--paper);box-shadow:0 0 0 1px var(--blue-light);width:calc(100% + var(--s55) + var(--s34));max-width:none;margin:var(--s21) 0 0}.apage .aart svg{width:100%;height:auto;display:block}.reading{margin:0;display:grid;gap:var(--s13)}.reading dt{display:flex;align-items:center;gap:var(--s8);font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.reading dt i{width:13px;height:21px;display:inline-block;border:1px solid rgba(52,40,44,.15)}.reading dd{margin:0;font-size:14px}.reading dd .mono{font-family:var(--font-mono);font-size:11px;color:var(--blue-deep)}.apage .bio{font-style:italic;opacity:.7;margin-top:var(--s34)}@media(max-width:760px){.gsplit{grid-template-columns:minmax(0,1fr)}.gsplit:before{display:none}.gpage .gtitle{font-size:33px}.gminor{margin-top:var(--s34)}.gstage.v-spectrum .sp .side{display:none}.apage .aart{width:100%}}@media(prefers-reduced-motion:reduce){.sp,.sp .bars i,.gstage,.era,.basemap{transition:none!important}}.how-page{--how-code-bg: #F1F0EC;--how-rule: rgba(52, 40, 44, .18)}.how-page .title-line{font-family:var(--font-display);font-weight:300;font-size:42px;line-height:1.1;margin:0 0 var(--s21);text-wrap:balance}.how-page .title-line em{font-style:italic}.how-page .title-arrow{font-family:var(--font-ui);font-size:21px;color:var(--blue-deep);margin:0 var(--s5)}.how-page .input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s13);align-items:end;margin:var(--s21) 0}.how-page .input-row label{display:block;font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--s5)}.how-page .name-input{width:100%;font-family:var(--font-display);font-size:33px;font-weight:300;padding:var(--s5) var(--s13);border:1px solid var(--blue-light);background:var(--paper);color:var(--charcoal);border-radius:2px}.how-page .name-input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.how-page .examples{display:flex;flex-wrap:wrap;gap:var(--s8)}.how-page .chip{font-family:var(--font-ui);font-size:14px;font-weight:600;padding:var(--s5) var(--s13);border:1px solid var(--blue);background:transparent;color:var(--blue);border-radius:2px;cursor:pointer}.how-page .chip:hover{background:var(--blue-light);color:var(--blue-deep)}.how-page .letters{display:flex;flex-wrap:wrap;gap:var(--s8);align-items:flex-end;margin:var(--s13) 0}.how-page .letter{display:flex;flex-direction:column;align-items:center;min-width:55px;padding:var(--s8) var(--s5);background:var(--paper);border:1px solid var(--blue-light);border-radius:2px;cursor:pointer;transition:box-shadow .6s ease,border-color .6s ease,transform .6s cubic-bezier(.45,.05,.15,1)}.how-page .letter:hover{transform:translateY(-3px)}.how-page .letter .g{font-family:var(--font-display);font-size:33px;font-weight:300;line-height:1}.how-page .letter .c{font-family:var(--font-mono);font-size:11px;color:var(--blue-deep);margin-top:var(--s5)}.how-page .letter .p{font-family:var(--font-ui);font-size:11px;margin-top:var(--s3)}.how-page .sum-line{font-family:var(--font-mono);font-size:17px;margin:var(--s8) 0 0;word-break:break-word}.how-page .sum-line b{font-weight:700}.how-page .timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s13);margin:var(--s21) 0 var(--s34)}.how-page .tl{padding:var(--s13);border-top:3px solid var(--blue-light)}.how-page .tl.now{border-top-color:var(--blue)}.how-page .tl .y{font-family:var(--font-mono);font-size:11px;color:var(--blue-deep)}.how-page .tl .n{font-family:var(--font-display);font-size:21px;line-height:1.15;margin:var(--s3) 0}.how-page .tl .d{font-size:14px;margin:0}.how-page .flow{display:grid;grid-template-columns:minmax(144px,233px) minmax(0,1fr) minmax(144px,233px);gap:var(--s21);align-items:stretch;padding:var(--s21) 0;border-top:1px solid var(--blue-light)}.how-page .flow .in,.how-page .flow .out{display:flex;flex-direction:column;gap:var(--s8)}.how-page .flow .flow-name{font-family:var(--font-display);font-size:27px;font-weight:300;line-height:1.1;word-break:break-word}.how-page .flow .flow-stage,.how-page .flow .flow-arrow{font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-deep)}.how-page .flow .algo{font-family:var(--font-display);font-size:27px;font-weight:400;line-height:1.1;margin:0 0 var(--s5)}.how-page .flow .what{font-size:14px;margin:0 0 var(--s8);max-width:40em}.how-page pre{margin:0;padding:var(--s13);background:var(--how-code-bg);border:1px solid var(--how-rule);border-radius:2px;font-family:var(--font-mono);font-size:11px;line-height:1.6;overflow-x:auto;white-space:pre}.how-page .steps{margin:var(--s8) 0 0;padding:0;list-style:none;font-family:var(--font-mono);font-size:11px;line-height:1.7;color:var(--charcoal)}.how-page .steps li b{font-weight:700;color:var(--blue-deep)}.how-page .swatch{height:89px;border:1px solid var(--how-rule);border-radius:2px;background:#ccc;transition:background-color 1.2s cubic-bezier(.45,.05,.15,1)}.how-page .swatch-hex{font-family:var(--font-mono);font-size:21px;font-weight:700;transition:color .6s ease}.how-page .verdict{font-family:var(--font-ui);font-size:11px;line-height:1.5}.how-page .without{display:flex;flex-wrap:wrap;gap:var(--s3)}.how-page .without i{display:block;width:21px;height:21px;border:1px solid var(--how-rule);border-radius:2px;transition:background-color 1.2s cubic-bezier(.45,.05,.15,1)}.how-page .without-label{font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-deep)}.how-page .tokens{display:flex;flex-wrap:wrap;gap:var(--s5);margin:var(--s8) 0}.how-page .tok{display:inline-flex;flex-direction:column;align-items:center;padding:var(--s5) var(--s8);background:var(--paper);border:1px solid var(--blue-light);border-radius:2px;animation:how-tok-in .8s cubic-bezier(.45,.05,.15,1) both}.how-page .tok .t{font-family:var(--font-mono);font-size:14px}.how-page .tok .i{font-family:var(--font-mono);font-size:11px;color:var(--blue-deep)}@keyframes how-tok-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.how-page .how-mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.02em}.how-page .note{font-size:14px;max-width:40em}.how-page .how-foot{margin-top:var(--s89);padding-top:var(--s13);border-top:1px solid var(--blue-light);font-family:var(--font-ui);font-size:11px;letter-spacing:.04em;display:flex;justify-content:space-between;gap:var(--s21);flex-wrap:wrap}@media(max-width:860px){.how-page .flow{grid-template-columns:minmax(0,1fr)}.how-page .timeline{grid-template-columns:1fr 1fr}.how-page .title-line{font-size:27px}.how-page .input-row{grid-template-columns:minmax(0,1fr)}.how-page .name-input{font-size:27px}}@media(prefers-reduced-motion:reduce){.how-page .letter,.how-page .swatch,.how-page .swatch-hex,.how-page .without i,.how-page .tok{transition:none!important;animation:none!important}}:root{--ground: #f9f9f9;--paper: #ffffff;--blue: #474ba0;--blue-light: #bdbfe2;--blue-deep: #33367a;--teal: #649090;--mauve: #ba7ba1;--gold: #b59670;--charcoal: #34282c;--rule: rgba(52, 40, 44, .35);--font-display: "Crimson Pro", Georgia, serif;--font-body: Georgia, "Times New Roman", serif;--font-ui: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--s3: 3px;--s5: 5px;--s8: 8px;--s13: 13px;--s21: 21px;--s34: 34px;--s55: 55px;--s89: 89px;--gutter: var(--s55);--side: var(--s34);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--charcoal);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.page{position:relative;max-width:1220px;margin:0 auto;padding:var(--s55) var(--side) var(--s89);display:grid;grid-template-columns:61.8fr 38.2fr;column-gap:var(--gutter);grid-template-areas:"head  lang" "stage stage" "form  key";align-items:start}.page:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--side) + (100% - 2 * var(--side) - var(--gutter)) * .618 + var(--gutter) / 2);width:1px;background:var(--blue-light);pointer-events:none}.head{grid-area:head;position:relative}.stage{grid-area:stage;position:relative;margin:var(--s34) 0 var(--s55)}.form-col{grid-area:form;position:relative;min-width:0}.key{grid-area:key;position:relative;min-width:0}.lang-toggle{grid-area:lang;justify-self:end;position:relative}.title{font-family:var(--font-display);font-weight:700;font-size:52px;line-height:1.05;margin:0 0 var(--s21);letter-spacing:-.01em}.intro{margin:0;max-width:34em;font-size:17px}.artwork{margin:0;width:calc((100% - var(--gutter)) * .618 + var(--gutter) + var(--s34));max-width:100%;background:var(--paper);box-shadow:0 0 0 1px var(--blue-light)}.barcode-svg{display:block;width:100%;height:auto}.engine-message{margin:var(--s13) 0 0;padding-left:var(--s13);border-left:3px solid var(--teal);font-style:italic;font-size:14px}.downloads{display:flex;flex-wrap:wrap;gap:var(--s13);margin-top:var(--s21);align-items:center}.button{font-family:var(--font-ui);font-size:14px;font-weight:600;padding:var(--s8) var(--s21);border:1px solid var(--blue);border-radius:2px;background:var(--blue);color:var(--paper);cursor:pointer}.button:hover:not(:disabled){background:var(--blue-deep);border-color:var(--blue-deep)}.button-quiet{background:transparent;color:var(--blue)}.button-quiet:hover:not(:disabled){background:var(--blue-light);color:var(--blue-deep)}.button:disabled{opacity:.45;cursor:not-allowed}.key-title{font-family:var(--font-display);font-weight:600;font-size:27px;line-height:1.2;margin:0 0 var(--s21)}.key-list{margin:0;display:grid;gap:var(--s13)}.key-item dt{font-family:var(--font-ui);font-size:14px;font-weight:600}.key-item dd{margin:0;font-size:14px;line-height:1.55}.attribution{margin-top:var(--s34);padding-top:var(--s13);border-top:1px solid var(--blue-light)}.attribution p{font-family:var(--font-ui);font-size:14px;line-height:1.5;margin:0 0 var(--s8)}.lang-button{font-family:var(--font-ui);font-size:14px;background:none;border:0;border-bottom:2px solid transparent;padding:var(--s5) var(--s3);margin-left:var(--s13);color:var(--charcoal);cursor:pointer}.lang-button[aria-pressed=true]{border-bottom-color:var(--blue);font-weight:600}@media(max-width:900px){.title{font-size:42px}}@media(max-width:640px){:root{--side: 16px}.page{padding-top:var(--s21);grid-template-columns:minmax(0,1fr);grid-template-areas:"lang" "head" "stage" "form" "key"}.page:before{display:none}.lang-toggle{justify-self:start}.lang-button{margin:0 var(--s13) 0 0}.title{font-size:33px}.artwork{width:100%}.stage{margin:var(--s21) 0 var(--s34)}.key{margin-top:var(--s55)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.profile-form{display:grid;gap:var(--s34)}.field{position:relative;margin:0;padding:0;border:0;min-width:0}.field-label{display:block;font-family:var(--font-ui);font-size:14px;font-weight:600;margin:0 0 var(--s8);padding:0}.field-label-sub{margin-top:var(--s13);font-weight:500}.field-hint{font-size:14px;line-height:1.5;margin:var(--s8) 0 0;max-width:36em}.field-error{font-family:var(--font-ui);font-size:14px;margin:var(--s8) 0 0;color:var(--blue-deep)}.text-input,.select{width:100%;font-family:var(--font-ui);font-size:17px;color:var(--charcoal);background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:var(--s8) var(--s13);min-height:44px}.text-input::placeholder{color:#34282c99}.text-input[aria-invalid=true]{border-color:var(--blue-deep)}.year-row{display:flex;gap:var(--s13)}.year-input{width:8em;flex:0 0 auto;font-family:var(--font-mono)}.month-select{flex:1 1 auto;width:auto}.swatches{border:0;margin:var(--s13) 0 0;padding:0;min-width:0}.swatches legend{padding:0;margin-bottom:var(--s13)}.swatch-row{display:flex;flex-wrap:wrap;gap:var(--s8) var(--s13)}.swatch{display:grid;justify-items:start;gap:var(--s5);cursor:pointer;position:relative}.swatch input{position:absolute;opacity:0;width:1px;height:1px}.swatch-chip{display:block;width:21px;height:55px;border:1px solid transparent}.swatch-chip-empty{background:var(--paper);border-color:var(--rule)}.swatch-name{font-family:var(--font-mono);font-size:11px;line-height:1;padding-bottom:var(--s3);border-bottom:2px solid transparent}.swatch input:checked~.swatch-name{border-bottom-color:var(--charcoal);font-weight:700}.swatch input:checked+.swatch-chip{outline:2px solid var(--charcoal);outline-offset:2px}.swatch input:focus-visible+.swatch-chip{outline:2px solid var(--blue);outline-offset:2px}.radio-row{display:flex;flex-wrap:wrap;gap:var(--s8) var(--s21);align-items:center}.radio{display:inline-flex;align-items:center;gap:var(--s8);font-family:var(--font-ui);font-size:17px;min-height:44px;cursor:pointer}.radio input{width:18px;height:18px;accent-color:var(--blue);margin:0}.link-button{font-family:var(--font-ui);font-size:14px;background:none;border:0;padding:var(--s3) 0;color:var(--blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.mono{font-family:var(--font-mono);font-size:14px}.place-chosen{font-family:var(--font-ui);font-size:14px;margin:var(--s8) 0 0}.place-host gmp-place-autocomplete{width:100%;color-scheme:light}.town-list{position:absolute;z-index:2;left:0;right:0;margin:var(--s3) 0 0;padding:var(--s3) 0;list-style:none;background:var(--paper);border:1px solid var(--rule);max-height:21em;overflow-y:auto}.town-option,.town-empty{font-family:var(--font-ui);font-size:14px;padding:var(--s8) var(--s13)}.town-option{cursor:pointer}.town-option.is-active,.town-option:hover{background:var(--blue-light)}
