@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600;700&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
	--ink: #efe9db;
	--ink-dark: #23261f;
	--muted: #aeb4a8;
	--paper: #f4efe4;
	--line: rgba(255,255,255,.11);
	--guild: #c48143;
	--gallery: #63aeb0;
	--scriptorium: #8f6fa8;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; min-height:100vh; font-family:"DM Sans",sans-serif; background:#141713; color:var(--ink); overflow-x:hidden; }
button,input,select,textarea { font:inherit; }
button { color:inherit; }
button:focus-visible,
[tabindex]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible { outline:3px solid rgba(242,201,130,.72); outline-offset:3px; }
input,select,textarea { color:inherit; }
textarea { resize:vertical; }
[hidden] { display:none!important; }
.grain { position:fixed; inset:0; pointer-events:none; opacity:.05; z-index:100; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }

/* Login */
.login-screen { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr); background:#10130f; }
.login-world { position:relative; overflow:hidden; background:linear-gradient(180deg,#18272c 0%,#283731 48%,#121712 100%); }
.login-world::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 58%,rgba(16,19,15,.7) 100%); }
.moon { position:absolute; width:130px; height:130px; border-radius:50%; top:9%; left:14%; background:#f4e7bd; box-shadow:0 0 90px rgba(249,226,164,.4); }
.mountains { position:absolute; left:-10%; width:120%; clip-path:polygon(0 100%,8% 56%,18% 74%,29% 26%,41% 68%,53% 34%,66% 75%,78% 42%,88% 69%,100% 32%,100% 100%); }
.mountain-a { height:48%; bottom:20%; background:#31483f; opacity:.75; }
.mountain-b { height:37%; bottom:14%; background:#1b2823; }
.inn { position:absolute; width:54%; min-width:430px; height:48%; left:22%; bottom:7%; z-index:3; filter:drop-shadow(0 25px 30px rgba(0,0,0,.4)); }
.inn-roof { position:absolute; width:108%; height:38%; left:-4%; top:0; background:#34271e; clip-path:polygon(7% 100%,15% 36%,40% 13%,49% 0,58% 12%,85% 34%,94% 100%); border-bottom:10px solid #1d1713; }
.inn-body { position:absolute; inset:31% 6% 0; border:8px solid #34271f; background:linear-gradient(90deg,#7c5b3a 0 4%,#c69b62 4% 48%,#755437 48% 52%,#c69b62 52% 96%,#765437 96%); }
.inn-body::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(53,38,25,.25) 3px,transparent 3px); background-size:100% 42px; }
.inn-window { position:absolute; width:18%; height:27%; top:18%; background:#ffd982; border:7px solid #4c3827; box-shadow:0 0 35px rgba(255,195,91,.45); }
.inn-window::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 46%,#5c422d 46% 54%,transparent 54%),linear-gradient(transparent 46%,#5c422d 46% 54%,transparent 54%); }
.w1{left:13%}.w2{right:13%}.inn-door{position:absolute;width:21%;height:48%;left:39.5%;bottom:0;background:#4a3324;border:7px solid #2b211a;border-radius:45% 45% 0 0}.inn-door::after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#e5bb69;right:18%;top:54%}
.sign { position:absolute; z-index:5; left:38%; top:18%; width:26%; height:21%; background:#4a2f1f; border:5px solid #281c15; transform:rotate(-2deg); display:grid; place-items:center; text-align:center; color:#f2d596; font:700 clamp(17px,2vw,28px)/.9 "Cormorant Garamond",serif; box-shadow:0 10px 18px rgba(0,0,0,.35); }
.sign::before,.sign::after{content:"";position:absolute;width:4px;height:45px;background:#1f1b16;top:-45px}.sign::before{left:18%}.sign::after{right:18%}
.fireflies i { position:absolute; width:4px; height:4px; border-radius:50%; background:#ffe99b; box-shadow:0 0 11px #ffe47e; animation:float 5s infinite ease-in-out; z-index:6; }
.fireflies i:nth-child(1){left:16%;top:55%}.fireflies i:nth-child(2){left:70%;top:48%;animation-delay:1s}.fireflies i:nth-child(3){left:32%;top:39%;animation-delay:2s}.fireflies i:nth-child(4){left:81%;top:62%;animation-delay:3s}.fireflies i:nth-child(5){left:10%;top:73%;animation-delay:1.5s}.fireflies i:nth-child(6){left:58%;top:27%;animation-delay:.5s}
@keyframes float { 50%{transform:translate(10px,-18px);opacity:.45} }
.login-panel { display:grid; place-items:center; padding:42px; background:radial-gradient(circle at 20% 20%,rgba(134,105,58,.11),transparent 34%),#161915; border-left:1px solid rgba(255,255,255,.07); }
.login-card { width:min(440px,100%); }
.seal,.brand-seal { width:52px;height:52px;border:1px solid rgba(224,185,107,.45);background:linear-gradient(145deg,#8f6335,#422e1f);display:grid;place-items:center;border-radius:16px;color:#f2d69b;font:700 20px "Cormorant Garamond",serif;box-shadow:inset 0 0 0 4px rgba(255,255,255,.04),0 10px 25px rgba(0,0,0,.22); }
.overline { margin:24px 0 9px; color:#c8aa6f; text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:800; }
.login-card h1 { margin:0; font:700 clamp(40px,4vw,58px)/.92 "Cormorant Garamond",serif; letter-spacing:-1px; }
.login-intro { color:var(--muted); line-height:1.6; max-width:390px; margin:16px 0 28px; }
.demo-banner { display:grid; gap:5px; margin:0 0 22px; padding:13px 15px; border:1px solid rgba(99,174,176,.3); border-radius:14px; background:rgba(46,94,91,.16); }
.demo-banner strong { color:#bce1d5; font-size:13px; }
.demo-banner span { color:#aebdb7; font-size:12px; line-height:1.5; }
.login-card form { display:grid; gap:17px; }
.login-card label>span { display:block; font-size:12px; font-weight:700; margin-bottom:8px; color:#d8d8ce; }
.field-wrap { min-height:55px; display:flex; align-items:center; gap:10px; padding:0 14px; border:1px solid rgba(255,255,255,.11); background:#20241e; border-radius:15px; transition:.2s; }
.field-wrap:focus-within { border-color:rgba(211,164,91,.7); box-shadow:0 0 0 4px rgba(197,133,63,.09); }
.field-icon { color:#c5a167; }
.field-wrap input { min-width:0; flex:1; border:0; outline:0; background:transparent; color:white; }
.field-wrap input::placeholder { color:#71786e; }
.reveal-password,.text-button { border:0;background:transparent;cursor:pointer;color:#c7a56e;font-size:12px;font-weight:700; }
.login-options { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.remember { display:flex!important; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
.remember span { margin:0!important; color:var(--muted)!important; font-weight:500!important; }
.remember input { accent-color:#b8793f; }
.login-submit,.secondary-login,.modal-primary { width:100%; border:0; border-radius:15px; min-height:55px; cursor:pointer; font-weight:800; }
.login-submit { background:linear-gradient(135deg,#c88847,#8e5630); box-shadow:0 15px 35px rgba(152,88,42,.23); display:flex;align-items:center;justify-content:space-between;padding:0 19px; }
.login-submit b { font-size:22px; }
.login-divider { display:flex; align-items:center; gap:12px; margin:24px 0 14px; color:#777e74; font-size:11px; }
.login-divider::before,.login-divider::after { content:""; height:1px; background:rgba(255,255,255,.08); flex:1; }
.secondary-login { background:transparent; border:1px solid rgba(255,255,255,.12); }
.demo-note { margin:15px 0 0; color:#959d92; font-size:11px; line-height:1.5; text-align:center; }

/* App shell */
.app-shell { min-height:100vh; background:radial-gradient(circle at 15% 0%,rgba(129,82,42,.14),transparent 30%),radial-gradient(circle at 100% 5%,rgba(71,117,111,.12),transparent 32%),#171a16; }
.app-header { position:sticky; top:0; z-index:50; min-height:82px; display:flex; align-items:center; gap:28px; padding:12px max(24px,calc((100vw - 1540px)/2)); border-bottom:1px solid rgba(255,255,255,.08); background:rgba(20,23,19,.88); backdrop-filter:blur(22px); }
.brand-button { min-width:280px; border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer; }
.brand-seal { width:44px;height:44px;border-radius:13px;font-size:17px; }
.brand-button strong,.brand-button small { display:block; }.brand-button strong{font:700 19px "Cormorant Garamond",serif}.brand-button small{color:var(--muted);font-size:10px;margin-top:2px}
.portal-date { color:#c9bda7; font-family:"Cormorant Garamond",serif; font-size:17px; font-weight:700; text-transform:capitalize; white-space:nowrap; }
.app-nav { flex:1; display:flex; justify-content:center; gap:6px; }
.nav-button { border:0;background:transparent;padding:10px 15px;border-radius:12px;color:#959d91;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px; }
.nav-button.active,.nav-button:hover { background:#242821;color:#f0eadf; }
.account-zone { position:relative;display:flex;align-items:center;gap:12px; }
.account-score { text-align:right;line-height:1.05 }.account-score strong,.account-score small{display:block}.account-score small{color:var(--muted);font-size:10px;margin-top:4px}.profile-button{width:42px;height:42px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:#2c352d;cursor:pointer;font-weight:800}.profile-menu{position:absolute;right:0;top:52px;width:210px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#20241e;border-radius:15px;box-shadow:0 18px 50px rgba(0,0,0,.35);display:none}.profile-menu.open{display:block}.profile-menu>div{padding:9px}.profile-menu strong,.profile-menu small{display:block}.profile-menu small{font-size:10px;color:var(--muted);margin-top:3px}.profile-menu button{width:100%;border:0;border-radius:10px;background:#2b3028;padding:10px;text-align:left;cursor:pointer;margin-top:6px;color:#d8c8b8}
.main-stage { width:min(1540px,calc(100% - 48px)); margin:0 auto; }
.view { display:none; padding:46px 0 65px; animation:fade .35s ease; }.view.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.home-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; margin-bottom:20px; }
.home-heading h2,.scores-title-row h2 { margin:0; font:700 clamp(38px,4vw,58px)/.95 "Cormorant Garamond",serif; letter-spacing:-1px; }
.portal-status .daily-ring { background:linear-gradient(145deg,#a66e37,#5f4329); }
.portal-status .daily-ring::before { display:none; }
.portal-status .daily-ring span { transform:none; font:700 24px "Cormorant Garamond",serif; }
.portal-intro { display:flex; gap:14px; align-items:flex-start; margin:0 0 20px; padding:16px 18px; border:1px solid rgba(200,137,71,.2); border-radius:18px; background:linear-gradient(120deg,rgba(98,65,35,.22),rgba(40,55,47,.2)); }
.portal-intro-mark { flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:#5b4328; color:#f2c982; }
.portal-intro strong { display:block; color:#efe7d7; font-size:14px; }
.portal-intro p { margin:5px 0 0; color:#aeb4a8; font-size:13px; line-height:1.55; }
.world-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.world-card { position:relative; z-index:1; min-width:0; border:1px solid rgba(255,255,255,.09);border-radius:26px;overflow:hidden;background:#1d211b;box-shadow:0 28px 70px rgba(0,0,0,.24);transition:.3s ease;outline:0; cursor:default }.world-card[data-world]{cursor:pointer}.world-card[data-world]:hover,.world-card[data-world]:focus{z-index:2;transform:translateY(-7px);box-shadow:0 34px 90px rgba(0,0,0,.33)}
.world-scene { height:270px;position:relative;overflow:hidden;margin:8px;border-radius:20px; }
.guild-scene{background:linear-gradient(#392c22,#201a16)}.tavern-wall{position:absolute;inset:0;background:linear-gradient(90deg,#8e6540 0 3%,#c08b56 3% 48%,#68472f 48% 52%,#bd8753 52% 97%,#7b5439 97%);opacity:.8}.tavern-wall::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(54,37,26,.3) 4px,transparent 4px);background-size:100% 52px}.tavern-beam{position:absolute;background:#3e2b20;z-index:2}.beam-a{width:100%;height:18px;top:30px}.beam-b{width:18px;height:100%;left:25%}.guild-window{position:absolute;right:8%;top:16%;width:28%;height:36%;border:8px solid #453022;border-radius:50% 50% 8px 8px;background:#f3c76f;box-shadow:0 0 35px rgba(242,177,72,.28);z-index:3}.guild-window span{position:absolute;inset:0;background:linear-gradient(90deg,transparent 46%,#533a28 46% 54%,transparent 54%),linear-gradient(transparent 48%,#533a28 48% 56%,transparent 56%)}.guild-board{position:absolute;left:7%;top:17%;width:37%;height:39%;background:#5c402b;border:6px solid #34251c;transform:rotate(-3deg);z-index:3;padding:15px}.guild-board i{display:block;height:8px;background:#d4b889;margin:10px 0;border-radius:5px;opacity:.75}.guild-table{position:absolute;left:0;right:0;bottom:-8%;height:29%;background:#593a27;border-top:10px solid #7b5434;z-index:6}.mug{position:absolute;width:37px;height:45px;left:16%;top:-24px;background:#a88451;border-radius:4px 4px 10px 10px;border:4px solid #493524}.mug::after{content:"";position:absolute;width:19px;height:23px;border:5px solid #493524;border-left:0;border-radius:0 50% 50% 0;right:-20px;top:7px}.dice{position:absolute;right:15%;top:-18px;background:#eee3c8;color:#352c23;padding:10px;border-radius:9px;transform:rotate(12deg)}.guild-character{position:absolute;left:43%;bottom:15%;z-index:5}.guild-character .hood{display:block;width:62px;height:67px;border-radius:48% 48% 36% 36%;background:#6e5637;border:5px solid #392c20}.guild-character .body{display:block;width:96px;height:86px;margin-left:-17px;margin-top:-6px;border-radius:42% 42% 0 0;background:#5f6e46}.scene-light{position:absolute;width:280px;height:280px;border-radius:50%;right:-100px;top:-110px;background:rgba(255,202,98,.18);filter:blur(20px)}
.gallery-scene{background:#b9dce0}.open-window{position:absolute;inset:18px 29px;border:9px solid #f2ede0;background:#9ed2de;overflow:hidden;box-shadow:inset 0 0 0 2px rgba(47,97,104,.15)}.open-window::after{content:"";position:absolute;left:49%;top:0;bottom:0;width:7px;background:#f2ede0}.sky{position:absolute;inset:0;background:linear-gradient(#9ed6e5,#e8d8ac)}.sun{position:absolute;width:52px;height:52px;border-radius:50%;right:14%;top:14%;background:#fff1b7;box-shadow:0 0 26px #fff0ad}.far-hill,.near-hill{position:absolute;border-radius:50% 50% 0 0;bottom:-18%}.far-hill{width:110%;height:56%;left:-18%;background:#84ad8e;transform:rotate(5deg)}.near-hill{width:105%;height:45%;right:-28%;background:#527c68;transform:rotate(-8deg)}.river{position:absolute;width:35%;height:70%;left:42%;bottom:-35%;background:#8bc8d4;transform:rotate(16deg);border-radius:50%}.fox-mark{position:absolute;left:30%;bottom:20%;color:#d46f42;font-size:48px;transform:rotate(45deg)}.curtain{position:absolute;top:-8%;height:116%;width:31%;background:linear-gradient(90deg,#f0eee6,#c7d6d0);z-index:5;opacity:.93}.curtain.left{left:-15%;transform:rotate(-5deg);border-radius:0 45% 50% 0}.curtain.right{right:-15%;transform:rotate(5deg);border-radius:45% 0 0 50%}.postcard{position:absolute;width:75px;height:98px;bottom:12px;background:#f3ead7;border:6px solid white;box-shadow:0 8px 18px rgba(36,68,72,.22);z-index:6}.card-a{left:18px;transform:rotate(-9deg);background:linear-gradient(#f1eadf 55%,#9dbea9 55%)}.card-b{right:19px;transform:rotate(8deg);background:linear-gradient(#e5d5ad 48%,#6fa1a5 48%)}
.scriptorium-scene{background:#26202b}.stone-wall{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.03) 2px,transparent 2px),linear-gradient(rgba(255,255,255,.04) 2px,transparent 2px),#473b4c;background-size:72px 42px,72px 42px;background-position:0 0,36px 21px}.arched-window{position:absolute;right:8%;top:9%;width:28%;height:47%;border:9px solid #251d29;border-radius:50% 50% 5px 5px;overflow:hidden;z-index:2}.night{position:absolute;inset:0;background:linear-gradient(#202b4d,#5c5277)}.arched-window i{position:absolute;width:25px;height:25px;border-radius:50%;background:#e9dbad;top:18%;right:20%;box-shadow:0 0 20px #e9dbad}.candle{position:absolute;left:13%;top:24%;z-index:6}.candle span{display:block;width:17px;height:75px;background:#e2cf9c;border-radius:7px 7px 2px 2px}.candle i{position:absolute;width:16px;height:25px;border-radius:50% 50% 45% 45%;background:#ffc45d;top:-26px;left:1px;box-shadow:0 0 28px #ffb84e}.desk{position:absolute;left:0;right:0;bottom:-3%;height:35%;background:#503728;border-top:10px solid #76513a;z-index:5}.scroll{position:absolute;left:22%;top:-37px;width:51%;height:82px;background:#ead8ad;border-radius:6px;transform:rotate(-3deg);box-shadow:0 8px 16px rgba(0,0,0,.25);padding:15px 23px;color:#49372f;font:700 21px "Cormorant Garamond",serif;letter-spacing:.27em}.scroll i{display:block;height:4px;background:#8f7458;margin-top:8px;opacity:.55}.inkwell{position:absolute;width:35px;height:35px;right:17%;top:-18px;background:#18161c;border-radius:8px}.quill{position:absolute;width:7px;height:95px;background:#cfbf9f;right:14%;top:-84px;transform:rotate(25deg);border-radius:100% 0}.runes{position:absolute;left:19%;top:12%;display:flex;gap:8px;z-index:3}.runes b{width:33px;height:37px;display:grid;place-items:center;border:1px solid rgba(229,208,161,.4);background:rgba(38,29,42,.65);border-radius:8px;color:#d8c595;font-family:"Cormorant Garamond",serif;box-shadow:0 0 14px rgba(210,174,113,.12)}
.world-content { padding:17px 20px 20px; }
.world-label { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.world-label span{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#aaa99c;font-weight:800}.world-label b{font-size:11px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.06);color:#d5c8b0}.gallery-card .world-label b{color:#9bd8da}.scriptorium-card .world-label b{color:#c3a6d6}
.world-content h3 { margin:0;font:700 32px/1 "Cormorant Garamond",serif }.world-content>p{color:#b5bbb1;font-size:14px;line-height:1.55;margin:11px 0}.world-content ul{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:15px 0 18px}.world-content li{padding:8px 10px;border-radius:8px;background:#262b23;color:#d1d4cd;font-size:12px}.world-footer{display:flex;align-items:center;border-top:1px solid rgba(255,255,255,.07);padding-top:14px}.world-footer span{color:#9ba197;font-size:12px}.world-footer span strong{display:inline;color:#e5e1d8;font-size:15px}
.world-card--paused { opacity:.72; box-shadow:none; }
.world-card--paused:hover { transform:none; box-shadow:none; }
.world-card--paused .world-scene { filter:saturate(.55); }
.world-card--paused button:disabled { cursor:not-allowed; color:#aaa; background:#353238; }
.home-bottom{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-top:18px}.streak-card,.score-callout{min-height:92px;border:1px solid rgba(255,255,255,.08);background:#1e221c;border-radius:20px;padding:17px 20px}.streak-card{display:flex;align-items:center;gap:14px}.flame{width:45px;height:45px;border-radius:14px;background:#503b25;display:grid;place-items:center;color:#e2a455;font-size:22px}.streak-card strong,.streak-card small{display:block}.streak-card small{color:var(--muted);font-size:10px;margin-top:3px}.week{display:flex;gap:5px;margin-left:auto}.week i{font-style:normal;width:28px;height:28px;border-radius:9px;background:#292e26;display:grid;place-items:center;color:#727a70;font-size:9px}.week i.done{background:#6d5535;color:#f1dba9}.week i.today{box-shadow:inset 0 0 0 2px #bf8042;color:#eec78a}.score-callout{display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.score-callout span small,.score-callout span strong{display:block}.score-callout span small{color:#7eaeb0;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.score-callout span strong{font:700 21px "Cormorant Garamond",serif;margin-top:5px}.score-callout>b{font-size:11px;color:#c9d5d0}

/* Scores */
.back-home{border:0;background:transparent;color:#bba982;padding:0;cursor:pointer;font-weight:700;margin-bottom:18px}.scores-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.scores-title-row .overline{margin:0 0 7px}.global-badge{flex:none;min-width:185px;padding:15px 18px;border:1px solid rgba(255,255,255,.09);background:#1f231d;border-radius:18px}.global-badge span,.global-badge strong,.global-badge small{display:block}.global-badge span,.global-badge small{font-size:10px;color:var(--muted)}.global-badge strong{font:700 28px "Cormorant Garamond",serif;margin:4px 0}.score-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0 13px}.score-tabs button{min-width:0;border:1px solid rgba(255,255,255,.08);background:#1e221c;border-radius:17px;padding:12px 14px;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;opacity:.58;transition:.25s}.score-tabs button.active{opacity:1;transform:translateY(-2px)}.score-tabs button>span{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#30352d;font-weight:800}.score-tabs small,.score-tabs strong{display:block}.score-tabs small{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#8f968c}.score-tabs strong{font:700 18px "Cormorant Garamond",serif}.score-tabs .guild-tab.active{border-color:rgba(196,129,67,.55);background:rgba(116,73,37,.25)}.score-tabs .gallery-tab.active{border-color:rgba(99,174,176,.55);background:rgba(45,99,101,.24)}.score-tabs .scriptorium-tab.active{border-color:rgba(143,111,168,.55);background:rgba(88,64,101,.25)}
.score-workspace{display:grid;grid-template-columns:1.25fr .75fr .75fr .75fr;gap:12px}.score-hero,.distribution-card,.best-performance,.recent-scores{border:1px solid rgba(255,255,255,.08);background:#1d211b;border-radius:21px}.score-hero{grid-column:1/-1;display:grid;grid-template-columns:1.55fr repeat(4,.62fr);gap:10px;padding:13px}.score-identity,.score-main-number,.score-stat{min-width:0;padding:13px;border-radius:15px;background:#242920}.score-identity{display:flex;align-items:center;gap:13px}.score-emblem{width:51px;height:51px;display:grid;place-items:center;border-radius:15px;background:#7d5131;font-size:21px}.score-identity small,.score-identity h3,.score-identity p{display:block;margin:0}.score-identity small{font-size:8px;text-transform:uppercase;letter-spacing:.13em;color:#a69884}.score-identity h3{font:700 21px "Cormorant Garamond",serif;margin:3px 0}.score-identity p{font-size:10px;color:#8e968b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-main-number span,.score-main-number strong,.score-main-number small,.score-stat span,.score-stat strong,.score-stat small{display:block}.score-main-number span,.score-stat span{font-size:9px;color:#8f968b}.score-main-number strong{font:700 29px "Cormorant Garamond",serif;margin:7px 0 2px}.score-main-number small,.score-stat small{font-size:9px;color:#a2a99f}.score-stat strong{font-size:20px;margin:8px 0 3px}.distribution-card{grid-column:1/4;padding:18px}.distribution-head{display:flex;align-items:center;justify-content:space-between}.distribution-head small,.distribution-head strong{display:block}.distribution-head small{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#8d958a}.distribution-head strong{margin-top:4px}.distribution-head span{font-size:11px;font-weight:800;color:#d39a62}.histogram{height:155px;display:flex;align-items:flex-end;gap:9px;margin-top:14px;padding:12px 12px 0;background:linear-gradient(transparent 24%,rgba(255,255,255,.035) 25%,transparent 26%,transparent 49%,rgba(255,255,255,.035) 50%,transparent 51%,transparent 74%,rgba(255,255,255,.035) 75%,transparent 76%);border-bottom:1px solid rgba(255,255,255,.1)}.histogram i{flex:1;height:var(--h);min-width:7px;border-radius:7px 7px 1px 1px;background:#353b32}.guild-workspace .histogram i.you{background:var(--guild)}.gallery-workspace .histogram i.you{background:var(--gallery)}.scriptorium-workspace .histogram i.you{background:var(--scriptorium)}.hist-axis{display:flex;justify-content:space-between;color:#747c72;font-size:8px;margin-top:7px}.best-performance{padding:18px;display:flex;flex-direction:column}.best-performance>small{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#8c9388}.best-performance>div{display:flex;align-items:center;gap:12px;margin:16px 0}.best-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#70472c;font-size:20px}.best-performance strong,.best-performance p{display:block;margin:0}.best-performance strong{font:700 19px "Cormorant Garamond",serif}.best-performance p{font-size:9px;color:#939b91;margin-top:4px}.best-performance button{margin-top:auto;border:0;border-radius:11px;background:#2b3028;padding:11px;cursor:pointer;font-size:10px;font-weight:800}.recent-scores{grid-column:1/-1;padding:17px}.recent-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.recent-head small,.recent-head strong{display:block}.recent-head small{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#8e958b}.recent-head strong{margin-top:3px}.recent-head select{border:1px solid rgba(255,255,255,.09);background:#272c24;color:#dcd8cf;padding:8px 28px 8px 10px;border-radius:10px;outline:0;font-size:9px}.recent-list{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.recent-item{padding:12px;border-radius:14px;background:#242920;display:flex;align-items:center;gap:10px}.recent-item>span{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;background:#32372f;font-weight:800}.recent-item strong,.recent-item small{display:block}.recent-item strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.recent-item small{font-size:8px;color:#8e968b;margin-top:4px}
.gallery-workspace .score-emblem,.gallery-workspace .best-icon{background:#356e71}.scriptorium-workspace .score-emblem,.scriptorium-workspace .best-icon{background:#5e496d}

/* Modal */
.modal-backdrop{position:fixed;inset:0;z-index:200;background:rgba(5,7,5,.75);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.modal{width:min(410px,100%);position:relative;background:#22261f;border:1px solid rgba(255,255,255,.1);border-radius:23px;padding:30px;text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.55)}.modal-close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;cursor:pointer;color:#8e968b}.modal-icon{width:50px;height:50px;border-radius:15px;background:#4f3c28;display:grid;place-items:center;margin:0 auto 14px;color:#e7b76f}.modal h3{font:700 27px "Cormorant Garamond",serif;margin:0}.modal p{color:#a7aea4;font-size:13px;line-height:1.55}.modal-primary{background:#9a6437;min-height:47px;margin-top:7px}

/* Administration locale */
.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px}.admin-heading .overline{margin:0 0 8px}.admin-heading h2{margin:0;font:700 clamp(40px,4.4vw,64px)/.95 "Cormorant Garamond",serif;letter-spacing:-1px}.admin-heading>div>p:not(.overline){max-width:760px;margin:12px 0 0;color:var(--muted);font-size:15px;line-height:1.65}.admin-notice{flex:0 0 330px;padding:16px 18px;border:1px solid rgba(213,164,93,.28);border-radius:18px;background:rgba(104,73,35,.18)}.admin-notice strong,.admin-notice span{display:block}.admin-notice strong{color:#f0c98d;font-size:14px}.admin-notice span{margin-top:6px;color:#b8b5aa;font-size:12px;line-height:1.5}.admin-layout{display:grid;grid-template-columns:minmax(310px,.7fr) minmax(0,1.3fr);gap:18px;align-items:start}.task-form,.task-board{border:1px solid rgba(255,255,255,.09);border-radius:22px;background:#1d211b}.task-form{display:grid;gap:16px;padding:20px;position:sticky;top:102px}.task-form-heading{display:flex;align-items:center;gap:12px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.08)}.task-form-heading>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#5b4328;color:#f2c982}.task-form-heading small,.task-form-heading strong{display:block}.task-form-heading small{color:#a09e94;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.task-form-heading strong{margin-top:3px;font:700 21px "Cormorant Garamond",serif}.task-form label>span{display:block;margin-bottom:7px;color:#d8d6cd;font-size:13px;font-weight:700}.task-form input,.task-form select,.task-form textarea,.task-toolbar select,.task-card-footer select{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:11px;outline:none;background:#252a23;padding:11px 12px;font-size:14px}.task-form input:focus,.task-form select:focus,.task-form textarea:focus,.task-toolbar select:focus,.task-card-footer select:focus{border-color:#c99452;box-shadow:0 0 0 3px rgba(201,148,82,.12)}.task-submit{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:0 16px;border:0;border-radius:13px;background:linear-gradient(135deg,#a66e37,#74502f);cursor:pointer;font-weight:800}.task-board{padding:18px;min-height:460px}.task-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:2px 2px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.task-toolbar small,.task-toolbar strong{display:block}.task-toolbar small{color:#a09e94;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.task-toolbar strong{margin-top:4px;font:700 24px "Cormorant Garamond",serif}.task-toolbar label{min-width:165px}.task-toolbar label span{display:block;margin-bottom:6px;color:#9fa69b;font-size:11px}.task-list{display:grid;gap:12px;margin-top:16px}.task-card{padding:17px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:#242920}.task-card-top,.task-card-footer,.task-tags{display:flex;align-items:center;gap:8px}.task-card-top,.task-card-footer{justify-content:space-between}.task-tags{flex-wrap:wrap}.task-tags span,.task-tags b,.task-status{padding:5px 8px;border-radius:999px;font-size:11px}.task-tags span{background:#30362d;color:#c7cbc2}.task-tags b{font-weight:700}.priority-high{background:#5b302b;color:#f0aaa0}.priority-normal{background:#3c4d43;color:#aaceb9}.priority-later{background:#3c3946;color:#c4b7d7}.task-status{border:1px solid rgba(255,255,255,.1);color:#c9cec5}.status-todo{color:#f0c98d}.status-in_progress{color:#8ed4d2}.status-done{color:#9ed29d}.status-abandoned{color:#a7aaa4}.task-card h3{margin:14px 0 7px;font:700 24px/1.1 "Cormorant Garamond",serif}.task-card>p{margin:0;color:#b3b8ae;font-size:14px;line-height:1.6;white-space:pre-line}.task-criteria{margin-top:14px;padding:13px 14px;border-radius:12px;background:#1c201a}.task-criteria strong{font-size:12px;color:#e3d3ba}.task-criteria ul{margin:8px 0 0;padding-left:20px;color:#aeb5aa;font-size:13px;line-height:1.6}.task-card-footer{margin-top:15px;padding-top:13px;border-top:1px solid rgba(255,255,255,.07)}.task-card-footer>small{color:#858c82;font-size:11px}.task-card-footer label{display:flex;align-items:center;gap:8px}.task-card-footer label span{color:#969d92;font-size:11px}.task-card-footer select{width:auto;padding:8px 28px 8px 9px;font-size:12px}.task-empty{padding:70px 20px;text-align:center;color:#899087}.task-empty>span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 13px;border-radius:16px;background:#292f27;color:#d2aa70;font-size:25px}.task-empty strong{display:block;color:#d8dbd4;font:700 22px "Cormorant Garamond",serif}.task-empty p{margin:7px 0 0;font-size:13px}

@media(max-width:1180px){.world-grid{grid-template-columns:1fr}.world-card{display:grid;grid-template-columns:.8fr 1.2fr}.world-scene{height:auto;min-height:330px}.score-hero{grid-template-columns:1.4fr repeat(2,1fr)}.score-identity{grid-column:1/-1}.score-workspace{grid-template-columns:1fr 1fr}.distribution-card{grid-column:1}.best-performance{grid-column:2}.recent-scores{grid-column:1/-1}.recent-list{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.login-screen{grid-template-columns:1fr}.login-world{display:none}.login-panel{min-height:100vh}.app-header{padding:10px 14px;backdrop-filter:none}.brand-button{min-width:0}.brand-button small,.account-score{display:none}.portal-date{margin-left:auto;font-size:14px}.app-nav{position:fixed;bottom:10px;left:10px;right:10px;background:rgba(31,35,29,.94);border:1px solid rgba(255,255,255,.1);padding:6px;border-radius:17px;z-index:70}.nav-button{flex:1;justify-content:center;font-size:12px}.main-stage{width:calc(100% - 24px)}.view{padding-top:30px;padding-bottom:95px}.home-heading,.scores-title-row,.admin-heading{align-items:flex-start;flex-direction:column}.daily-progress,.global-badge,.admin-notice{align-self:stretch;flex-basis:auto}.world-card{display:block}.world-scene{height:275px;min-height:0}.home-bottom{grid-template-columns:1fr}.score-tabs{grid-template-columns:1fr}.score-workspace{display:block}.score-hero{display:grid;grid-template-columns:1fr 1fr;margin-bottom:10px}.score-identity{grid-column:1/-1}.distribution-card,.best-performance,.recent-scores{margin-bottom:10px}.recent-list{grid-template-columns:1fr}.week{display:none}.admin-layout{grid-template-columns:1fr}.task-form{position:static}.task-board{min-height:360px}}
@media(max-width:520px){.login-panel{padding:24px}.app-header{gap:10px}.brand-button strong{font-size:15px}.profile-button{width:38px;height:38px}.nav-button{padding:9px 7px;font-size:0}.nav-button span{font-size:16px}.world-footer{grid-template-columns:1fr 1fr}.world-footer button{grid-column:1/-1;width:100%;justify-self:stretch}.score-hero{grid-template-columns:1fr}.score-identity{grid-column:auto}.score-tabs button{padding:9px}.home-heading h2,.scores-title-row h2,.admin-heading h2{font-size:43px}.world-content h3{font-size:28px}.task-toolbar,.task-card-footer{align-items:flex-start;flex-direction:column}.task-toolbar label,.task-card-footer label,.task-card-footer select{width:100%}}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior:auto; }
	.fireflies i,
	.view { animation:none; }
	.world-card,
	.retour-portail { transition:none; }
}

@media(max-width:520px){
	.server-authenticated .app-nav .nav-button{font-size:11px}
	.server-authenticated .app-nav .nav-button span{font-size:14px}
}

/* Portail unifié et accès événementiel. */
.halloween-scene{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 100%,#a64d3155,transparent 40%),linear-gradient(#21191d,#0c0d0c)}
.portal-column{position:absolute;top:24px;bottom:0;width:44px;background:repeating-linear-gradient(90deg,#514b44 0 7px,#8b7b64 7px 12px)}
.portal-column:before{content:"";position:absolute;left:-9px;right:-9px;top:-9px;height:15px;background:#9c886b}
.portal-column.left{left:25px}.portal-column.right{right:25px}
.portal-flame{display:grid;place-items:center;width:88px;height:88px;margin:55px auto;border-radius:50%;background:#241b1ddd;color:#d7a85f;font:700 52px/1 Georgia,serif;box-shadow:0 0 42px #b94d35}
.header-profile-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
body{background-image:radial-gradient(circle at 15% 0%,#29382f 0,transparent 35%),repeating-linear-gradient(117deg,#ffffff05 0 1px,transparent 1px 5px)}
@media(max-width:760px){.header-profile-name{display:none}}

/* Portail parcheminé et illustrations des univers. */
.brand-seal,.seal{overflow:hidden;padding:0;background:#211d19}.brand-seal img,.seal img{display:block;width:100%;height:100%;object-fit:cover}
.app-shell{position:relative;background:radial-gradient(circle at 14% 0%,rgba(90,116,90,.25),transparent 34%),radial-gradient(circle at 88% 12%,rgba(139,101,54,.18),transparent 35%),linear-gradient(125deg,#20251f,#171b17 58%,#25231d)}
.app-shell::before{content:"";position:fixed;inset:82px 0 0;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.018 .085' numOctaves='4' seed='7'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='.42'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.main-stage{position:relative}
.medieval-die{position:absolute;right:16%;top:-23px;width:48px;height:48px;border:4px solid #6b4d2f;border-radius:11px;background:linear-gradient(145deg,#e8d5aa,#bda272);box-shadow:0 10px 16px #20130c99,inset 5px 5px 8px #fff5;transform:rotate(9deg)}
.medieval-die i{position:absolute;width:7px;height:7px;border-radius:50%;background:#4b3425;box-shadow:inset 0 1px 1px #000}.medieval-die i:nth-child(1){left:9px;top:9px}.medieval-die i:nth-child(2){right:9px;top:9px}.medieval-die i:nth-child(3){left:20px;top:20px}.medieval-die i:nth-child(4){left:9px;bottom:9px}.medieval-die i:nth-child(5){right:9px;bottom:9px}
.medieval-token{position:absolute;top:-10px;width:31px;height:12px;border:3px solid #5c4028;border-radius:50%;background:repeating-conic-gradient(#c69b58 0 12deg,#7b4f32 12deg 24deg);box-shadow:0 4px 0 #49301f,0 7px 10px #1c100b99}.token-one{right:7%;transform:rotate(-8deg)}.token-two{right:3%;top:13px;transform:rotate(13deg)}.token-three{right:25%;top:14px;transform:rotate(-18deg)}
.halloween-scene{background:radial-gradient(ellipse at 50% 20%,#e8c68f 0,#aa7954 24%,transparent 45%),linear-gradient(#73543f 0,#312429 48%,#090d13 100%);perspective:500px}
.halloween-scene::before{content:"";position:absolute;left:20%;right:20%;top:0;height:64%;background:linear-gradient(90deg,#e9ddc388,transparent 22% 78%,#e9ddc388),linear-gradient(#7c5e4d,#17161b);clip-path:polygon(10% 0,90% 0,100% 100%,0 100%)}
.temple-drape{position:absolute;z-index:6;top:-12%;width:37%;height:72%;background:linear-gradient(100deg,#f1e4c7,#b69b79 55%,#725845);filter:drop-shadow(0 8px 10px #0008)}.drape-left{left:-15%;border-radius:0 0 70% 25%;transform:rotate(-5deg)}.drape-right{right:-15%;border-radius:0 0 25% 70%;transform:rotate(5deg)}
.portal-column{z-index:5;top:18px;width:38px;border:2px solid #d4bf94;background:repeating-linear-gradient(90deg,#8c785f 0 6px,#d7c49e 6px 11px,#796550 11px 17px)}.portal-column.left{left:17%}.portal-column.right{right:17%}.portal-column::after{content:"";position:absolute;left:-8px;right:-8px;bottom:0;height:13px;background:#a9926f;border:2px solid #d1bc91}
.styx-river{position:absolute;z-index:2;left:30%;right:30%;bottom:-20%;height:64%;border-radius:50% 50% 0 0;background:linear-gradient(90deg,#11141d,#41687599 48%,#18202b);filter:drop-shadow(0 0 12px #6aa5a755);transform:perspective(160px) rotateX(48deg)}
.underworld-gate{position:absolute;z-index:3;left:42%;right:42%;top:20%;height:43%;border:7px solid #17131a;border-bottom:0;border-radius:50% 50% 0 0;background:radial-gradient(circle at 50% 80%,#a4422e55,transparent 40%),#080a0d;box-shadow:0 0 22px #000}
.portal-hades{position:absolute;z-index:4;left:calc(50% - 27px);top:31%;width:54px;height:104px;filter:drop-shadow(0 6px 9px #000)}.hades-crown{position:absolute;left:9px;top:0;width:36px;height:18px;background:#342837;clip-path:polygon(0 100%,8% 18%,29% 61%,50% 0,70% 61%,92% 18%,100% 100%)}.hades-face{position:absolute;left:13px;top:13px;width:28px;height:33px;border-radius:48% 48% 42% 42%;background:#4b3a42}.hades-robe{position:absolute;left:3px;right:3px;top:40px;bottom:0;border-radius:45% 45% 10% 10%;background:linear-gradient(#332738,#17151f);clip-path:polygon(25% 0,75% 0,100% 100%,0 100%)}
.portal-brazier{position:absolute;z-index:7;bottom:30%;width:11px;height:29px;border-radius:50% 50% 45% 45%;background:#ff9d45;box-shadow:0 0 10px #ff6b35,0 0 25px #df6034;animation:portal-fire 1.7s ease-in-out infinite alternate}.brazier-left{left:30%}.brazier-right{right:30%;animation-delay:-.8s}.portal-brazier::after{content:"";position:absolute;top:27px;left:-6px;width:23px;height:5px;border-radius:50%;background:#75604b}
.greek-card-title{font-family:Georgia,"Times New Roman",serif!important;letter-spacing:.025em}.greek-card-title strong{font-weight:900;color:#efcc8e}
@keyframes portal-fire{to{transform:translateY(-3px) scale(.86,1.12);filter:hue-rotate(-9deg)}}
@media(prefers-reduced-motion:reduce){.portal-brazier{animation:none}}
