/* general */ body { background: #FFF; color: #000; font-size: 90%; text-align: center; } a, a:visited { color: #000; text-decoration: underline; } a:active, a:hover { color: #00F; text-decoration: none; } /* common sections */ h1, h2 { font-size: 200%; margin: 0; } h2, caption { font-size: 110%; font-weight: bold; } caption { margin: 1ex; } caption aside { position: absolute; margin-left: 1ex; font-weight: normal; display: inline; font-size: 91%; /* 100% */ margin-top: .3ex; /* align with 110% baseline */ } hr { clear: both; visibility: hidden; height: 2ex; margin: 0; } .section ul { margin-bottom: 1ex; } .section h2 { margin: 0 1ex; clear: both; } .section table { float: left; position: relative; /* prevents buggy hovering in table if caption present in gecko */ margin: 1ex 1ex 2ex; } .section .section { float: left; } #charset .section table { margin: -0.5ex 0 1ex; /* headers provide sufficient spacing already */ } p { margin: 1ex 0 1em; } p.aside { font-size: 80%; } p.footer { margin: 1em 0 0; clear: both; } .help + .footer { margin: 0; } .error { background: #F00; background: rgba(255, 0, 0, .8); color: #FFF; border: 2px solid #000; border-width: 2px 0; padding: 1em; margin: 2ex auto; clear: both; } .error > * { margin-bottom: 1ex; } .error > *:last-child { margin-bottom: 0; } ul { margin: 0; padding: 0; list-style: none; } pre { text-align: left; margin: 2ex auto; white-space: pre-wrap; overflow-wrap: break-word; } body > pre { width: 78ch; tab-size: 4; -moz-tab-size: 4; padding: 0 1em; border-width: 0 1px; border-style: solid; white-space: pre; font-size: 1.9vmin; /* cover full width at most */ } code { white-space: nowrap; } h1 small, h2 small { position: absolute; /* side note; do not influence alignment */ margin-left: 1em; font-weight: normal; font-size: 50%; /* 1rem */ padding-top: 1.75ex; /* align baseline with container */ } h2 small { font-size: 90.9%; padding-top: .17ex; } .section dl { display: grid; grid: auto-flow / 1fr 1fr; clear: both; } .section dl > dt { grid-column: 1; text-align: right; } dt code { white-space: normal; } dl > dd { grid-column: 2; text-align: left; padding-left: 1em; margin: 0 0 .5ex; } @media (max-width: 42em) { .section dl { grid: auto-flow / minmax(8em, 1fr) minmax(10em, 3fr); } dl > dd { margin-bottom: 1ex; /* distinguish rows more as dts can wrap */ } dd small { display: inline-block; } dd code { white-space: normal; } } /* "keyboard" (list of keys) */ .row0 {margin-top: -5ex} /* top (esc) row fits besides header */ .row2 {margin-left: 7em} /* row offsets relative to ~6em key width */ .row3 {margin-left: 8em} .row4 {margin-left: 10em} /* should actually align to next key on row1 */ /* ...however rows>=1 are shifted a bit, to make space */ table.keys tr { clear: both; /* start new row (screen row) */ display: block; } table.keys tbody { /* start new row block (keyboard row) */ clear: both; padding-top: 1ex; display: block; } table.keys th, h3 {display: none} /* semantic details (non-css/js) */ .keys .mode {display: none} /* initially hidden (only show interactively (js)) */ table.keys { display: block; border-spacing: 0; border-collapse: collapse; white-space: nowrap; text-align: left; } /* individual keys */ dl.legend dt, .keys td { display: inline-block; white-space: normal; width: 6.2em; line-height: 2.25ex; /* a little terser (seems to be gecko's default anyway) */ height: 4.5ex; /* 2 lines */ overflow: hidden; margin: 0 2px -1px; padding: 0; text-align: center; border: 1px solid #000; border-radius: 4px; -moz-border-radius: 4px; text-transform-variation: text; } .keys td b { float: left; font-size: 200%; line-height: 2.5ex; /* inherits otherwise */ padding-left: 2px; } .keys .row0 td { /* omni-present esc */ width: 8.5em; } /* fine tuning of special occurrences */ .keys td b[title] { /* mnemonic hover */ cursor: help; } .keys td[onclick]:hover { /* link */ cursor: pointer; } .keys td a { /* key link */ color: inherit; text-decoration: none; display: block; height: 100%; } .keys .meta td b, .keys .ctrl td b, .keys .lead td b { /* char with ctrl or leading key */ font-size: 100%; /* space is too limited for 2+ double-sized chars */ line-height: 5ex; /* keep double height though */ } .keys .meta td b small, .keys .ctrl td b small { /* meta key indicator */ font-size: 70%; font-weight: normal; /* nice and subtle */ } /* enlarged keys */ .keys.big td { width: 1em; min-width: auto; height: 2.25ex; font-size: 200%; font-size: calc(7vmin - 4px); /* fit 12 keys to page */ overflow: visible; position: relative; padding: 0; margin: 0 .2vw -1px; } /* override row alignments */ .keys.big tbody { font-size: calc(1.4vmin); /* enlarged td conversion */ } .keys.big .row2 {margin-left: 7em} .keys.big .row3 {margin-left: 8em} .keys.big .row4 {margin-left: 10em} .keys.big .row0 { display: none; /* headerless */ } .keys.big td b { position: absolute; /* overlay */ z-index: 1; top: -1.2ex; /* halfway over shift */ left: 0; right: 0; font-size: 50%; opacity: .5; color: #FFF; line-height: 2.25ex; } .keys.big.cmp td b, .keys.big .ctrl td b, .keys.big .meta td b, .keys.big .shift td b { display: none; } /* tables */ table { border-collapse: collapse; } th, td { border-color: #778; border: 1px solid #888; background: #DDD; } thead th, td { text-align: center; } td.joind { border-bottom: none; } td.joinu { /* first cell determines border width for entire row */ border-top-color: transparent; } td.joinr { border-right: none; } td.joinl { border-left: none; } thead { position: sticky; top: 0; background: #DDD8; } /* character table */ .glyphs thead th, .glyphs td { width: 1.6em; /* regular interval */ } .glyphs tbody td { font-size: 112%; } .glyphs.big tbody td { font-size: 200%; } .glyphs .glyphs { margin: 0.5ex 0; /* nested in legend */ } .glyphs .glyphs td { font-size: 100%; } .cover td { min-width: 2.5ex; /* square cells */ } /* table headers */ th, tfoot td, thead td { border-width: 0; background: transparent; } .glyphs thead td { width: auto; /* no glyph cells in header */ } .glyphs caption { margin-left: 2.2em; /* 1ex + offset head column (1.6em + 0.4em) / 110% */ /* adjusted insignificant -.2em to fit wide contents on /charset/mac */ } th { padding: 0 0.2em; } .diinfo th { font-size: 50%; /* mostly insignificant here */ font-weight: normal; } .diinfo tbody th { text-align: right; /* variable width so keep near cells */ padding: 0 0.5em; } .cat { font-size: 70%; text-transform: uppercase; } tfoot .cat th { border-top: 1px solid #888; } /* colour map */ table.color td { border: 1px solid #555; font-weight: normal; padding: 0 8px; } table.color td samp { margin: 0 -8px 0 8px; font-family: inherit; float: right; } table.color td samp ~ samp { } table.color td samp small { font: 100% monospace; padding: 0 .5ex; } /* digraphs map */ table.dimap { table-layout: fixed; /* prevent resizing, notably in msie6 */ } .dimap thead th, .dimap td { /* below-maximum size (but still average enough to be regular) so we can fit more */ width: 1.2em; /* msie only looks at the first row */ min-width: 1em; /* prevents gecko from restricting to page width */ } .dimap th { text-align: center; /* row headers are also glyph-sized */ } .mapped tbody, .mapped colgroup, .dimap tbody, .dimap colgroup { border: 2px double #888; /* major character group grid */ } .mapped tbody, .dimap tbody { border-width: 2px 0; /* horizontal group dividers */ } .mapped colgroup, .dimap colgroup { border-width: 0 2px; /* vertical divides */ } /* digraph selection */ .diinfo { -moz-column-width: 24em; -webkit-column-width: 24em; column-width: 24em; } .diinfo > div { overflow: hidden; column-break-inside: avoid; -webkit-column-break-inside: avoid; position: relative; z-index: 1; /* webkit bug */ } /* glyph cell overlay (digraph labels) */ .glyphs.dilabel td { padding: 0; padding-bottom: 1.1ex; /* reserve space for label */ vertical-align: bottom; } .glyphs.dilabel small { font-size: 50%; display: block; margin-top: 0.2ex; margin-bottom: -2.2ex; /* take cell padding */ } .glyphs.dilabel small.digraph { background: #000; color: #FFF; opacity: 0.3; } .glyphs.dilabel small.value { background: #600; color: #FFF; opacity: 0.3; } /* character properties */ .X {background: #FFF} /* unidentified */ .Mc, .Me, .Zl, .Zp {background: #F00} /* unstyled */ .X > span {background: #898; background: rgba(0, 0, 0, .25)} /* invisible contents */ /* letter scripts */ .Armenian, .Greek {background: #FFE8CF} .Cyrillic {background: #FFDDA8} .Latin {background: #FFB} .Aramaic, .Hebrew {background: #FFD} .Arabic {background: #EFE} .African {background: #DED} .Brahmic {background: #FBB} /* same as number */ .Khmer {background: #FBA} .Hangul, .Syllabic {background: #DEA} .Katakana {background: #DFA} .Hiragana {background: #DFC} .Bopomofo {background: #BFC} .Han {background: #CFD} .Alpha {background: #ADA} /* other scripts */ /* other categories */ .Nd, .Nl, .No {background: #FDD} /* number */ .Sc {background: #FCD} /* currency */ .Sm {background: #ECE} /* math */ .So {background: #DCF} /* symbol */ .Pd, .Po, .Pc {background: #CDF} /* punctuation */ .Ps, .Pe, .Pi, .Pf {background: #BEF} /* quote */ .Lm, .Sk {background: #CEE} /* spacing modifier */ .Mn {background: #ACC} /* modifier */ .Cc, .Cf {color: #666; background: #BBB} /* control */ .Zs {background: #ACB} /* space */ .Co, .Xi.Co {background: #DCC} /* private */ .Xi, .Cs {background: #CCC} /* invalid */ .Xd {color: #844} /* deprecated */ .Xr {color: #888} /* reserved (digraph reverse or proposal) */ .dimap .Xr {background: #EEE} /* reversed digraph */ .ccmap .Xr {opacity:.4} /* support levels */ .l1 {background: #FDD} /* no, unsupported, other */ .l2 {background: #FED} /* partial, restricted, unofficial */ /* default u-prop, u-bmp */ .l3 {background: #FFD} /* almost, imperfect, common */ /* default u-di, u-lat1 */ .l4 {background: #EFD} /* yes, supported, ubiquitous, native */ /* default u-ascii */ .l5 {background: #DFD} /* complete, perfect */ .l0 {background: #EEE} /* unknown, omitted */ .ex { color: #888; color: rgba(0, 0, 0, .5)} /* experimental, disfavoured */ .u-invalid {background: #BBB} /* invalid, impossible */ /* foreground representation */ #digraphs .u-l4 {color: #080} /* partial */ #digraphs .u-l5 {color: #4C0} /* experimental */ #digraphs .u-l2 {color: #A44; color: rgba(128, 0, 0, .6)} /* unofficial */ #digraphs .u-l1 {color: #D00; color: rgba(255, 0, 0, .8)} /* missing */ /* support percentage (browser cells) */ .p0 {opacity: .6} .p0.p {opacity: 1} .p::after {content: '!'; color: #F00} .p4::after {color: #C00} .p3::after {color: #A00} .p2::after {color: #800} .p1::after, .p0::after {color: #000} .p09::after {opacity: .9} .p08::after {opacity: .8} .p07::after {opacity: .7} .p06::after {opacity: .6} .p05::after {opacity: .5} .p04::after {opacity: .4} .p03::after {opacity: .3} .p02::after {opacity: .2} .p01::after {opacity: .1} .p00::after {display: none} /* code syntax */ .sy-comment { color: #888 } .sy-constant { color: #008 } .sy-identifier { color: #804 } .sy-statement { } .sy-preProc { } .sy-type, .sy-special { color: #408 } .sy-error { font-weight: bold; background-color: #F00; color: #FFF } .sy-todo { background-color: #FF0 } /* boolean alternate */ .glyphs b { font-weight: normal; color: #800 } /* hover effects */ .X:hover {cursor: help} .X:hover > span {background: #FFF} /* whitespace marker */ .Greek:hover, .Armenian:hover {background: #FA8} .Cyrillic:hover {background: #FB7} .Latin:hover {background: #EE4} .Hebrew:hover, .Aramaic:hover {background: #FFA} .Arabic:hover {background: #CFD} .African:hover {background: #BDB} .Syllabic:hover, .Hangul:hover {background: #CE6} .Katakana:hover {background: #BF7} .Hiragana:hover {background: #AF8} .Bopomofo:hover {background: #8FA} .Brahmic:hover {background: #F77} .Khmer:hover {background: #F87} .Han:hover {background: #5EB} .Alpha:hover {background: #5C5} .Nd:hover, .Nl:hover, .No:hover {background: #F99} /* number */ .Sc:hover {background: #F8C} /* currency */ .Sm:hover {background: #F8F} /* math */ .So:hover {background: #A8F} /* symbol */ .Pd:hover, .Po:hover, .Pc:hover {background: #8AF} /* punctuation */ .Ps:hover, .Pe:hover, .Pi:hover, .Pf:hover {background: #8DF} /* quote */ .Lm:hover, .Sk:hover {background: #BFF} /* spacing modifier */ .Mn:hover {background: #CDE} /* modifier */ .Zs:hover {background: #CED} /* space */ .Cc:hover, .Cf:hover {background: #DDD} /* control */ .Co:hover {background: #A77} /* private */ .Xr:hover {background: #FFF} /* reserved */ .Xi:hover {background: #DDD} /* invalid */ .l0:hover {background: #888} .l1:hover {background: #F88} .l2:hover {background: #FC8} .l3:hover {background: #FF8} .l4:hover {background: #CF8} .l5:hover {background: #8F8} .u-l4:hover {outline: 1px solid #080} .u-l5:hover {outline: 1px solid #8F0} .u-l2:hover {outline: 1px solid #800} .u-l1:hover {outline: 1px solid #F00} /* key type colorization */ .c-sa, .g1 {background: #BFE} /* cyan: info */ .c-na, .g2 {background: #BFB} /* green: motion */ .g3 {background: #DFA} /* greenish: jump (g2+) */ .c-af, .g4 {background: #FFA} /* yellow: command */ .c-eu, .g5 {background: #FDA} /* orangish: open (g6-) */ .g6 {background: #FCA} /* orange: insert */ .c-as, .g7 {background: #FCC} /* red: mode */ .c-an, .g8 {background: #ECE} /* purple: visual (g7+) */ .c-oc, .g9 {background: #CCF} /* blue: prefix */ .c-sa:hover, .g1 a:hover, .g1[onclick]:hover {background: #5ED} .c-na:hover, .g2 a:hover, .g2[onclick]:hover {background: #7E7} .g3 a:hover, .g3[onclick]:hover {background: #CE6} .c-af:hover, .g4 a:hover, .g4[onclick]:hover {background: #EE4} .c-eu:hover, .g5 a:hover, .g5[onclick]:hover {background: #FA6} .g6 a:hover, .g6[onclick]:hover {background: #F97} .c-as:hover, .g7 a:hover, .g7[onclick]:hover {background: #F88} .c-an:hover, .g8 a:hover, .g8[onclick]:hover {background: #D9D} .c-oc:hover, .g9 a:hover, .g9[onclick]:hover {background: #99F} .no { background: #EEE; /* unassigned */ } .keys td.ni { border: 0; padding: 1px; /* same size as borderlessless keys */ background: none; } dl.legend dt.more, .keys td.more { outline: 3px solid #0006; outline-offset: -3px; /* inside */ } dl.legend dt.new, .keys td.new { border-style: dashed; } .ext, dl.legend dt.ext, .keys td.ext { opacity: .6; } /* l/r help columns */ .help { display: table; width: 100%; } .help > * { display: table-cell; width: 20%; vertical-align: top; } .left dl.legend { margin-left: 6.4em; /* a bit over 6.2em to allow for borders+padding (border-sizing would work too) */ } .left dl.legend dt { margin-left: -6.4em; /* msie<=6 multiply this by two for some reason */ float: left; clear: left; } .left dl.legend dd { float: left; /* align next to dt (except msie<=7 does just the opposite) */ } .right dl.legend { margin-right: 6.4em; } .right dl.legend dt { margin-right: -6.4em; float: right; clear: right; } .right dl.legend dd { float: right; } .right { text-align: right; } /* help/legend */ dl.legend dt { margin: 0 0 1px; /* distinct keys */ height: auto; /* not key-height */ padding: 2px 0; } dl.legend dd { margin: 3px 0.4em 0; /* align text (add dt border+padding height) */ padding: 0; } dl.legend-options dt { background: #CCC; } ul.legend-set { clear: right; padding-top: 1ex; } ul.legend-set li { margin: 6px 0; /* similar to dl legends */ } .legend { margin-top: 1em; } .legend table { width: 100%; } .legend td { padding: 0 0.2em; } /* images */ figure { margin: 0; position: relative; } figure img { vertical-align: bottom; width: 100%; } @media (min-width: 60em) { figcaption { padding: 0 1em; color: #000; background: rgba(255, 255, 255, .66); position: absolute; right: 0; bottom: 0; max-width: 100%; box-sizing: border-box; } .gallery li.parent:hover > figure > figcaption, .gallery figure:hover > figcaption { /* highlight title of current and parents */ font-size: 175%; right: 50%; bottom: 50%; transform: translate(50%, 50%); margin-left: -60%; /* keep width */ } } /* image gallery */ .gallery { display: grid; grid: auto-flow dense / repeat(auto-fit, minmax(200px, 1fr)); grid-gap: 1px; } .gallery li, .gallery ul { display: contents; } .gallery figure { overflow: hidden; box-sizing: border-box; hyphens: auto; max-width: 900px; } .gallery figcaption > small { display: inline-block; } @media (min-width: 403px) and (min-height: 266px) { /* able to fit 2 cells of 200x133 */ .gallery li.large > figure { grid-row: span 2; grid-column: span 2; } } @media (min-width: 603px) and (min-height: 400px) { /* fit 3 cells of 200x133 */ .gallery > li:first-child > figure, .gallery li.huge > figure { grid-row: span 3; grid-column: span 3; } } .gallery figure, .gallery figcaption { transition: all .5s ease-in; } .gallery figure:hover ~ ul figcaption { /* mark all children */ color: #FFF; background: rgba(0, 0, 0, .5); } .gallery figure[data-sup]:after { position: absolute; right: 0; content: attr(data-sup); color: #FFF; background: #0006; border-radius: 1em; padding: .1ex .4em; margin: .4em; } .gallery .expand > figure[data-sup]:after { content: '+' attr(data-sup); background: #0008; font-size: 150%; border: 2px solid #FFF8; } /* specialised galleries */ body#word { margin: 8px 1px; } table.gallery { grid-auto-flow: row; grid-template-columns: repeat(auto-fit, minmax(2em, max-content)); /* 1fr */ } table.gallery tbody, table.gallery tr { display: contents; } table.gallery tr > :first-child { grid-column: 1; -grid-row: span 6; margin: auto; /* vertical-align: middle */ } table.gallery tr > :nth-child(2) { grid-column: 2; /* in case 1st is missing */ } table.gallery td { border: 0; /* does not collapse */ outline: 1px solid #888; /* over grid-gap */ } /* page-specific */ #browser td > a { text-decoration: none; } #browser td > a:active, #browser td > a:hover { text-decoration: underline; } #browser tr .aside { font-size: 80%; overflow: hidden; height: 0; -webkit-transition: all 1s ease-in; -o-transition: all 1s ease-in; -moz-transition: all 1s ease-in; transition: height 1s ease-in; } #browser tr .aside p { margin: 1ex 0; } #browser tr.target .aside, #browser tr:target .aside { height: auto; } #browser td.X { white-space: nowrap; /* some browsers break on dashes */ } #browser tr:target > td:first-of-type, #browser tr.focus > td:first-of-type { background: inherit; } #browser tr.focus > td { border-bottom-color: #000; } form.aside { position: absolute; top: 3ex; right: 1em; } .family-name { font-variant: small-caps; } #index nav { columns: 3; -moz-columns: 3; -webkit-columns: 3; } nav > .section { break-inside: avoid; -webkit-column-break-inside: avoid; /* webkit */ page-break-inside: avoid; /* moz */ overflow: hidden; /* webkit workaround */ } #index nav a { display: inline-block; margin-top: 1em; } .units tbody tr:hover:not(.race) { background: #EEE; } .unit-gas { color: #040; } .unit-min, .unit-min a:not(:hover) { color: #004; } .unit-supply { color: #080; } .unit-o {color: #C08} /* organic */ .unit-u {color: #44C} /* mechanic */ .unit-p {color: #0A8} /* psionic */ .unit-composed { color: #C88; } .unit-air { color: #08C; } .unit-x {color: #888} .unit-s {color: #890} .unit-m {color: #C70} .unit-l {color: #D22} .unit-h {color: #804} .magic-opt:before, .magic-opt:after { color: #000; } .hurtrel, .units .hurtrel { color: #778; } tbody .unit-shield { color: #64A; } .unit-pdd { color: #A8C; } .unit-splash { color: #4A0; } .hurt-a { color: #036; } .hurt-g { color: #063; } .unit-massive { color: #D88; } .unit-detect::before { color: #0A8; } .unit-jump { color: #8A4; } body .magic-perma { text-decoration-color: #8C0; -moz-text-decoration-color: #8C0; -webkit-text-decoration-color: #8C0; } /* printing hints */ @page { size: landscape; margin: 0; } @media print { ul.legend-set {display: none} /* current options only relevant on dynamic media */ } /* terse optimisation */ @media (min-height: 112ex) and (min-width: 90em) { .keys td { padding: 1ex 0 1ex .1em; width: 7em; } } @media (max-width: 79em) { .keys td { position: relative; /* hides overflow */ width: 4.5em; min-width: 6.5vw; min-width: calc(7.7vw - 8px); } .keys td b, .keys .meta td b, .keys .ctrl td b, .keys .lead td b { /* leading chars always fit */ position: absolute; /* background */ right: 0; /* least overlap in corner */ font-size: 250%; line-height: 2.5ex; opacity: .5; color: #FFF; } .row2 {margin-left: 5.3em} /* 7em / Δtd(6em : 4.5em) */ .row3 {margin-left: 6em} /* 8em / Δtd */ .row4 {margin-left: 7.5em} /* 10em / Δtd */ /* letter scripts columns to rows */ .legend .glyphs:first-child td { display: table-row; vertical-align: baseline; } .legend .glyphs td > table { width: auto; display: inline; margin-left: 1ex; } .legend .glyphs:first-child td td { margin: 2px; display: inline-block; width: auto; } @media (max-width: 61em) { .keys td { width: 3em; height: 6.75ex; /* 3 lines */ font-size: 80%; } .keys td b, .keys .meta td b, .keys .ctrl td b, .keys .lead td b { line-height: 4ex; } .row2 {margin-left: 3.5em} /* 7em / Δtd(6em : 3em) */ .row3 {margin-left: 4em} /* 8em / Δtd */ .row4 {margin-left: 5em} /* 10em / Δtd */ } @media (max-width: 42em) { /* flatten right legend column on mobile */ .help > * { display: table-row; width: auto; } ul.legend-set { clear: left; } .right dl.legend { margin-right: 0; margin-left: 6.4em; } .right dl.legend dt { margin-right: 0; margin-left: -6.4em; float: left; clear: left; } .right dl.legend dd { float: left; } } } /* @media screen and (orientation: portrait) and (max-width: 62em) { body table.keys, #rows { margin-top: 1ex; transform: rotate(90deg); transform-origin: top left; margin-left: 40em; margin-bottom: 30em; font-size: 80%; } } */