@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#252725;background:#eceeea;font-synthesis:none;-webkit-font-smoothing:antialiased;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #e24b40;outline-offset:4px}button{color:inherit;border:0}a{color:inherit;text-decoration:none}header{height:82px;border-bottom:1px solid #d5d7d1;display:flex;align-items:center;padding:0 30px;gap:50px;background:#f4f5f0}.brand{display:flex;align-items:center;gap:12px;font-size:16px;letter-spacing:2px}.brand b{font-weight:400;color:#858780}.red-mark{background:#d72e27;color:white;width:37px;height:37px;display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif;font-style:italic;font-size:27px;font-weight:bold;letter-spacing:-3px;padding-right:3px}.edition{font-size:12px;letter-spacing:1.5px;color:#7b7d77}.edition i{font-style:normal;margin:0 14px;color:#aaa}.quiet{background:transparent;font-size:14px;margin-left:auto}.quiet span{margin-left:15px}main{display:grid;grid-template-columns:282px 1fr;height:calc(100dvh - 82px);min-height:530px}aside{padding:32px 23px 0;display:flex;flex-direction:column;min-height:0;background:#f4f5f0;border-right:1px solid #d5d7d1}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:500}.intro .eyebrow{color:#7c7e76;font-size:10px;letter-spacing:1.2px}h1{font-family:'Manrope',sans-serif;font-size:31px;font-weight:600;letter-spacing:-1.3px;margin:16px 0 0}h1 span{display:block;font-family:'DM Sans',sans-serif;font-size:14px;letter-spacing:0;font-weight:400;margin-top:7px}.intro p{font-size:13px;color:#888a81;margin:18px 0 33px}.parts-heading{display:flex;justify-content:space-between;font-size:13px;font-weight:550;margin-bottom:16px}.parts-heading>span:last-child{font-size:12px;color:#898b82}.search{display:flex;align-items:center;border:1px solid #d9dbd4;border-radius:5px;padding:0 10px;gap:8px;margin-bottom:20px}.search>span{font-size:23px;color:#85887d}.search input{width:100%;background:none;border:0;outline:none;height:39px;font-size:13px;color:#45483f}#library{overflow-y:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#d0d2c8 transparent;padding-right:3px}.group-title{font-size:10px;letter-spacing:1.7px;color:#8b8e82;display:flex;justify-content:space-between;margin:18px 0 8px}.group-title:first-child{margin-top:0}.part{display:flex;width:100%;text-align:left;align-items:center;gap:9px;border-radius:4px;min-height:34px;background:none;font-size:12px;padding:7px 8px;margin:2px 0}.part:hover{background:#e8eae1}.part.selected{background:#e7e9df;color:#a72823}.part .index{font-size:10px;color:#9c9f93;font-variant-numeric:tabular-nums}.part .dot{width:5px;height:5px;background:#929886;border-radius:50%;margin-left:auto;flex-shrink:0}.part.selected .dot{background:#d2312d}.sidebar-foot{padding:22px 0;font-size:11px;line-height:1.8;border-top:1px solid #dcdfd4;margin-top:20px}.tiny-cross{margin-right:6px}.muted{color:#8d9084;margin-left:15px}.workspace{position:relative;overflow:hidden;background:#191b1b;color:#e8e9df}.stage-top{position:absolute;z-index:2;top:26px;left:30px;right:26px;display:flex;align-items:center;justify-content:space-between}.stage-top>span{font-size:10px;letter-spacing:1.7px;color:#868a83}.stage-top b{font-size:11px;display:inline-block;letter-spacing:0;font-weight:400;border:1px solid #53574f;border-radius:50%;width:26px;height:26px;text-align:center;padding-top:5px;margin-right:10px;color:#c9cdc1}.stage-actions{display:flex;gap:5px}.stage-actions button{background:#242727;border:1px solid #393d39;padding:9px 12px;border-radius:5px;font-size:13px;color:#b0b6ac}.stage-actions button[aria-pressed=true]{background:#525947;color:white}.stage-title{position:absolute;top:107px;left:32px;pointer-events:none}.stage-title .eyebrow{color:#7f8778;font-size:10px}h2{font-family:'Manrope',sans-serif;font-size:30px;font-weight:400;letter-spacing:-1.1px;margin:11px 0}.stage-title h2{color:#dce0d2;font-size:28px}.view-picker{display:flex;position:absolute;left:32px;top:202px;border:1px solid #3c4138;border-radius:6px;overflow:hidden}.view-picker button{font-size:11px;padding:8px 12px;background:#232724;color:#939b89}.view-picker button.active{background:#454d3d;color:#e8eddf}#scene{position:absolute;inset:0}#scene canvas{display:block;touch-action:none;cursor:grab}#scene canvas:active{cursor:grabbing}#loading{position:absolute;top:50%;width:100%;text-align:center;font-size:14px;color:#a4ac99}.dock{position:absolute;width:344px;bottom:66px;left:50%;transform:translateX(-50%);background:#292c28ed;border:1px solid #4b5144;border-radius:10px;padding:18px 21px;box-shadow:0 12px 45px #0003;backdrop-filter:blur(18px)}.toggle-row{display:flex;align-items:center;justify-content:space-between}.toggle-row .eyebrow{display:block;color:#929b86;font-size:9px;letter-spacing:1.5px;margin-bottom:5px}.toggle-row b{font-size:15px;font-weight:500}#explode{width:44px;height:25px;border-radius:20px;padding:3px;background:#63685c;transition:background .2s}#explode span{display:block;width:19px;height:19px;border-radius:50%;background:#e5e8dc;transition:transform .2s}#explode[aria-checked=true]{background:#d2382f}#explode[aria-checked=true] span{transform:translateX(19px)}.range-row{display:flex;align-items:center;gap:12px;margin-top:20px;font-size:10px;color:#aab19f}.range-row input{width:100%;accent-color:#d5ddc3;cursor:pointer;height:16px;min-width:0}.range-row output{width:30px;flex-shrink:0;font-size:11px;font-variant-numeric:tabular-nums}.stage-footer{position:absolute;bottom:25px;left:32px;right:30px;display:flex;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:1.1px;color:#737c69;pointer-events:none}.stage-footer i{font-style:normal;padding:0 8px}#inspector{position:absolute;right:24px;top:95px;width:280px;padding:25px;background:#f2f3ecf5;color:#30372a;border-radius:8px;box-shadow:0 12px 40px #0003;backdrop-filter:blur(18px)}#close-inspector{position:absolute;right:9px;top:7px;background:none;font-size:25px;color:#8e9584;width:32px;height:32px}#detail-category{color:#8a917e;font-size:10px;margin-top:5px}#detail-name{font-size:23px;letter-spacing:-.6px;font-weight:500;margin:12px 0}#detail-description{font-size:14px;line-height:1.6;color:#747d68}#detail-fact{border-top:1px solid #d5dacb;padding:14px 0;font-size:12px;color:#4e5a41}#detail-source{font-size:12px;color:#a8392b}#tooltip{position:absolute;background:#edf1e1;color:#2c3523;padding:8px 12px;border-radius:4px;font-size:12px;pointer-events:none;z-index:5}dialog{width:560px;max-width:calc(100% - 32px);max-height:85dvh;border:0;background:#f2f3ec;border-radius:12px;color:#353b2e;padding:38px}dialog::backdrop{background:#090d09b8;backdrop-filter:blur(8px)}#sources-close{position:absolute;top:12px;right:12px;background:none;font-size:28px;width:36px;height:36px}dialog .eyebrow{color:#868f79}dialog h2{font-size:34px;margin-top:18px}dialog p{font-size:14px;line-height:1.7;color:#747d67}.source-links{margin-top:24px}.source-links a{display:flex;justify-content:space-between;gap:10px;font-size:12px;border-top:1px solid #d5dbcb;padding:16px 0}.source-links a span{color:#939d83;font-size:10px;white-space:nowrap}dialog .small{font-size:12px}.mobile-only{display:none}#library .empty{font-size:14px;color:#747d67;padding:10px}
@media(min-width:1600px){main{grid-template-columns:310px 1fr}aside{padding:40px 28px 0}.part{min-height:39px;font-size:13px}.stage-title{top:115px}.stage-title h2{font-size:36px}}
@media(max-width:1050px){main{grid-template-columns:244px 1fr}aside{padding-left:18px;padding-right:18px}.edition{display:none}.stage-title h2{font-size:23px}.stage-footer>span:first-child{max-width:230px;line-height:1.7}.stage-actions button span{display:none}#inspector{width:250px;top:85px}.view-picker{top:190px}}
@media(max-width:720px){header{height:68px;padding:0 18px;gap:10px}.brand{font-size:13px;gap:9px;letter-spacing:1px}.red-mark{width:32px;height:32px;font-size:23px}.quiet{font-size:11px}.quiet span{margin-left:5px}main{height:calc(100dvh - 68px);min-height:480px;display:block}.workspace{height:100%}aside{display:none;position:absolute;z-index:10;left:0;top:68px;width:270px;bottom:0;box-shadow:8px 0 35px #0006}aside.open{display:flex}.mobile-only{display:inline-block}.stage-top{left:18px;right:14px;top:18px}.stage-top>span{font-size:8px;letter-spacing:1px}.stage-top b{margin-right:5px}.stage-actions button{font-size:12px;padding:8px 10px;min-height:40px}.stage-title{left:20px;top:83px}.stage-title h2{font-size:24px}.view-picker{left:20px;top:161px}.view-picker button{min-height:38px;font-size:12px}.dock{width:calc(100% - 36px);max-width:344px;bottom:52px;padding:16px 19px}.stage-footer{left:20px;right:20px;bottom:15px;font-size:8px;letter-spacing:.5px}.stage-footer>span:first-child{max-width:190px}.stage-footer i{padding:0 3px}#inspector{right:14px;left:14px;width:auto;top:auto;bottom:191px;padding:17px 21px;max-height:35%;overflow:auto}#detail-name{font-size:19px;margin:8px 0}#detail-description{font-size:13px;line-height:1.45;margin:8px 0}#detail-fact{padding:8px 0}.intro p{margin-bottom:20px}#explode{width:50px;height:29px}#explode span{width:23px;height:23px}#explode[aria-checked=true] span{transform:translateX(21px)}.range-row{margin-top:12px}.range-row input{height:24px}.part{min-height:40px}dialog{padding:30px 24px}.source-links a{font-size:12px}.stage-title .eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Readable component navigation and source descriptions. */
.part{font-size:14px;min-height:38px}.group-title{font-size:11px}.search input{font-size:14px}#detail-description{font-size:16px}.source-links a{font-size:14px}dialog p{font-size:16px}.stage-top>span{color:#b3b8aa}.stage-footer{color:#9da691}@media(max-width:720px){.part{min-height:42px}#detail-description{font-size:14px}.source-links a{font-size:13px}}

/* EFFOMA identity and language controls */
header{gap:clamp(18px,4vw,50px)}
.brand{flex:none;gap:0;letter-spacing:0}
.brand img{display:block;width:184px;height:auto;max-height:32px;object-fit:contain}
.header-actions{display:flex;align-items:center;gap:18px;margin-left:auto}
.language-switch{display:flex;align-items:center;padding:3px;border:1px solid #d5d7d1;border-radius:7px;background:#e9ebe5}
.language-switch button{min-width:39px;min-height:30px;padding:0 9px;border-radius:5px;background:transparent;color:#6c7068;font-size:11px;font-weight:600;letter-spacing:.04em}
.language-switch button[aria-pressed=true]{background:#292c28;color:#f3f4ee;box-shadow:0 1px 3px #0002}
.header-actions .quiet{margin-left:0;white-space:nowrap}
.part>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.range-row>span{flex:none;white-space:nowrap}
@media(max-width:1050px){header{gap:18px}.header-actions{gap:12px}}
@media(max-width:720px){
  header{height:64px;padding:0 12px;gap:8px;justify-content:space-between}
  .brand{min-width:0}
  .brand img{width:clamp(98px,35vw,142px);max-height:25px}
  .header-actions{gap:6px;margin-left:0;flex:none}
  .language-switch{padding:2px}
  .language-switch button{min-width:32px;min-height:31px;padding:0 7px;font-size:10px}
  .header-actions .quiet{font-size:11px;padding:7px 4px}
  main{height:calc(100dvh - 64px);min-height:480px}
  aside{top:64px}
  .stage-actions{gap:4px}
  .stage-actions button{padding:7px 8px;min-height:38px}
  .view-picker button{padding:7px 10px}
  .dock{width:calc(100% - 28px);bottom:50px;padding:14px 16px}
  .stage-footer{bottom:12px}
  #inspector{bottom:180px}
}
@media(max-width:360px){
  header{padding:0 9px}
  .brand img{width:clamp(92px,33vw,116px)}
  .header-actions .quiet{font-size:10px}
  .language-switch button{min-width:29px;padding:0 6px}
  .stage-title h2{font-size:21px}
  .stage-actions button{padding:6px 7px}
}
@media(max-width:360px) and (max-height:640px){
  .stage-title{top:69px}
  .view-picker{top:145px}
  .dock{bottom:42px;padding:12px 14px}
  .stage-footer{bottom:8px;font-size:7px}
  #inspector{bottom:160px}
}
