/*
 * NANLING ATELIER / Experience System 2026
 * A non-destructive visual layer above the original application styles.
 * Design tokens: ink, limestone, bamboo, brass.  No external assets or fonts.
 */
:root{
  --paper:#f5f2ea;--archive-paper:#f5f2ea;--archive-ink:#21382d;
  --archive-muted:#69746a;--archive-line:#d7d6c9;--archive-accent:#a05f36;
  --ink:#21382d;--secondary:#69746a;--rule:#d7d6c9;--accent:#a05f36;
  --atelier-forest:#0b211a;--atelier-gold:#d9bd83;--atelier-light:#f5f2ea;
  --atelier-sage:#9dad97;--atelier-ease:cubic-bezier(.22,1,.36,1);
  --atelier-sans:'PingFang SC','Hiragino Sans GB','Noto Sans CJK SC','Microsoft YaHei',sans-serif;
  --atelier-serif:'Iowan Old Style','Songti SC','Noto Serif CJK SC','STSong',serif;
}
html{scroll-padding-top:108px}
body{background:var(--paper);color:var(--ink);font-family:var(--atelier-sans);letter-spacing:.005em}
::selection{background:#b8c4aa;color:#172c21}
:focus-visible{outline:2px solid #bd8154!important;outline-offset:4px}
button,a,select,input,textarea{transition-property:color,background-color,border-color,box-shadow;transition-duration:.24s;transition-timing-function:ease}
button:not(:disabled):active{translate:0 1px}
button:disabled{opacity:.45}

/* Header: a restrained editorial masthead, not a dashboard navbar. */
body:not(.immersive-map) .site-header{height:88px;position:sticky;top:0;z-index:25;padding:0 clamp(24px,4.5vw,84px);background:rgba(245,242,234,.96);border-bottom:1px solid var(--rule);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header .brand{gap:13px;letter-spacing:.08em;font-family:var(--atelier-serif);font-size:23px;white-space:nowrap}
.site-header .brand .seal{width:40px;height:44px;transform:none;border:1px solid currentColor;border-radius:0;font-size:22px;position:relative}
.site-header .brand .seal:after{content:'';position:absolute;inset:4px;border:1px solid currentColor;opacity:.32;pointer-events:none}
.site-header .brand small{font:9px/1.5 var(--atelier-sans);font-weight:500;letter-spacing:.19em;opacity:.66;margin-top:5px}
.site-header nav{gap:clamp(16px,2.2vw,39px)}
.site-header nav a{font-size:12px;font-weight:550;letter-spacing:.06em;align-items:flex-start;white-space:nowrap;transition:color .2s ease}
.site-header nav a small{font-size:9px;letter-spacing:.11em;color:#9a9e90;line-height:1.9;margin-top:5px}
body:not(.immersive-map) .site-header nav a.active:after{width:100%;height:2px;bottom:0;left:0;background:var(--accent)}
.site-header nav a:hover{color:var(--accent)}
.site-header .compare-nav{font-size:12px;font-weight:600;letter-spacing:.08em;padding-left:20px;border-color:var(--rule)}
.site-header .compare-nav span{border-radius:50%;width:23px;height:23px;display:inline-grid;place-items:center;padding:0;font-size:11px}

/* Full-bleed atlas is the product's signature. */
.immersive-map{background:var(--atelier-forest)}
.immersive-map .site-header{height:92px;min-height:0;padding:0 clamp(25px,4.1vw,72px);background:linear-gradient(180deg,rgba(6,22,16,.94),rgba(6,22,16,.55) 74%,transparent);color:#f1ecda;backdrop-filter:none;border:0}
.immersive-map .site-header:after{content:'';position:absolute;left:4.1vw;right:4.1vw;bottom:11px;height:1px;background:#e2e4cf29;pointer-events:none}
.immersive-map .site-header .brand{font-size:21px}
.immersive-map .site-header .brand .seal{width:38px;height:41px;color:var(--atelier-gold)}
.immersive-map .site-header nav a{color:#d9e0ccbd;font-size:12px;letter-spacing:.09em}
.immersive-map .site-header nav a:is(:hover,.active){color:#fdf4d9}
.immersive-map .site-header nav a.active:after{background:var(--atelier-gold);height:1px;width:100%;bottom:12px}
.immersive-map .site-header .compare-nav{color:#e7e3d0;border-color:#c8cfb833}
.immersive-map .site-header .compare-nav span{border:1px solid #d6c49b77;color:#eadabd;background:#cab99019}
.immersive-map .atlas-layout{min-height:610px;height:100svh}
.immersive-map .map-surface{background:radial-gradient(ellipse 59% 52% at 48% 48%,#30503a 0%,#193729 43%,#091f18 91%)}
.immersive-map .map-surface:after{background:radial-gradient(ellipse 68% 69% at 50% 47%,transparent 29%,#0b23184a 71%,#04120de8 100%),linear-gradient(90deg,#05150f99,transparent 27%,transparent 72%,#05160e99),linear-gradient(0deg,#06150dec,transparent 21%);pointer-events:none}
.immersive-map .field-veil{background:radial-gradient(ellipse at 50% 43%,#0d2e1aa5 0%,#03150fdc 76%)}
.immersive-map .field-veil:before,.immersive-map .field-veil:after{opacity:.42;filter:none}
.immersive-map .geo-province{stroke:#91a5822d;stroke-width:.7;transition:fill .28s ease,stroke .28s ease}
.immersive-map .geo-region:hover .geo-province.in-scope{fill:hsl(var(--province-tint)/.57)}
.immersive-map .geo-label{fill:#d6dec0;opacity:.51;letter-spacing:.13em}
.immersive-map .nanling-region text{fill:#c9d5b6;font-size:24px;letter-spacing:7px;stroke:#244130}
.immersive-map .nanling-region .nanling-subtitle{fill:#dfc99a;letter-spacing:.22em}
.immersive-map .map-point .dot{fill:#193426;stroke:#e9d5a2;stroke-width:2.3;transition:fill .25s ease,stroke .25s ease,r .25s ease}
.immersive-map .map-point.visited .dot{fill:#e6ce93;stroke:#18352a}
.immersive-map .map-point .halo{stroke:#e4d4a5;opacity:.57;stroke-width:1.15;transition:opacity .3s ease,r .3s ease}
.immersive-map .map-point:is(:hover,:focus-visible,.selected) .halo{stroke:#ffe8b0;opacity:1}
.immersive-map .map-point:hover .dot{fill:#e9d09a;stroke:#f6ecd0}
.immersive-map .map-point text{fill:#f0ecd9;stroke:#12281e;stroke-width:3px;letter-spacing:.035em;font-size:12px;opacity:.94;transition:fill .2s ease,opacity .2s ease}
.immersive-map .map-point:is(:hover,:focus-visible,.selected) text{fill:#fff1ca;opacity:1}
.immersive-map .selection-open .geography{opacity:.22}
.immersive-map .selection-open .map-point:not(.selected){opacity:.28}
.immersive-map .selection-open .map-point.selected{opacity:1}
.immersive-map .selection-open .field-satellite circle{fill:#193627;stroke:#f5e3b8}
.immersive-map .selection-open .field-satellite:is(:hover,:focus-visible) circle{fill:#41634d}

/* Entry: cinematic title and fine typographic framing. */
.immersive-map .field-entry{z-index:11;isolation:isolate}
.immersive-map .field-entry:before{content:'';position:absolute;width:min(660px,76vw);height:min(660px,76vw);left:50%;top:49%;transform:translate(-50%,-50%);border:1px solid #d8d7b525;border-radius:50%;background:radial-gradient(circle,#adb88705 0%,transparent 68%);pointer-events:none}
.immersive-map .field-entry:after{content:'';position:absolute;width:min(560px,66vw);height:min(560px,66vw);left:50%;top:49%;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed #d5cfa912;pointer-events:none}
.immersive-map .field-entry>span{top:calc(50% - 184px);font-size:10px;font-weight:600;letter-spacing:.3em;color:#e4dab1}
.immersive-map .field-entry h1{top:calc(50% - 141px);font:400 24px/1.5 var(--atelier-serif);letter-spacing:.2em;color:#efe9ce}
.immersive-map .field-entry h1 em{display:inline-block;margin-top:4px;font:400 11px/1.5 var(--atelier-sans);letter-spacing:.38em;color:#c1c7ac}
.immersive-map .field-entry .field-begin{top:49%;min-height:108px;padding:15px 18px;font:600 clamp(52px,7.6vw,108px)/1.2 var(--atelier-sans);letter-spacing:.12em;color:#f5f1dc;text-shadow:0 6px 45px #051b1177;white-space:nowrap;transition:color .32s ease,letter-spacing .55s var(--atelier-ease);z-index:1}
.immersive-map .field-entry .field-begin:hover{color:#fff9de;letter-spacing:.15em;text-shadow:0 0 36px #b9c68a40}
.immersive-map .field-entry .field-begin:focus-visible{outline-color:#f2deaf!important;outline-offset:12px}
.immersive-map .field-entry p{top:calc(50% + 104px);font-size:13px;line-height:2.25;letter-spacing:.12em;color:#dde2cb}
.immersive-map .field-entry .field-begin::selection{background:#d9bd83;color:#0b211a}
.atelier-prelude-line{position:absolute;left:50%;top:calc(50% + 86px);width:65px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#e7d7ae,transparent);pointer-events:none}
.atelier-entry-mark{position:absolute;left:50%;top:calc(50% - 220px);transform:translateX(-50%);color:#d8c99b;font:15px var(--atelier-serif);opacity:.9;pointer-events:none}
.atelier-entry-mark:before,.atelier-entry-mark:after{content:'';position:absolute;top:50%;width:43px;height:1px;background:#e1cf9e59}
.atelier-entry-mark:before{right:28px}.atelier-entry-mark:after{left:28px}
.atelier-landing-edition{position:absolute;bottom:46px;left:clamp(24px,4.1vw,72px);text-align:left;color:#e4e4c2a8;font:10px/1.8 var(--atelier-sans);letter-spacing:.14em;pointer-events:none}
.atelier-landing-edition strong{display:block;color:#e8d6a3;font-size:11px;letter-spacing:.23em;font-weight:500}
.atelier-landing-count{position:absolute;bottom:46px;right:clamp(24px,4.1vw,72px);font:10px/1.75 var(--atelier-sans);letter-spacing:.12em;color:#c7cdb7a8;text-align:right;pointer-events:none}
.atelier-landing-count strong{display:block;font:500 17px/1.5 Georgia,serif;letter-spacing:.08em;color:#ebdfba}
.immersive-map .has-entered .atelier-landing-edition,.immersive-map .has-entered .atelier-landing-count{opacity:0;visibility:hidden;transition:opacity .55s ease,visibility .55s}

/* In-map HUD: understated controls and an identifiable journey state. */
.atelier-map-index{position:absolute;top:125px;left:clamp(25px,4.1vw,72px);z-index:4;pointer-events:none;color:#e9ead8;opacity:0;transform:translateY(12px);transition:opacity .8s .3s,transform .8s var(--atelier-ease) .3s}
.has-entered .atelier-map-index{opacity:1;transform:none}
.atelier-map-index .atlas-issue{display:flex;align-items:center;gap:12px;font:10px var(--atelier-sans);letter-spacing:.21em;color:#d7c492}
.atelier-map-index .atlas-issue:before{content:'';height:1px;width:29px;background:#d6c390}
.atelier-map-index h2{margin-top:15px;font:400 clamp(22px,2.35vw,34px)/1.45 var(--atelier-serif);letter-spacing:.12em;color:#ede9d4}
.atelier-map-index p{font-size:11px;letter-spacing:.07em;color:#c5cfbc;line-height:1.9;margin:8px 0}
.immersive-map .field-tools{left:clamp(25px,4.1vw,72px);bottom:99px;gap:7px;background:#071f18b8;border:1px solid #c1cba12e;padding:5px 9px;box-shadow:0 6px 35px #02110b44;backdrop-filter:blur(12px);border-radius:3px}
.immersive-map .field-tools button{min-height:42px;padding:8px 14px;border:0;color:#ebeee0;font-size:12px;font-weight:550;letter-spacing:.06em;border-radius:2px}
.immersive-map .field-tools button:hover,.immersive-map .field-tools button[aria-expanded=true]{background:#cbd9b51c;color:#f6e6b9;border:0}
.immersive-map .field-tools button span{margin-left:9px;color:#e5d2a4}
.immersive-map .field-regions{bottom:39px;background:#061b15a1;border:1px solid #d8d6b724;border-radius:3px;padding:0 20px;backdrop-filter:blur(10px)}
.immersive-map .field-regions .province-list{gap:clamp(12px,1.8vw,27px)}
.immersive-map .field-regions .province-list button{font-size:12px;min-height:44px;padding:8px 0;color:#c5d0ba}
.immersive-map .field-regions .province-list button.active{color:#ffe9b9}
.immersive-map .field-regions .province-list button.active:after{width:100%;height:1px;left:0;bottom:4px;border-radius:0;background:#e5c990}
.immersive-map .field-regions .province-list button:hover{color:#fff8df}
.immersive-map .field-whisper{bottom:52px;letter-spacing:.08em;font-size:10px;left:auto;right:clamp(24px,4.1vw,72px);transform:none;color:#d1d6c0a5}
.immersive-map .field-surface .map-bottom{right:clamp(25px,4.1vw,72px);bottom:98px}
.immersive-map .map-controls{display:flex;gap:4px;padding:5px;border:1px solid #c8d1b532;background:#061c15bb;backdrop-filter:blur(8px);border-radius:3px}
.immersive-map .map-controls button,.immersive-map .map-controls button:last-child{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;color:#f0f0dc;border:0;background:transparent;font-size:17px;border-radius:2px}
.immersive-map .map-controls button:last-child{font-size:11px;width:49px}
.immersive-map .map-controls button:hover{background:#b1c4a327;color:#f8e3ac}
.immersive-map .field-surface .compass{right:clamp(35px,4.8vw,83px);top:137px;color:#e8dcad;opacity:.85}
.immersive-map .compass:after{font-size:26px}
.immersive-map .field-surface .map-attribution{left:clamp(25px,4.1vw,72px);font-size:9px;color:#d4d5bc;opacity:.64;bottom:18px}
.immersive-map .field-surface .map-art-toggle{right:clamp(25px,4.1vw,72px);bottom:48px;color:#d5dabd;font-size:10px}
.immersive-map .exploration-note{top:255px;left:clamp(25px,4.1vw,72px);gap:4px;background:linear-gradient(90deg,#0b281bd6,transparent);border-left:1px solid #cab888;padding:10px 28px 12px 14px}
.immersive-map .exploration-progress{font:500 13px/1.6 var(--atelier-sans);color:#f1e1b6}
.immersive-map .exploration-note small{font-size:11px;color:#d6ddc9}
.immersive-map .map-surface .field-panel{top:114px;bottom:126px;right:clamp(20px,3vw,52px);width:min(370px,38vw);padding:29px 28px 20px;background:#f7f4ec;box-shadow:0 30px 90px #03150ca6;border:1px solid #d6d5c7;border-radius:3px}
.field-panel .field-kicker{font-size:10px;color:#9d673f;letter-spacing:.16em;font-weight:600;padding-bottom:17px;border-bottom:1px solid #d5d5ca}
.field-panel h3{font:400 28px/1.5 var(--atelier-serif);color:#1b3429;letter-spacing:.06em;margin-top:14px}
.field-panel .field-description{font-size:13px;line-height:2;color:#5d6d61;margin-top:10px}
.field-panel .field-tabs{border-bottom:1px solid #d9d8cd;gap:19px}
.field-panel .field-tabs button{font-size:12px;letter-spacing:.02em}
.field-panel .field-relations,.field-panel .related-places{border-color:#d5d5c9}
.field-panel .field-object{border-color:#deddd1}
.field-panel .field-object>button{font-size:17px;color:#294434}
.field-panel button[data-field-detail]:hover,.field-panel .related-places button:hover{color:#a36339}
.field-panel .field-dismiss{top:16px;right:13px;color:#536d56;font-size:23px;border-radius:50%}
.immersive-map .atlas-sidebar{top:114px;left:clamp(20px,3vw,52px);bottom:126px;width:min(345px,34vw);border:1px solid #d7d7c9;background:#f7f4ec;box-shadow:0 25px 80px #00140c88;border-radius:3px;padding:25px}
.immersive-map .atlas-sidebar .province-list button.active{color:#a36339}

/* Archive typography and spacing: headings become memorable, content remains readable. */
body:not(.immersive-map) .page{max-width:1540px;padding:35px clamp(26px,6vw,110px) 100px;animation:atelier-page-in .7s var(--atelier-ease) both}
@keyframes atelier-page-in{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:none}}
body:not(.immersive-map) .atlas-return,.reading-chapter .atlas-return{font-size:11px;letter-spacing:.12em;font-weight:600;color:#677769;border:0;padding:11px 0;margin-bottom:30px}
.atlas-return:hover{color:#a46337!important}
.page .page-heading{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;gap:70px;padding:18px 0 42px;margin-bottom:28px;border-bottom:1px solid #aab3a38a}
.page .page-heading:before{content:'';position:absolute;bottom:-1px;left:0;width:75px;height:2px;background:#b26d41}
.page .page-heading .eyebrow{font-size:11px;font-family:var(--atelier-sans);font-weight:650;letter-spacing:.22em;color:#a2603c;margin-bottom:16px}
.page .page-heading h1{font:400 clamp(44px,5.3vw,82px)/1.14 var(--atelier-serif);letter-spacing:.07em;color:#1e382d;text-wrap:balance;margin:0}
.page .page-heading p{color:#657365;font-size:14px;max-width:410px;line-height:2.1;margin:0 0 4px;letter-spacing:.02em}
.atelier-page-overline{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #d9d9cd;color:#939987;font:10px/1.8 var(--atelier-sans);letter-spacing:.19em;padding-top:13px;margin:0 0 48px;text-transform:uppercase}
.atelier-page-overline span:last-child{color:#a46843}
.page .filters{padding:18px 0 22px;border-top:1px solid #d8d8cc;border-bottom:1px solid #d8d8cc;margin-bottom:32px;gap:12px}
.page .filters input,.page .filters select,.page .field select,.page textarea{background:#fdfbf5;border:1px solid #cbcdbd;border-radius:2px;min-height:47px;padding:0 15px;color:#273f31;font-size:13px}
.page .filters input{min-width:200px}
.page .filters input:focus,.page .filters select:focus,.page textarea:focus{border-color:#9b744f;box-shadow:0 0 0 3px #b28b6622;outline:0!important}
.page .filters label{color:#607064;font-size:12px;font-weight:600}
.page .result-count{font-size:12px;letter-spacing:.07em;color:#667469}
.page .tabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:23px;border-bottom:1px solid #d6d8ca}
.page .tabs button{font-size:13px;min-height:48px;padding:11px 18px;border-bottom:2px solid transparent;color:#69766b}
.page .tabs button:hover{color:#a36441}
.page .tabs button.active{border-color:#a36441;color:#253f31;font-weight:650}
.page .primary{background:#28483a;border:1px solid #28483a;color:#fff9e9;border-radius:2px;min-height:46px;letter-spacing:.045em;font-weight:600}
.page .primary:hover{background:#172f23;border-color:#172f23;box-shadow:0 8px 24px #223c2a28}
.page .secondary{background:transparent;border:1px solid #a5aea1;border-radius:2px;min-height:46px}
.page .secondary:hover{background:#e9e9de;border-color:#7c897a}
.page .text-button{color:#356248;border-bottom-color:#859f8d;font-weight:600;font-size:12px;letter-spacing:.05em}
.page .text-button:hover{color:#a05f36;border-bottom-color:#a05f36}
.page .source-footer{margin-top:100px;padding-top:23px;border-top:1px solid #cbd0c2;font-size:11px;color:#849083;line-height:2;letter-spacing:.02em}
.page .source-footer a{color:#566d59}
.page .source-footer a:hover{color:#a05f36}

/* Collection: images are artworks, not thumbnails in boxes. */
.page .works-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 29px;align-items:start}
.page .work-card{position:relative;overflow:hidden;background:#fbf9f3;border:1px solid #dddccf;padding:0 0 22px;transition:transform .48s var(--atelier-ease),box-shadow .48s var(--atelier-ease),border-color .25s ease;will-change:auto}
.page .work-card:before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:#a87449;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--atelier-ease);z-index:2}
.page .work-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px #2940331b;border-color:#bebeb0}
.page .work-card:hover:before{transform:scaleX(1)}
.page .work-card .work-image{height:clamp(215px,25vw,340px);margin:0;background:#e7e4d9;position:relative;overflow:hidden}
.page .work-card .work-image:after{content:'VIEW ARCHIVE  ↗';font:10px var(--atelier-sans);letter-spacing:.14em;position:absolute;right:15px;bottom:14px;padding:10px 12px;background:#244136eb;color:#fff6df;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}
.page .work-card:hover .work-image:after{opacity:1;transform:none}
.page .work-card .work-image img{object-fit:contain;mix-blend-mode:multiply;transition:transform .8s var(--atelier-ease)}
.page .work-card:hover .work-image img{transform:scale(1.055)}
.page .work-card>.record-index{margin:22px 20px 8px}
.page .work-card .record-index>span{font:italic 22px Georgia,serif;color:#a66d45}
.page .work-card .record-index small{font-size:10px;color:#788576;letter-spacing:.09em}
.page .work-card h3{font:400 26px/1.45 var(--atelier-serif);letter-spacing:.035em;color:#233d30;margin:9px 20px}
.page .work-card .meta{margin:9px 20px;color:#718073;font-size:12px;line-height:1.85;min-height:auto}
.page .work-card .work-actions{margin:22px 20px 0;padding-top:14px;border-top:1px solid #dcdccf;gap:18px}
.page .work-card .work-actions button{font-size:11px;font-weight:600;letter-spacing:.045em;color:#335744}
.page .work-card .work-actions button:hover{color:#a3653e}
.page .work-card .work-actions button[aria-pressed=true]{color:#a3653e}
.page .work-card .image-missing{background:repeating-linear-gradient(45deg,#eeeae0,#eeeae0 9px,#eae6dc 9px,#eae6dc 10px);min-height:100%;color:#8b9181}

/* Lineage: comparable columns with visual hierarchy and interaction affordance. */
.page .archive-context{font-size:12px;color:#7c8476;border-left:2px solid #ba865d;background:#efece2;padding:13px 19px}
.page .timeline{gap:8px;margin:26px 0 28px}
.page .timeline button{padding:11px 19px;font-size:12px;background:#fbf9f2;border-color:#cfd2c5;border-radius:2px;min-height:43px}
.page .timeline button:hover{border-color:#9da998}
.page .timeline button.active{background:#2a4839;color:#fff9e6;border-color:#2a4839}
.page .lineage-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
.page .lineage-column{background:#fcfaf4;border:1px solid #deded2;min-height:340px;padding:22px 17px}
.page .lineage-column h3{font:400 19px/1.55 var(--atelier-serif);letter-spacing:.045em;color:#274435;padding-bottom:17px;border-bottom:1px solid #bfc6b9}
.page .lineage-column h3 small{font:600 11px var(--atelier-sans);color:#a66d46}
.page .lineage-column button{display:block;width:100%;text-align:left;background:transparent;border-bottom:1px solid #ece9df;padding:14px 8px;font-size:12px;color:#465e4d;min-height:48px;transition:background .2s ease,color .2s ease,padding-left .2s ease}
.page .lineage-column button:hover{background:#edf0e7;color:#a06237;padding-left:13px}
.page .lineage-column button.related-node{background:#e7ede3;border-left:3px solid #b87549;color:#274735;padding-left:11px}
.page .lineage-column button small{color:#7a8479}
.page .lineage-note{font-size:12px;line-height:1.9;color:#8a9183}

/* Makers: spacious directory, lightly ruled archival cards. */
.page .person-list{gap:22px;grid-template-columns:repeat(2,minmax(0,1fr))}
.page .person-card{position:relative;background:#faf8f1;border:1px solid #e0dfd2;padding:33px 34px 29px;min-height:280px;transition:transform .4s var(--atelier-ease),box-shadow .4s var(--atelier-ease)}
.page .person-card:hover{transform:translateY(-3px);box-shadow:0 14px 37px #26473211}
.page .person-card:before{content:'↗';position:absolute;top:28px;right:31px;color:#b0805b;font:20px var(--atelier-serif)}
.page .person-card .person-no{font:600 10px var(--atelier-sans);letter-spacing:.2em;color:#a37754;margin-bottom:22px}
.page .person-card h3{font:400 clamp(25px,3vw,36px)/1.35 var(--atelier-serif);letter-spacing:.07em;color:#223d2e}
.page .person-card .tag{font-size:11px;margin:14px 0 4px;color:#9c6c4b;background:#efe8da;padding:5px 9px}
.page .person-card p{font-size:13px;line-height:2;color:#728072;max-width:600px}
.page .person-card .text-button{margin-top:auto}

/* Source table: references should look audited, not decorative. */
.page .source-note{background:#eee9dc;border-left:3px solid #b17b51;color:#627264;font-size:12px;line-height:2;padding:22px 26px;margin:20px 0 34px}
.page .source-row{background:#fcfaf4;border-bottom:1px solid #d9ddcf;padding:19px 17px;transition:background .2s ease}
.page .source-row:nth-child(even){background:#f3f2e9}
.page .source-row:hover{background:#e8ece3}
.page .source-row span{font:italic 17px Georgia,serif;color:#ad805a}
.page .source-row button:first-of-type{color:#274335;font-size:15px}

/* Studio: form as workbench, preview as gallery. */
.page .studio-layout{grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:clamp(34px,5vw,88px);align-items:start}
.page .studio-form{background:#fcfaf4;border:1px solid #dcdccf;padding:28px 30px}
.page .studio-form .field{border-color:#e0e0d5}
.page .studio-form label{color:#3e5848;font-size:12px;font-weight:600;letter-spacing:.06em}
.page .studio-form .choice button{border-radius:2px}
.page .studio-form .choice button:hover{border-color:#ab977b}
.page .studio-form textarea{width:100%;min-height:110px;padding:13px 15px}
.page .studio-preview{min-height:540px;top:104px;background:radial-gradient(circle at 50% 35%,#f4f0e5,#e6e8dc 74%);border:1px solid #d8dace;padding:40px 42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:sticky}
.page .studio-preview .preview-label{align-self:stretch;border-bottom:1px solid #cbd1c4;padding-bottom:19px;margin-bottom:auto;color:#8c694c;font-size:11px;letter-spacing:.17em}
.page .studio-preview h3{font:400 38px/1.5 var(--atelier-serif);color:#324d3a;margin-top:18px}
.page .studio-preview p{font-size:14px;line-height:2;max-width:510px}
.page .studio-preview img{max-height:380px;object-fit:contain;width:100%;mix-blend-mode:multiply}
.page .studio-caption{font-size:12px;line-height:1.9;color:#7a8677}

/* Dialog reading surface with a clearer editorial rhythm. */
dialog,.directory-dialog,#field-page-dialog,#detail-dialog,#compare-dialog,#field-studio-dialog,.footprints-dialog{border:1px solid #dfddcf;background:#f7f5ee;color:#294336;box-shadow:0 35px 120px #0007;border-radius:3px}
dialog::backdrop{background:#03150eae;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
dialog[open]{animation:atelier-dialog-enter .44s var(--atelier-ease) both}
@keyframes atelier-dialog-enter{from{opacity:0;transform:translateY(12px) scale(.988)}to{opacity:1;transform:translateY(0) scale(1)}}
.directory-dialog{width:min(770px,92vw);padding:55px clamp(26px,5vw,70px)}
.directory-dialog>.eyebrow{color:#a46b46;letter-spacing:.19em;font-weight:600}
.directory-dialog h2{font:400 47px/1.3 var(--atelier-serif);letter-spacing:.09em;margin:18px 0}
.directory-dialog>p{font-size:14px;color:#71806f}
.directory-dialog .field-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 45px}
.directory-dialog .field-directory a{font:400 23px var(--atelier-serif);letter-spacing:.04em;padding:21px 0;border-color:#d5d8c9;transition:color .22s ease,padding-left .2s ease}
.directory-dialog .field-directory a:hover{padding-left:7px;color:#a3633b}
.directory-dialog .field-directory a:after{content:'↗';float:right;font:13px var(--atelier-sans);color:#a38a6b;margin-top:10px}
#field-page-dialog{width:min(1280px,95vw);height:88dvh;max-height:88dvh}
#field-page-dialog .chapter-bar{background:#eeeae0;border-color:#d5d6c8;padding:10px 38px}
#field-page-dialog .chapter-bar button{font-size:12px;letter-spacing:.06em;color:#426049}
#field-page-dialog .page{padding:30px clamp(24px,5vw,70px) 80px}
#field-page-dialog .page-heading h1{font-size:clamp(40px,4vw,62px)}
#detail-dialog,#compare-dialog{padding:45px clamp(24px,4vw,66px);max-width:min(1100px,94vw)}
#detail-dialog .close,#compare-dialog .close,.directory-dialog .directory-close{color:#3d5441;position:absolute;top:12px;right:13px;min-height:44px;min-width:44px;border:1px solid #d5d7c8;border-radius:50%;font-size:22px;line-height:1}
#detail-dialog .close:hover,#compare-dialog .close:hover,.directory-dialog .directory-close:hover{background:#e4e6d9;color:#a55e36}
#detail-content>.eyebrow,#compare-content>.eyebrow{color:#a36e4c;font-size:10px;letter-spacing:.19em}
#detail-content h2,#compare-content h2{font:400 clamp(36px,4vw,55px)/1.3 var(--atelier-serif);letter-spacing:.06em;color:#254434;margin:13px 0 20px}
#detail-content .detail-top{gap:45px}
#detail-content .detail-top img{background:#f0eddf;object-fit:contain;mix-blend-mode:multiply}
#detail-content p{font-size:14px;line-height:2.05;color:#657369}
#detail-content .raw-fields{border-top:1px solid #cdd2c4;margin-top:30px;padding-top:20px}
#detail-content .raw-fields summary{font-size:13px;cursor:pointer;color:#42644c}
#compare-content .compare-table{background:#fcfaf5}
#compare-content .compare-table th{color:#365443}
#compare-content .compare-table td{color:#697569}
#compare-content .compare-table img{height:170px;object-fit:contain;mix-blend-mode:multiply}
.footprints-dialog{padding:40px;max-width:92vw}
.footprints-dialog .journal-row:hover{background:#ebede3}

/* Inline feedback and humane interaction details. */
#toast{border-radius:2px;background:#244535;color:#faf3df;box-shadow:0 8px 30px #03181044;font-size:12px;letter-spacing:.06em}
body:not(.immersive-map) .site-header nav a:focus-visible,.immersive-map .site-header nav a:focus-visible{outline-offset:1px!important}
.page .work-card:focus-within,.page .person-card:focus-within{border-color:#a36c44;box-shadow:0 0 0 2px #ac855c2f}
.atelier-reveal{animation:atelier-fade-up .58s var(--atelier-ease) both}
@keyframes atelier-fade-up{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}

/* Responsive: controls stay tappable; no critical interaction is hover-only. */
@media(max-width:1160px){
 .site-header nav{gap:16px}
 .site-header .brand{font-size:19px}
 .site-header nav a{font-size:11px}
 .site-header nav a small{font-size:8px}
 .page .works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .page .lineage-board{grid-template-columns:repeat(2,minmax(0,1fr))}
 .immersive-map .field-whisper{display:none}
}
@media(max-width:800px){
 body:not(.immersive-map) .site-header,.immersive-map .site-header{position:relative;min-height:unset;height:auto;padding:14px 18px;gap:8px;display:flex;flex-wrap:wrap;align-items:center}
 .site-header .brand,.immersive-map .site-header .brand{font-size:18px;gap:8px}
 .site-header .brand .seal,.immersive-map .site-header .brand .seal{width:30px;height:33px;font-size:18px}
 .site-header .brand small{display:none}
 .site-header nav,.immersive-map .site-header nav{order:3;width:100%;height:39px;overflow:auto;justify-content:flex-start;gap:19px;scrollbar-width:none}
 .site-header nav::-webkit-scrollbar{display:none}
 .site-header nav a,.immersive-map .site-header nav a{height:39px;font-size:11px;display:flex;flex-direction:row;align-items:center;white-space:nowrap}
 .site-header nav small{display:none}
 body:not(.immersive-map) .site-header nav a.active:after,.immersive-map .site-header nav a.active:after{bottom:0;height:2px}
 .site-header .compare-nav{margin-left:auto;border-left:0;padding:8px 0;font-size:11px}
 .immersive-map .site-header{position:absolute;top:0;left:0;right:0;z-index:12;background:linear-gradient(#0b2219fa,#0b2219bd 83%,transparent)}
 .immersive-map .site-header:after{bottom:0;left:18px;right:18px}
 .immersive-map .atlas-layout{height:100svh;min-height:590px}
 .immersive-map .field-entry>span{top:calc(50% - 160px);font-size:10px;letter-spacing:.18em}
 .immersive-map .field-entry h1{top:calc(50% - 122px);font-size:20px}
 .immersive-map .field-entry .field-begin{font-size:clamp(43px,9.5vw,72px);max-width:98vw;letter-spacing:.08em}
 .immersive-map .field-entry p{top:calc(50% + 75px);font-size:12px;line-height:1.95}
 .atelier-entry-mark{top:calc(50% - 190px)}
 .atelier-prelude-line{top:calc(50% + 64px)}
 .atelier-landing-edition{left:20px;bottom:67px;font-size:9px}
 .atelier-landing-count{right:20px;bottom:67px;font-size:9px}
 .atelier-map-index{top:132px;left:21px}
 .atelier-map-index h2{font-size:22px;margin-top:9px}
 .atelier-map-index p{display:none}
 .immersive-map .exploration-note{top:219px;left:21px;padding:7px 15px}
 .immersive-map .field-tools{left:12px;right:12px;bottom:110px;gap:0;padding:3px 4px;justify-content:space-around;z-index:7}
 .immersive-map .field-tools button{font-size:11px;padding:8px 5px;min-height:44px}
 .immersive-map .field-tools button span{margin-left:3px}
 .immersive-map .field-regions{bottom:48px;max-width:calc(100vw - 24px);overflow-x:auto;padding:0 14px}
 .immersive-map .field-regions .province-list{gap:13px;justify-content:center}
 .immersive-map .field-regions .province-list button{font-size:11px;padding:8px 0}
 .immersive-map .field-surface .map-bottom{right:15px;bottom:169px}
 .immersive-map .map-controls{gap:0;padding:2px}
 .immersive-map .map-controls button,.immersive-map .map-controls button:last-child{width:35px;min-width:35px;height:35px;min-height:35px;font-size:14px}
 .immersive-map .map-controls button:last-child{font-size:10px;width:40px}
 .immersive-map .field-surface .map-art-toggle{top:144px;bottom:auto;right:17px}
 .immersive-map .field-surface .compass{right:24px;top:201px}
 .immersive-map .map-surface .field-panel{top:40%;left:0;right:0;bottom:0;width:100%;max-height:60%;padding:21px 23px max(32px,env(safe-area-inset-bottom));border-radius:15px 15px 0 0}
 .immersive-map .atlas-sidebar{top:120px;left:12px;right:12px;bottom:174px;width:auto;max-width:none}
 .immersive-map .field-surface .map-attribution{left:17px;bottom:9px}
 body:not(.immersive-map) .page{padding:25px 22px 70px}
 .page .page-heading{grid-template-columns:1fr;gap:16px;padding:14px 0 30px}
 .page .page-heading h1{font-size:clamp(39px,8vw,60px)}
 .page .page-heading p{font-size:13px;max-width:680px}
 .atelier-page-overline{margin-bottom:28px;font-size:9px}
 .page .works-grid,.page .person-list,.page .studio-layout{grid-template-columns:1fr;gap:20px}
 .page .work-card .work-image{height:290px}
 .page .person-card{padding:25px;min-height:250px}
 .page .lineage-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .page .lineage-column{padding:15px 12px;min-height:220px}
 .page .studio-form{padding:22px}
 .page .studio-preview{position:relative;min-height:410px;top:auto;padding:25px}
 .directory-dialog{padding:44px 27px}
 .directory-dialog h2{font-size:37px}
 .directory-dialog .field-directory{grid-template-columns:1fr}
 .directory-dialog .field-directory a{font-size:20px;padding:13px 0}
 #field-page-dialog{width:96vw;max-height:92dvh;height:92dvh}
 #field-page-dialog .chapter-bar{padding:8px 15px}
 #field-page-dialog .page{padding:22px 19px 50px}
 #detail-dialog,#compare-dialog{padding:43px 23px 25px}
}
@media(max-width:480px){
 .immersive-map .field-entry .field-begin{font-size:clamp(36px,10vw,52px)}
 .immersive-map .field-entry>span{font-size:9px}
 .atelier-landing-edition{bottom:73px}
 .atelier-landing-count{bottom:73px}
 .page .lineage-board{grid-template-columns:1fr}
 .page .filters input{min-width:100%}
 .page .work-card .work-image{height:245px}
 .page .page-heading h1{font-size:42px}
}
@media(max-height:650px) and (min-width:801px){
 .immersive-map .field-tools{bottom:65px}
 .immersive-map .field-surface .map-bottom{bottom:65px}
 .immersive-map .field-regions{bottom:17px}
 .immersive-map .map-surface .field-panel{top:95px;bottom:76px}
 .atelier-map-index{top:95px}
 .immersive-map .exploration-note{top:210px}
}
@media(hover:none){
 .page .work-card .work-image:after{display:none}
 .page .work-card:hover,.page .person-card:hover{transform:none;box-shadow:none}
 .immersive-map .field-entry .field-begin:hover{letter-spacing:.12em}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
 .atelier-reveal,.page{animation:none!important;opacity:1!important;transform:none!important}
 .immersive-map .field-entry .field-begin{opacity:1!important}
}
/* Safe enhancement layer: decorative glow and keyboard skip link. */
.atelier-skip-link{position:fixed;z-index:20001;top:-80px;left:12px;padding:12px 18px;background:#f6f1df;color:#1b3828;border:2px solid #a77d4f;font-weight:600;font-size:13px}
.atelier-skip-link:focus{top:12px}
.atelier-cursor-glow{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .8s ease;background:radial-gradient(280px circle at var(--glow-x,50%) var(--glow-y,50%),#dae3ac0e 0,transparent 85%);mix-blend-mode:screen}
.immersive-map .map-surface.has-entered:hover .atelier-cursor-glow{opacity:1}
@media(prefers-reduced-motion:reduce){.atelier-cursor-glow{display:none}}
/* Direct-child introduction ornament: override legacy generic span positioning. */
.immersive-map .field-entry > .atelier-entry-mark{top:calc(50% - 220px);width:auto;font:15px/1.5 var(--atelier-serif);letter-spacing:normal;color:#d8c99b}
.immersive-map .field-entry > .atelier-prelude-line{top:calc(50% + 86px);width:65px;height:1px;font-size:0;line-height:0;letter-spacing:0}
@media(max-width:800px){
 .immersive-map .field-entry > .atelier-entry-mark{top:calc(50% - 190px)}
 .immersive-map .field-entry > .atelier-prelude-line{top:calc(50% + 64px)}
}
