/* Public portal: the book's copper/ink palette, with real art from the game. */
.public-portal { --portal-width: 1280px; }
.public-portal main { overflow: clip; }
.public-portal :focus-visible { outline: 2px solid var(--copper-light); outline-offset: 5px; }
.portal-hero,.portal-paths,.portal-about-strip,.portal-page-intro,.portal-book-layout,.portal-character-grid,.portal-about-content,.portal-author { width:min(var(--portal-width),calc(100% - 96px));margin-inline:auto; }
.portal-hero { display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;min-height:min(720px,calc(100dvh - 88px));padding:54px 0 42px; }
.portal-hero-copy { position:relative;z-index:2; }
.portal-kicker { color:var(--copper-light);font:600 10px/1.7 'Manrope',sans-serif;letter-spacing:.19em;text-transform:uppercase;margin:0 0 23px; }
.portal-kicker>span { display:inline-block;width:22px;border-top:1px solid currentColor;vertical-align:middle;margin-right:10px; }
.portal-hero h1 { font-size:clamp(54px,5.7vw,84px);line-height:1.05;letter-spacing:-.045em; }
.portal-hero h1 em,.portal-page-intro h1 em,.portal-section-heading em { font-weight:500;color:var(--copper-light); }
.portal-lead { color:#a6b4b0;font-size:17px;line-height:1.85;max-width:510px;margin:26px 0; }
.portal-actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:30px; }
.portal-actions .button { min-height:44px;padding-inline:20px;font-size:12px;gap:12px; }
.portal-note { color:#899d96;font-size:12px;line-height:1.8;margin:23px 0 0; }
.portal-art { position:relative;min-width:0;height:520px;display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate; }
.portal-orbit { position:absolute;width:min(90%,420px);aspect-ratio:1;border:1px solid #d6ac6326;border-radius:50%;background:radial-gradient(ellipse,#a28b4024,transparent 68%);z-index:-1; }
.portal-orbit:before,.portal-orbit:after { content:'';position:absolute;inset:9%;border:1px solid #d6ac6312;border-radius:50%; }
.portal-orbit:after { inset:-10%;border-style:dashed; }
.portal-orbit>span { position:absolute;top:-15px;left:calc(50% - 13px);color:var(--copper);font-size:28px;background:#0a1918;padding-inline:5px; }
.portal-card-fan { position:relative;width:100%;height:370px; }
.portal-card { position:absolute;top:36px;left:calc(50% - 108px);width:216px;height:318px;border:1px solid #c2a266;border-radius:10px;padding:6px;margin:0;overflow:hidden;background:#10221d;box-shadow:0 18px 34px #0008;transform-origin:center 80%; }
.portal-card:nth-child(1) { transform:translateX(-117px) rotate(-12deg); }
.portal-card:nth-child(2) { transform:translateY(-12px);z-index:2; }
.portal-card:nth-child(3) { transform:translateX(117px) rotate(12deg); }
.portal-card:only-child { transform:none; }
.portal-card img { width:100%;height:100%;object-fit:cover;object-position:50% 20%;border-radius:5px; }
.portal-card figcaption { position:absolute;inset:auto var(--portal-card-frame,6px) var(--portal-card-frame,6px);padding:65px 10px 18px;text-align:center;background:linear-gradient(transparent,#0c1d18 50%);border-radius:0 0 5px 5px; }
.portal-card small { color:#cfb376;font-size:8px;letter-spacing:.17em;text-transform:uppercase; }
.portal-card strong { display:block;font:500 23px/1.2 'Playfair Display',serif;margin:6px 0; }
.portal-card figcaption>span { display:block;font-size:9px;color:#b1beb0; }
.portal-art-caption { display:flex;align-items:center;gap:12px;color:#bba775;text-align:center;font-size:9px;letter-spacing:.16em;text-transform:uppercase;margin:37px 0 0; }
.portal-art-caption>span { width:22px;border-top:1px solid #d6ac6340; }
.portal-art-fallback { text-align:center;padding:60px;font:28px 'Playfair Display',serif; }.portal-art-fallback>span{font-size:70px;color:var(--copper)}
.portal-paths { padding:48px 0 56px;border-top:1px solid var(--line); }
.portal-section-heading { display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:30px; }
.portal-section-heading .portal-kicker { margin:0; }
.public-portal h2 { font:500 32px/1.25 'Playfair Display',serif;letter-spacing:-.025em;margin:0; }
.portal-path-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.portal-path { padding:26px 25px;border:1px solid var(--line);border-radius:5px;background:#10221f50;display:flex;flex-direction:column;transition:background .2s,border-color .2s; }
.portal-path:hover { background:#19332b70;border-color:#d3aa6460; }
.portal-path-number { font-size:9px;letter-spacing:.17em;color:#bdac82; }
.portal-path h3 { display:flex;justify-content:space-between;gap:12px;font:500 26px/1.3 'Playfair Display',serif;margin:22px 0 12px; }
.portal-path h3>span { font:20px 'DM Sans',sans-serif;color:var(--copper); }
.portal-path p,.portal-about-strip p:not(.portal-kicker),.portal-reading>p:not(.portal-kicker),.portal-about-content p { color:#a4b3ac;font-size:14px;line-height:1.85;margin:0 0 20px; }
.portal-path-link { color:#ddc39b;font-size:12px;margin-top:auto; }
.portal-path-game { background:linear-gradient(140deg,#25422f90,#14231b80);border-color:#cfad6240; }
.portal-about-strip { border-top:1px solid var(--line);padding:44px 0 56px;display:grid;grid-template-columns:66px 1fr auto;gap:28px;align-items:center; }
.portal-about-strip .portal-kicker { margin-bottom:9px; }
.portal-about-strip h2 { font-size:27px;margin-bottom:12px; }
.portal-about-strip p:not(.portal-kicker) { max-width:760px;font-size:13px;margin:0; }
.portal-seal { width:66px;height:66px;display:grid;place-items:center;border:1px solid #d6ac6340;border-radius:50%;color:var(--copper);font-size:48px; }
.portal-text-link { color:var(--copper-light);font-size:12px;white-space:nowrap; }
.portal-text-link:hover { text-decoration:underline;text-underline-offset:5px; }
.portal-footer { display:grid;grid-template-columns:minmax(260px,1.65fr) repeat(3,minmax(120px,.65fr));align-items:start;gap:42px;width:100%;padding:64px max(48px,calc((100% - 1280px)/2)) 38px;border-top:1px solid var(--line);background:linear-gradient(180deg,#0b1b19,#081512);font-size:12px; }
.portal-footer-brand { max-width:320px; }.portal-footer .footer-mark { display:block;color:#f1e8d8;font:500 24px/1.2 'Playfair Display',serif;letter-spacing:-.02em; }.portal-footer-brand p { margin:14px 0 0;color:#91a19a;font-size:12px;line-height:1.8; }
.portal-footer-column { display:grid;align-self:start;align-content:start;gap:11px; }.portal-footer-column h2 { margin:0 0 5px;color:#c9a96d;font:600 9px/1.4 'Manrope',sans-serif;letter-spacing:.16em;text-transform:uppercase; }.portal-footer-column a { width:max-content;max-width:100%;color:#b7c2ba; }.portal-footer a:hover { color:var(--copper-light); }
.portal-footer-bottom { grid-column:1 / -1;display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:14px;padding-top:22px;border-top:1px solid var(--line);color:#778981;font-size:10px;letter-spacing:.05em; }.portal-footer-credit { justify-self:end;text-align:right;color:#bca77c;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
.portal-page-intro { padding:70px 0 45px; }
.portal-page-intro h1 { font-size:clamp(40px,5vw,68px);line-height:1.12;max-width:950px; }
.portal-page-intro .portal-lead { max-width:700px; }
.portal-about-intro { display:grid;grid-template-columns:minmax(0,1.8fr) minmax(340px,1fr);gap:clamp(42px,5vw,76px);align-items:center;padding-bottom:68px; }.portal-about-intro h1{max-width:none}.portal-about-hero-art{position:relative;z-index:0;isolation:isolate;width:calc(100% + 96px);min-height:320px;margin:0 0 0 -96px;overflow:visible;border:1px solid #c9a15d66;border-radius:7px;background:#0d211d}.portal-about-hero-art:before{content:'';position:absolute;z-index:-1;inset:13px -13px -13px 13px;border:1px solid #c9a15d38;border-radius:7px;pointer-events:none}.portal-about-hero-art img{position:relative;z-index:1;display:block;width:100%;height:100%;min-height:320px;object-fit:cover;object-position:center;border-radius:6px}
.portal-book-layout { display:grid;grid-template-columns:minmax(240px,.65fr) 1fr;gap:80px;padding:24px 0 80px;align-items:center; }
.portal-book-cover { position:relative;width:min(100%,330px);min-height:440px;padding:40px;border:1px solid #bf9b6350;background:radial-gradient(ellipse at 50% 60%,#4e584730,#0d211e 70%);box-shadow:inset 8px 0 #030c0980,14px 14px 0 #142320,15px 15px 0 #bf9b6320;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center; }
.portal-book-cover>span { font:600 40px/1.25 'Playfair Display',serif;letter-spacing:.06em; }.portal-book-cover i{font-size:120px;color:var(--copper-light);font-style:normal;margin:12px 0}.portal-book-cover small{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:#bfa984}.portal-book-cover strong{font:500 13px 'Manrope',sans-serif;margin-top:26px}
.portal-reading h2 { margin-bottom:20px; }
.portal-chapter-list { margin:25px 0; }.portal-chapter-list a{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding:18px 0;font-size:14px}.portal-chapter-list a:hover{color:var(--copper-light)}.portal-chapter-list span{color:var(--copper);font-size:12px}.portal-chapter-list strong{flex:1;font-weight:500}.portal-muted{font-size:12px;line-height:1.7;display:block;color:#8fa198}
.portal-character-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding:10px 0 60px; }
.portal-character { border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#10221f70; }.portal-character img,.portal-monogram{width:100%;height:250px;object-fit:cover;object-position:center 18%}.portal-monogram{display:grid;place-items:center;font:60px 'Playfair Display',serif;color:var(--copper)}.portal-character>div:not(.portal-monogram){padding:22px}.portal-character small{font-size:10px;color:var(--copper);text-transform:uppercase;letter-spacing:.1em}.portal-character h2{font-size:25px;margin:10px 0}.portal-character p{font-size:13px;line-height:1.7;color:#a4b3ac}.portal-character:hover{border-color:#d3aa6460}
.portal-about-content { display:grid;grid-template-columns:1fr 1fr;gap:45px 80px;padding:15px 0 60px; }.portal-about-content article{border-top:1px solid var(--line);padding-top:25px}.portal-about-content article:nth-child(-n + 2){border-top:0}.portal-about-content h2{font-size:29px;margin:18px 0}.portal-author{border-top:1px solid var(--line);padding:36px 0 65px}.portal-author h2{margin:12px 0 18px}
.portal-person-name,.portal-inline-emphasis{color:#efd5a3;font-weight:600}.portal-author-band{margin:0 0 4px;padding:clamp(58px,7vw,96px) 0;background:linear-gradient(115deg,#eadcc0,#d6bb87 57%,#ebd6ac);border-block:1px solid #8f6a3455;color:#19352e}.portal-author-band .portal-author{width:min(var(--portal-width),calc(100% - 96px));margin-inline:auto;padding:0;border:0;display:grid;grid-template-columns:minmax(270px,.8fr) 1.2fr;gap:clamp(42px,8vw,125px);align-items:center}.portal-author-band h2{color:#17322b;font-size:clamp(33px,3.3vw,48px);line-height:1.12}.portal-author-band .portal-kicker{color:#805126}.portal-author-band .portal-author-copy>p{max-width:510px;color:#3d554c;font-size:14px;line-height:1.9}.portal-author-band .portal-person-name,.portal-author-band .portal-recognition{color:#71451f;font-weight:600}.portal-author-band .portal-text-link{color:#70441f;font-weight:600}.portal-founder-art{margin:0;min-height:370px;border:1px solid #8f642c88;border-radius:7px;overflow:hidden;background:#17352e;box-shadow:18px 20px 0 #71451f24}.portal-founder-art img{display:block;width:100%;height:100%;min-height:370px;object-fit:cover;object-position:center}
.portal-timeline{position:relative;width:min(1120px,calc(100% - 96px));margin:0 auto 76px;padding:16px 0 30px}.portal-timeline:before{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(#b9945978,#b9945930)}.portal-timeline-entry{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);padding:0 0 52px}.portal-timeline-entry:last-child{padding-bottom:0}.portal-timeline-card{position:relative;z-index:1;grid-column:3;min-width:0;padding:28px 30px;border:1px solid #c7a36250;border-radius:5px;background:linear-gradient(145deg,#153028a8,#0b1d19d6);box-shadow:0 18px 42px #00000020}.portal-timeline-entry:nth-child(even) .portal-timeline-card{grid-column:1}.portal-timeline-entry time{display:block;margin-bottom:19px;color:var(--copper-light);font:500 20px/1.35 'Playfair Display',serif}.portal-timeline-card h2{margin:14px 0 12px;font-size:clamp(26px,2.5vw,34px)}.portal-timeline-card p{margin:0;color:#a4b3ac;font-size:14px;line-height:1.85}.portal-timeline-marker{position:relative;z-index:2;grid-column:2;grid-row:1;justify-self:center;align-self:start;width:17px;height:17px;margin-top:32px;border:4px solid #0b1d19;border-radius:50%;background:var(--copper-light);box-shadow:0 0 0 1px #d6ac6388,0 0 0 7px #d6ac6318}.portal-timeline-entry-future .portal-timeline-card{border-color:#9aa9a148;background:linear-gradient(145deg,#132720a8,#0b1a17bf)}.portal-timeline-entry-future time{color:#b7c2ba}.portal-timeline-entry-future .portal-timeline-marker{background:#9aa9a1;box-shadow:0 0 0 1px #9aa9a188,0 0 0 7px #9aa9a118}
.portal-contact{width:min(var(--portal-width),calc(100% - 96px));margin-inline:auto;border-top:1px solid var(--line);padding:44px 0 70px;display:grid;grid-template-columns:minmax(220px,.72fr) 1fr;gap:70px}.portal-contact h2{margin-bottom:16px}.portal-author p,.portal-contact>div>p:not(.portal-kicker){color:#a4b3ac;font-size:14px;line-height:1.85;max-width:560px}.portal-contact-form{display:grid;gap:17px}.portal-contact-form label{display:grid;gap:8px;color:#d5dbd3;font-size:12px}.portal-contact-form input,.portal-contact-form textarea{width:100%;border:1px solid #b8a57355;border-radius:4px;background:#0c1d19;color:#eef0e8;font:400 14px 'DM Sans',sans-serif;padding:12px 13px;outline:0;resize:vertical}.portal-contact-form input:focus,.portal-contact-form textarea:focus{border-color:var(--copper-light);box-shadow:0 0 0 3px #d6ac6320}.portal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.portal-contact-form .button{justify-self:start;min-height:49px;padding-inline:22px}.portal-form-note{margin:0;color:#8fa198;font-size:11px;line-height:1.6}.portal-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.portal-flash-stack{position:fixed;z-index:50;right:24px;bottom:24px;width:min(400px,calc(100% - 40px));display:grid;gap:8px}.portal-flash{margin:0;padding:13px 16px;border:1px solid #bdac8266;border-radius:5px;background:#152821;color:#e8ece5;box-shadow:0 12px 32px #0008;font-size:13px;line-height:1.45}.portal-flash.success{border-color:#71b88688}.portal-flash.error{border-color:#d58b7c88}
.portal-contact-email{color:var(--copper-light);font-weight:600;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
@media(min-width:1001px) and (max-height:760px){.portal-hero{padding:28px 0;min-height:540px}.portal-art{height:450px}.portal-hero h1{font-size:clamp(52px,5.5vw,76px)}.portal-lead{font-size:16px;margin:22px 0}.portal-card-fan{height:340px}.portal-art-caption{margin-top:25px}}
@media(max-width:1100px){.portal-card{width:185px;height:286px;left:calc(50% - 92px)}.portal-card:nth-child(1){transform:translateX(-94px) rotate(-12deg)}.portal-card:nth-child(3){transform:translateX(94px) rotate(12deg)}.portal-hero{gap:25px}.portal-art-caption{font-size:8px;gap:7px}.portal-path{padding:23px 19px}.portal-path h3{font-size:23px}.portal-character-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.portal-hero{grid-template-columns:1fr;gap:10px;min-height:0;padding-top:55px}.portal-hero-copy{max-width:650px}.portal-hero h1{font-size:68px}.portal-art{height:440px}.portal-card{width:216px;height:318px;left:calc(50% - 108px)}.portal-card:nth-child(1){transform:translateX(-117px) rotate(-13deg)}.portal-card:nth-child(3){transform:translateX(117px) rotate(13deg)}.portal-orbit{width:440px}.portal-path-grid{gap:12px}.portal-about-strip{grid-template-columns:50px 1fr}.portal-about-strip>.portal-text-link{grid-column:2}.portal-seal{width:50px;height:50px}.portal-section-heading{display:block}.portal-section-heading .portal-kicker{margin-bottom:12px}.portal-book-layout{gap:40px}}
@media(max-width:1000px){.portal-about-intro{grid-template-columns:1fr;gap:28px;padding-bottom:48px}.portal-about-hero-art{width:100%;max-width:600px;min-height:260px;margin-left:0}.portal-author-band .portal-author{width:calc(100% - 64px);grid-template-columns:1fr;gap:35px}.portal-author-band .portal-author-copy{max-width:650px}.portal-founder-art{max-width:720px;min-height:320px}.portal-founder-art img{min-height:320px}}
@media(max-width:680px){.portal-hero,.portal-paths,.portal-about-strip,.portal-page-intro,.portal-book-layout,.portal-character-grid,.portal-about-content,.portal-author{width:calc(100% - 40px)}.portal-hero{padding:38px 0 20px}.portal-hero h1{font-size:clamp(42px,12vw,66px)}.portal-kicker{font-size:9px;letter-spacing:.13em;margin-bottom:20px}.portal-lead{font-size:15px;line-height:1.75;margin:20px 0}.portal-actions{gap:10px;margin-top:22px}.portal-actions .button{padding:0 16px;font-size:11px;gap:12px;min-height:42px}.portal-note{font-size:11px;margin-top:18px}.portal-art{height:365px;margin-top:10px}.portal-orbit{width:min(90%,350px)}.portal-card-fan{height:272px;max-width:360px}.portal-card{width:150px;height:237px;left:calc(50% - 75px);top:27px}.portal-card:nth-child(1){transform:translateX(-75px) rotate(-12deg)}.portal-card:nth-child(2){transform:translateY(-8px)}.portal-card:nth-child(3){transform:translateX(75px) rotate(12deg)}.portal-card strong{font-size:18px}.portal-card figcaption>span{font-size:8px}.portal-card figcaption{padding:50px 4px 12px}.portal-art-caption{font-size:7px;letter-spacing:.1em;margin-top:26px}.portal-art-caption>span{width:12px}.portal-paths{padding:28px 0 36px}.public-portal main h2{font-size:27px}.portal-path-grid{grid-template-columns:1fr;gap:12px}.portal-path{padding:24px}.portal-path h3{margin-top:15px;font-size:27px}.portal-path p{font-size:13px}.portal-about-strip{gap:18px;padding:30px 0 36px}.portal-about-strip h2{font-size:24px}.portal-footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px;padding:45px 20px 32px}.portal-footer-brand{grid-column:1 / -1}.portal-footer-bottom{grid-column:1 / -1;grid-template-columns:1fr;padding-top:18px;gap:8px;text-align:center}.portal-footer-bottom span:last-child{grid-column:auto}.portal-page-intro{padding:38px 0 30px}.portal-page-intro h1{font-size:40px}.portal-about-intro{padding-bottom:35px}.portal-about-hero-art,.portal-about-hero-art img{min-height:210px}.portal-about-hero-art:before,.portal-about-hero-art:after{display:none}.portal-book-layout,.portal-about-content{grid-template-columns:1fr;gap:35px;padding-bottom:45px}.portal-book-cover{min-height:400px;width:280px;padding:30px}.portal-character-grid{grid-template-columns:1fr;gap:22px}.portal-character img,.portal-monogram{height:300px}.portal-about-content h2{font-size:27px}.portal-author{padding-bottom:40px}.portal-author-band{padding:48px 0}.portal-author-band .portal-author{width:calc(100% - 40px)}.portal-founder-art,.portal-founder-art img{min-height:250px}.portal-author-band h2{font-size:32px}}
/* The floating Chat button covers the last ~120px at the bottom right: keep the credits clear of it
   (the footer's own side padding already covers that on wide screens). */
@media(min-width:681px){.portal-footer-bottom{padding-right:max(0px,calc(136px - max(48px,(100vw - 1280px) / 2)))}}
/* Phone footer: everything centred; the credits break into three short lines, clear of the floating Chat button. */
.portal-footer-break,.portal-footer-break-narrow{display:none}
@media(max-width:680px){.portal-footer{text-align:center}.portal-footer-brand{justify-self:center}.portal-footer-column{justify-items:center}.portal-footer{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:12px}.portal-footer-column:last-of-type{grid-column:auto}.portal-footer-column a{font-size:11px}.portal-footer-credit{justify-self:center;text-align:center;line-height:1.8}.portal-footer-break{display:inline}}
@media(max-width:360px){.portal-footer-column a{letter-spacing:.04em}.portal-footer-break-narrow{display:inline}}
@media(min-width:681px) and (max-width:920px){.portal-footer{grid-template-columns:1.2fr repeat(3,minmax(0,1fr));gap:34px 20px}}
@media(max-width:360px){.portal-card{width:128px;height:218px;left:calc(50% - 64px)}.portal-card:nth-child(1){transform:translateX(-60px) rotate(-10deg)}.portal-card:nth-child(3){transform:translateX(60px) rotate(10deg)}.portal-card strong{font-size:16px}.portal-card:only-child{transform:none}}
@media(max-width:680px){.portal-contact{width:calc(100% - 40px);grid-template-columns:1fr;gap:35px;padding-bottom:45px}.portal-form-row{grid-template-columns:1fr}.portal-flash-stack{right:20px;bottom:20px}}
@media(prefers-reduced-motion:reduce){.public-portal{scroll-behavior:auto}.public-portal *{scroll-behavior:auto;transition:none!important}}

.portal-stat-strip,.portal-game-invite{width:min(var(--portal-width),calc(100% - 96px));margin-inline:auto}.portal-stat-strip{border-top:1px solid var(--line);padding:68px 0;display:grid;grid-template-columns:minmax(260px,.66fr) 1.34fr;gap:clamp(42px,7vw,110px);align-items:center}.portal-stat-copy h2{max-width:430px;margin-bottom:16px}.portal-stat-copy>p:not(.portal-kicker){max-width:470px;color:#a4b3ac;font-size:14px;line-height:1.85;margin:0 0 21px}.portal-stat-copy .portal-text-link{display:inline-block}.portal-stat-grid{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:solid #b9945930;border-width:1px 0}.portal-stat-grid>div{min-width:0;padding:22px 16px;border-left:1px solid #b9945930;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.portal-stat-grid>div:first-child{border-left:0}.portal-stat-grid dt{color:#9aa9a1;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.portal-stat-grid dd{margin:8px 0 4px;color:#f0e7d7;font:500 clamp(25px,2.4vw,37px)/1 'Playfair Display',serif;letter-spacing:-.04em}.portal-stat-grid small{display:block;color:#b4c0b6;font-size:10px;line-height:1.45}.portal-path-meta{display:block;margin-top:auto;padding-top:18px;color:#c9b583;font:600 9px/1.5 'Manrope',sans-serif;letter-spacing:.12em;text-transform:uppercase}.portal-path-link{margin-top:10px}.portal-game-invite{border-top:1px solid var(--line);padding:76px 0;display:grid;grid-template-columns:minmax(280px,.76fr) 1.24fr;gap:clamp(45px,8vw,130px);align-items:center}.portal-game-invite-copy h2{font-size:clamp(37px,4.1vw,59px);line-height:1.08;max-width:560px}.portal-game-invite-copy h2 em{color:var(--copper-light);font-weight:500}.portal-game-invite-copy>p:not(.portal-kicker):not(.portal-note){max-width:480px;color:#a4b3ac;font-size:15px;line-height:1.85;margin:22px 0}.portal-game-invite-copy .portal-note{max-width:410px}.portal-journey-steps{position:relative;list-style:none;margin:0;padding:25px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid #c5a56a56;border-radius:8px;background:radial-gradient(circle at 50% 45%,#b68e4420,transparent 58%),linear-gradient(135deg,#132b2390,#0b1c17b0);box-shadow:inset 0 0 0 1px #f3d98a08}.portal-journey-steps:before{content:'';position:absolute;inset:16px;border:1px solid #c5a56a20;border-radius:4px;pointer-events:none}.portal-journey-steps li{position:relative;z-index:1;min-width:0;min-height:78px;padding:17px;border:1px solid #c5a56a28;background:#0b1e19a8;display:flex;flex-direction:column;justify-content:space-between;gap:13px}.portal-journey-steps li:last-child{grid-column:1 / -1}.portal-journey-steps span{color:#cda967;font:600 9px 'Manrope',sans-serif;letter-spacing:.16em}.portal-journey-steps strong{font:500 clamp(17px,1.75vw,23px)/1.15 'Playfair Display',serif;color:#e6dfcf}.portal-journey-steps li:first-child{border-color:#d4af6970;background:#1b352a}.portal-journey-steps li:first-child strong{color:#f2d291}
@media(max-width:1000px){.portal-stat-strip,.portal-game-invite{width:calc(100% - 64px);grid-template-columns:1fr;gap:34px}.portal-stat-copy h2{max-width:600px}.portal-game-invite{padding:62px 0}.portal-game-invite-copy{max-width:650px}.portal-journey-steps{max-width:650px}}
@media(max-width:680px){.portal-stat-strip,.portal-game-invite{width:calc(100% - 40px)}.portal-stat-strip{padding:42px 0}.portal-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-stat-grid>div{padding:17px 14px;border-bottom:1px solid #b9945930}.portal-stat-grid>div:nth-child(odd){border-left:0}.portal-stat-grid>div:nth-last-child(-n+2){border-bottom:0}.portal-stat-grid dd{font-size:31px}.portal-game-invite{padding:50px 0;gap:28px}.portal-game-invite-copy h2{font-size:clamp(34px,10vw,46px)}.portal-game-invite-copy>p:not(.portal-kicker):not(.portal-note){font-size:14px;margin:18px 0}.portal-journey-steps{padding:14px;gap:7px}.portal-journey-steps li{min-height:72px;padding:14px}.portal-journey-steps strong{font-size:18px}}
@media(max-width:360px){.portal-journey-steps{grid-template-columns:1fr}.portal-journey-steps li:last-child{grid-column:auto}}
@media(max-width:680px){.portal-timeline{width:calc(100% - 40px);margin-bottom:48px;padding:4px 0 12px 34px}.portal-timeline:before{left:8px}.portal-timeline-entry{display:block;padding:0 0 26px}.portal-timeline-entry:last-child{padding-bottom:0}.portal-timeline-card,.portal-timeline-entry:nth-child(even) .portal-timeline-card{grid-column:auto;padding:23px 22px}.portal-timeline-entry time{font-size:18px;margin-bottom:16px}.portal-timeline-marker{position:absolute;top:29px;left:-34px;width:15px;height:15px;margin:0}.portal-timeline-card h2{font-size:27px}}

/* Brand archive: uncolored marks remain separate from the portal's palette. */
.portal-brand-intro{padding-bottom:70px}
.portal-brand-intro .portal-lead{max-width:810px}
.portal-brand-context{max-width:810px;margin:20px 0 0;padding-left:18px;border-left:1px solid var(--copper);color:#91a59c;font-size:12px;line-height:1.8}
.portal-brand-entry{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);gap:clamp(35px,6vw,92px);align-items:center;padding:clamp(52px,6vw,84px) max(48px,calc((100% - 1280px)/2));border-top:1px solid var(--line)}
.portal-brand-entry:nth-child(2){background:linear-gradient(115deg,#eadcc0,#ddc598 62%,#ebd8b4);color:#19352e}
.portal-brand-copy h2{max-width:460px;margin:18px 0;font-size:clamp(32px,3.5vw,49px);line-height:1.14}
.portal-brand-copy p{max-width:450px;margin:0;color:#a4b3ac;font-size:15px;line-height:1.85}
.portal-brand-entry:nth-child(2) .portal-brand-copy p{color:#41574e}
.portal-brand-entry:nth-child(2) .portal-path-number,.portal-brand-entry:nth-child(2) .portal-person-name{color:#774c28}
.portal-brand-art{position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-self:end;inline-size:min(100%,560px);block-size:clamp(360px,31vw,440px);min-width:0;margin:0;padding:clamp(30px,3vw,48px);overflow:hidden;border:1px solid #d4aa6688;border-radius:12px;background:radial-gradient(circle at 50% 43%,#d6ac6345 0 8%,transparent 39%),linear-gradient(140deg,#18382f,#081815 74%);box-shadow:18px 22px 0 #00000024,0 26px 64px #00000042}
.portal-brand-art:before{content:'';position:absolute;z-index:0;inset:15px;border:1px solid #d6ac6360;border-radius:7px;background:repeating-linear-gradient(90deg,#d6ac6307 0 1px,transparent 1px 46px),repeating-linear-gradient(#d6ac6306 0 1px,transparent 1px 46px);pointer-events:none}
.portal-brand-art:after{content:'';position:absolute;z-index:0;inset:50% auto auto 50%;inline-size:72%;aspect-ratio:1;border:1px solid #d6ac634d;box-shadow:0 0 0 26px #d6ac6308,0 0 0 52px #d6ac6305;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}
.portal-brand-art img{position:relative;z-index:1;align-self:center;justify-self:center;display:block;inline-size:100%;block-size:100%;max-block-size:326px;object-fit:contain;background:transparent;filter:drop-shadow(0 14px 22px #0008)}
.portal-brand-entry:not(:nth-child(2)) .portal-brand-art img{filter:invert(1) drop-shadow(0 14px 22px #0008)}
.portal-brand-art figcaption{position:relative;z-index:1;align-self:end;margin-top:18px;padding-top:14px;border-top:1px solid #d6ac6355;color:#d2c6a8;font-size:11px;letter-spacing:.04em;text-align:center}
.portal-brand-entry:nth-child(2) .portal-brand-art{border-color:#8f6a3488;background:radial-gradient(circle at 50% 42%,#fff8dfaa 0 8%,transparent 43%),linear-gradient(145deg,#f0dfbd,#cda96f)}
.portal-brand-entry:nth-child(2) .portal-brand-art:before{border-color:#76522665;background:repeating-linear-gradient(90deg,#61441b0e 0 1px,transparent 1px 46px),repeating-linear-gradient(#61441b0d 0 1px,transparent 1px 46px)}
.portal-brand-entry:nth-child(2) .portal-brand-art:after{border-color:#71451f55;box-shadow:0 0 0 26px #71451f0b,0 0 0 52px #71451f08}
.portal-brand-entry:nth-child(2) .portal-brand-art figcaption{border-color:#71451f44;color:#513d28}
.portal-brand-entry:nth-child(3) .portal-brand-art{background:radial-gradient(circle at 50% 42%,#d6ac6335 0 8%,transparent 43%),linear-gradient(145deg,#15342d,#071411)}
.portal-brand-next{width:min(var(--portal-width),calc(100% - 96px));margin:0 auto;padding:72px 0 82px}
.portal-brand-next h2{margin:0 0 16px;font-size:clamp(31px,3vw,42px)}
.portal-brand-next p:not(.portal-kicker){max-width:660px;margin:0 0 24px;color:#a4b3ac;font-size:14px;line-height:1.85}
@media(max-width:900px){.portal-brand-entry{grid-template-columns:1fr;gap:28px}.portal-brand-copy h2,.portal-brand-copy p{max-width:680px}.portal-brand-art{justify-self:start;max-width:520px}}
@media(max-width:680px){.portal-brand-intro{padding-bottom:44px}.portal-brand-context{font-size:11px}.portal-brand-entry{padding:45px 20px}.portal-brand-copy h2{font-size:32px}.portal-brand-copy p{font-size:14px}.portal-brand-art{block-size:330px;padding:26px}.portal-brand-art:before{inset:12px}.portal-brand-art figcaption{font-size:10px}.portal-brand-next{width:calc(100% - 40px);padding:54px 0 62px}}
/* Full-bleed chapters give the public home a deliberate editorial rhythm. */
.portal-media-band,.portal-game-band{position:relative;inline-size:100%;isolation:isolate}.portal-media-band{margin:14px 0 0;padding:clamp(62px,8vw,116px) 0;color:#19352e;background:linear-gradient(118deg,#eadcc0 0%,#d9c297 52%,#e9d6ae 100%);border-block:1px solid #8f6a3455;overflow:clip}.portal-media-band:before{content:'';position:absolute;z-index:0;inset:0;pointer-events:none;opacity:.42;background:radial-gradient(circle at 84% 18%,#fff9e58c 0 2px,transparent 3px),linear-gradient(90deg,#27473d0d 1px,transparent 1px),linear-gradient(#27473d0d 1px,transparent 1px);background-size:auto,48px 48px,48px 48px}.portal-media-inner{position:relative;z-index:1;width:min(var(--portal-width),calc(100% - 96px));margin-inline:auto;padding:0;border:0;display:grid;grid-template-columns:minmax(260px,.66fr) 1.34fr;gap:clamp(42px,7vw,110px);align-items:center}.portal-media-copy h2{max-width:520px;color:#17322b;font-size:clamp(38px,3.4vw,56px);line-height:1.1}.portal-media-copy h2 em{color:#865126;font-weight:500}.portal-media-copy .portal-kicker{color:#70441f}.portal-media-copy>p:not(.portal-kicker){max-width:470px;margin:0 0 21px;color:#41574e;font-size:clamp(15px,1.05vw,18px);line-height:1.85}.portal-media-copy .portal-text-link{color:#70441f;font-weight:600}.portal-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border:solid #29463c50;border-width:1px 0;background:transparent;box-shadow:none}.portal-media-grid>div{min-width:0;min-height:0;padding:36px 16px;border-left:1px solid #29463c50;border-top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.portal-media-grid>div:nth-child(4n + 1){border-left:0}.portal-media-grid>div:nth-child(n + 5){border-top:1px solid #29463c50}.portal-media-grid dt{color:#5c6454;font:600 9px/1.45 'Manrope',sans-serif;letter-spacing:.15em;text-transform:uppercase}.portal-media-grid dd{margin:8px 0 4px;color:#19352e;font:500 clamp(30px,2.7vw,49px)/1 'Playfair Display',serif;letter-spacing:-.04em}.portal-media-grid small{display:block;color:#41574e;font-size:10px;line-height:1.45}.portal-game-band{margin-top:0;padding:clamp(68px,8vw,116px) 0;background:radial-gradient(circle at 82% 16%,#bb874d33,transparent 25%),radial-gradient(circle at 30% 120%,#64a08524,transparent 34%),linear-gradient(128deg,#102d27 0%,#183e34 55%,#0b211c 100%);border-block:1px solid #c49a5963;overflow:clip}.portal-game-band:before,.portal-game-band:after{content:'';position:absolute;z-index:0;pointer-events:none;border:1px solid #d9b96b24;transform:rotate(45deg)}.portal-game-band:before{width:490px;aspect-ratio:1;right:-230px;top:-210px;box-shadow:0 0 0 42px #d9b96b0a,0 0 0 84px #d9b96b08}.portal-game-band:after{width:300px;aspect-ratio:1;left:-190px;bottom:-200px}.portal-game-invite{position:relative;z-index:1;width:min(var(--portal-width),calc(100% - 96px));margin-inline:auto;padding:0;border:0;grid-template-columns:minmax(280px,.76fr) 1.24fr}.portal-game-invite-copy>p:not(.portal-kicker):not(.portal-note){color:#c1cec2}.portal-game-invite-copy .portal-note{color:#b0c3b5}.portal-game-dashboard{display:grid;gap:14px;min-width:0}.portal-game-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border:1px solid #e3c47a52;background:#071c17a6}.portal-game-stat-grid>div{min-width:0;padding:19px 16px;border-left:1px solid #e3c47a2c;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.portal-game-stat-grid>div:first-child{border-left:0}.portal-game-stat-grid dt{color:#b8c6bb;font:600 8px/1.4 'Manrope',sans-serif;letter-spacing:.14em;text-transform:uppercase}.portal-game-stat-grid dd{margin:7px 0 3px;color:#f3dfaa;font:500 clamp(25px,2.7vw,39px)/1 'Playfair Display',serif;letter-spacing:-.04em}.portal-game-stat-grid small{display:block;color:#aabbb0;font-size:10px;line-height:1.4}.portal-game-band .portal-journey-steps{max-width:none;background:radial-gradient(circle at 50% 45%,#c0944a2a,transparent 58%),linear-gradient(135deg,#102d25d9,#071b17d9);border-color:#d6b35e59}.portal-game-band .portal-journey-steps li{background:#09231dbd;border-color:#d6b35e2c}.portal-game-band .portal-journey-steps li:first-child{background:#284935;border-color:#dfbc6e7a}
@media(max-width:1000px){.portal-media-inner,.portal-game-invite{width:calc(100% - 64px);grid-template-columns:1fr;gap:34px}.portal-media-copy h2{max-width:600px}.portal-game-invite{padding:0}}
@media(max-width:680px){.portal-media-band,.portal-game-band{padding:52px 0}.portal-media-inner,.portal-game-invite{width:calc(100% - 40px)}.portal-media-copy h2{font-size:clamp(35px,10vw,47px)}.portal-media-copy>p:not(.portal-kicker){font-size:14px;margin:18px 0}.portal-media-grid>div{min-height:128px;padding:20px 15px}.portal-media-grid dd{font-size:42px}.portal-game-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-game-stat-grid>div{padding:16px 14px;border-left:1px solid #e3c47a2c;border-top:1px solid #e3c47a2c}.portal-game-stat-grid>div:nth-child(odd){border-left:0}.portal-game-stat-grid>div:nth-child(-n+2){border-top:0}.portal-game-stat-grid dd{font-size:33px}}
