@font-face{font-family:Sora;src:url("fonts/sora.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Crimson Pro";src:url("fonts/crimsonpro.woff2") format("woff2");font-weight:200 900;font-display:swap}
@font-face{font-family:"Crimson Pro";src:url("fonts/crimsonpro-italic.woff2") format("woff2");font-weight:200 900;font-style:italic;font-display:swap}
:root{color:#16233A;background:#FFFFFF;font-family:"Crimson Pro",Georgia,serif;font-size:20px;line-height:1.6}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background-image:linear-gradient(#EEF2F7 1px,transparent 1px),linear-gradient(90deg,#EEF2F7 1px,transparent 1px);background-size:24px 24px}
header,main,footer{max-width:70ch;margin-left:max(24px,calc((100vw - 1100px)/2));margin-right:24px}header{padding:36px 0 22px;border-bottom:1px solid #D5DCE6}main{padding:28px 0 48px}footer{border-top:1px solid #D5DCE6;padding:24px 0 36px;color:#4E5B70;font-size:.8rem}
a{color:#1E7A46;text-underline-offset:4px;overflow-wrap:anywhere}a:focus-visible{outline:2px solid #1E7A46;outline-offset:2px}.name{font:600 1.6rem Sora,sans-serif;color:#16233A;text-decoration:none}.role{display:block;color:#4E5B70;font-style:italic}nav{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:22px;font:400 .68rem/1.8 Sora,sans-serif}nav a{text-decoration:none;color:#4E5B70}nav a[aria-current]{color:#1E7A46;text-decoration:underline;text-decoration-thickness:2px}
h1,h2,h3,dt,.label{font-family:Sora,sans-serif}h1{font-size:1.7rem;line-height:1.3;font-weight:600;margin:0 0 28px}h2{font-size:1.12rem;line-height:1.5;font-weight:600;margin:42px 0 18px}h3{font-size:.92rem;line-height:1.5;font-weight:600;margin:24px 0 10px}p{margin:12px 0 20px}.lead{font-size:1.6rem;line-height:1.4;max-width:34ch}.formula{font-family:Sora,sans-serif;font-size:.82em;font-variant-numeric:tabular-nums;color:#1E7A46}.suit{display:inline-block;width:1.7em;color:#16233A}.red{color:#B3261E}.figures{display:flex;gap:34px;border-top:1px solid #D5DCE6;padding-top:22px;margin-bottom:32px}.figures>div{flex:1;min-width:0}.figure{font:600 2.6rem/1.2 Sora,sans-serif;color:#1E7A46;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.home-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.figure .formula{font-size:inherit}.figure-label{font-size:.82rem;line-height:1.4;color:#4E5B70;margin-top:10px}.position{font:400 .68rem/1.7 Sora,sans-serif;color:#4E5B70}.label{font-size:.63rem;font-weight:600;margin-right:.5em}.disclosure{border-left:3px solid #B3261E;padding-left:20px;font-style:italic}dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px}dt{font-size:.8rem;line-height:1.6;font-weight:600}dd{margin:0;min-width:0}.patent{display:block;white-space:nowrap;color:#1E7A46}li{margin-bottom:14px}section{margin-bottom:28px}.small{font-size:.8rem;color:#4E5B70}
.cover{width:260px;max-width:100%;min-height:380px;background-color:#1E7A46;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:24px 24px;color:#FFFFFF;padding:30px 22px;outline:1px solid white;outline-offset:-12px;display:flex;flex-direction:column;text-align:center;margin:0 auto 28px}.cover-title{font:700 1.15rem/1.5 Sora,sans-serif;letter-spacing:.07em}.subtitle{font-size:1.03rem;line-height:1.3;font-style:italic}.cover-bottom{margin-top:auto;font-size:.7rem}.cover-author{font:500 .65rem/1.5 Sora,sans-serif;font-variant:small-caps;margin:6px 0}.cover .formula{color:white}.ornaments{font-size:1rem}.table-scroll{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:.85rem}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #D5DCE6}thead{font:500 .65rem Sora,sans-serif}tbody th{font-weight:400}.ko,.hilo{white-space:nowrap;font-family:Sora,sans-serif;font-variant-numeric:tabular-nums}.ko,.ko .formula{color:#B3261E}.hilo,.hilo .formula{color:#16233A}.review{margin:28px 0}blockquote{margin:0 0 12px;padding-left:20px;border-left:1px solid #1E7A46;font-size:1.3rem;font-style:italic;line-height:1.5}.review figcaption{font-size:.85rem;color:#4E5B70}.portrait{float:right;max-width:200px;margin:0 0 20px 20px}.portrait img{width:100%;height:auto}.portrait figcaption,.sheet-frame figcaption{font-size:.7rem;color:#4E5B70;margin-top:6px}.photo-credit{font-family:Sora,sans-serif;font-size:.85em}.opening{display:flex;align-items:center;gap:40px;margin-bottom:12px}.opening .lead{flex:1;min-width:0;margin:0}.home-portrait{float:none;flex:0 0 300px;max-width:300px;margin:0}.home-portrait img{border:1px solid #D5DCE6;padding:6px;background:#FFFFFF}.contact-sheet{display:flex;flex-wrap:wrap;align-items:flex-start;gap:28px;border-top:1px solid #D5DCE6;padding-top:22px}.sheet-frame{margin:0;display:table}.sheet-frame figcaption{display:table-caption;caption-side:bottom}.sheet-frame figcaption span{display:block}.sheet-frame img{display:block;height:auto;width:auto;max-height:300px;object-fit:contain;border:1px solid #D5DCE6;padding:6px;background:#FFFFFF}footer{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}.profiles{display:flex;flex-wrap:wrap;gap:8px 18px}.profiles a{color:#4E5B70}.contributor{flex-basis:100%;padding-top:10px;border-top:1px dotted #D5DCE6}.contributor a{color:#1E7A46;font-weight:600}
@media(min-width:900px){.book-page{max-width:80ch}.book-opening{display:flex;gap:36px;align-items:flex-start}.cover{flex-shrink:0;margin:0}.credits{min-width:0;flex:1}.credits h2{margin-top:0}.credits dl{grid-template-columns:4rem minmax(0,1fr)}}
@media(max-width:639px){:root{font-size:19px}header,main,footer{margin-left:20px;margin-right:20px}header{padding-top:24px}h1{font-size:1.45rem}.lead{font-size:1.4rem}.figures{flex-wrap:wrap;gap:24px}.figures>div{flex:0 0 calc(50% - 12px)}.figure{font-size:2.3rem}dl{grid-template-columns:minmax(0,1fr);gap:8px}dd{margin-bottom:24px}nav{gap:10px 18px}.portrait{float:none;margin-left:0}.opening{flex-direction:column-reverse;align-items:flex-start;gap:22px}.home-portrait{flex:none;width:100%;max-width:400px}.contact-sheet{gap:16px}.sheet-frame img{max-height:200px}}
