@import url('fonts/fonts.css');
:root{--ink:#142f37;--muted:#697877;--gold:#efb34a;--paper:#fff9ea;--green:#267756;--line:#ded8c7;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f2efe6;color:var(--ink);font-family:var(--sans);font-size:15px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #107b8b;outline-offset:4px}button:disabled{cursor:default}svg{width:24px;height:24px;vertical-align:middle}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:auto;padding:0 5%}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:2px;font-size:23px}.brand .brand-logo{height:48px;width:auto;display:block}.brand small{display:block;font-size:8px;letter-spacing:3.6px;margin-top:3px}.brand-seven{color:#bc8632}.top-actions{display:flex;gap:12px;align-items:center}.prototype{font-size:10px;font-weight:700;letter-spacing:2px;margin-right:12px}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:22px}.icon-button:hover{background:#e6dfd0}main{max-width:1440px;margin:auto;padding:0 4%}.hero{min-height:640px;position:relative;overflow:hidden;border-radius:20px;background:#849788 url('assets/carthage.webp') center 53%/cover;color:white;display:flex;align-items:center}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,32,37,.88),rgba(8,35,38,.36) 55%,rgba(8,35,38,.05))}.hero-content{position:relative;padding:64px 6%;max-width:690px}.eyebrow{font-size:11px;letter-spacing:3px;font-weight:700;display:flex;align-items:center;gap:10px;text-transform:uppercase}.hero .eyebrow{color:#f1ca7f}.eyebrow:before{content:'';width:28px;height:1px;background:currentColor}h1,h2,h3,p{margin-top:0}.hero h1{font-family:var(--serif);font-size:90px;font-weight:600;line-height:.92;letter-spacing:-2px;margin:22px 0}.hero h1 em{font-style:normal;color:#f5c875;font-size:55px;display:block;margin-top:12px}.hero p{max-width:380px;line-height:1.8;color:#e5e8df;margin:24px 0 30px}.primary{border:0;border-radius:9px;padding:16px 24px;display:inline-flex;align-items:center;justify-content:center;gap:20px;background:linear-gradient(110deg,#f8d27f,#ecae3e);color:#3c2b10;box-shadow:0 3px 0 #c1892e;font-weight:700;font-size:15px;min-height:52px;transition:transform .15s}.primary:hover{transform:translateY(-2px)}.primary:active{transform:translateY(1px)}.secondary{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:13px 19px;font-weight:600;min-height:48px}.hero .secondary{color:#fff;border-color:#ffffff45;margin-left:12px}.hero-caption{position:absolute;bottom:30px;right:30px;display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:1px;color:#fff9de;text-shadow:0 1px 8px #000}.intro-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:29px 2%;gap:22px}.intro-strip>div{display:flex;align-items:center;gap:16px}.intro-strip svg{width:32px;height:32px;color:#b08746}.intro-strip strong{font-size:14px;display:block;margin-bottom:5px}.intro-strip span{font-size:12px;color:var(--muted)}footer{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;justify-content:center;align-items:center;gap:16px;padding:7px 12px calc(7px + env(safe-area-inset-bottom));font-size:10px;line-height:1.4;color:#fff;text-align:center;text-shadow:0 1px 5px #000c;background:linear-gradient(0deg,#0009 20%,#0000);pointer-events:none}footer .footer-credit strong{letter-spacing:1px}footer button{pointer-events:auto;border:0;background:none;color:inherit;text-decoration:underline;font-size:10px;text-shadow:inherit}.game-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0 23px;gap:15px}.crumb{font-size:11px;letter-spacing:1.5px;color:var(--muted)}.game-head h1{font:600 36px var(--serif);margin:5px 0 0}.stats{display:flex;gap:20px;align-items:center}.stat{border-left:1px solid var(--line);padding-left:20px;display:flex;gap:9px;align-items:center}.stat svg{color:#ba8b3c}.stat strong{display:block;font-size:17px}.stat small{font-size:10px;color:var(--muted)}.map-button{display:flex;gap:8px;align-items:center}.game-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,1fr);background:var(--paper);border-radius:18px;overflow:hidden;min-height:585px;box-shadow:0 15px 35px #13282c0a}.scene{position:relative;background:#bdc3a2 url('assets/carthage.webp') 62% center/cover;min-height:580px;overflow:hidden}.scene:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#112d3510 40%,#0b2c36db 100%)}.scene-top{position:absolute;left:25px;right:25px;top:23px;display:flex;justify-content:space-between;align-items:center;color:white}.scene-label{font-size:11px;letter-spacing:1px;background:#173a3bcc;border:1px solid #ffffff30;border-radius:20px;padding:9px 14px}.scene-counter{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;border:1px solid #ffffff70;background:#14383980;font-size:12px}.scene-bottom{position:absolute;bottom:28px;left:30px;right:30px;color:white}.scene-bottom h2{font:600 32px var(--serif);margin:10px 0}.scene-bottom p{font-size:13px;color:#e6eade;line-height:1.7;max-width:350px;margin-bottom:0}.scene-bottom .eyebrow{color:#f0cd8a;font-size:9px;letter-spacing:2px}.task{padding:34px 35px;display:flex;flex-direction:column;min-width:0}.steps{display:flex;gap:5px;margin-bottom:30px}.step{height:4px;flex:1;background:#e4dece;border-radius:4px}.step.done{background:#45876d}.step.current{background:#dba446}.task .eyebrow{font-size:9px;color:#9c7738;letter-spacing:1.8px}.task h2{font:600 35px/1.1 var(--serif);margin:14px 0 12px}.task .description{font-size:13px;line-height:1.75;color:var(--muted);margin-bottom:24px}.question{font-size:17px;font-weight:600;line-height:1.55;margin:0 0 17px}.options{display:grid;gap:10px}.answer{width:100%;border:1px solid #d9d2bf;border-radius:10px;background:#fffdf7;display:flex;align-items:center;gap:13px;text-align:left;padding:14px 16px;min-height:57px;color:var(--ink);transition:.18s}.answer .letter{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-size:11px;border:1px solid #ded9ca;color:#8f784f}.answer:hover:not(:disabled){border-color:#c2974a;background:#faf0d8;transform:translateX(3px)}.answer.correct{background:#e5f3e9;border-color:#7fba97;color:#1e6545}.answer.wrong{background:#fbe9e1;border-color:#dca697}.feedback{margin-top:18px;padding:14px 16px;border-radius:9px;font-size:13px;line-height:1.65;background:#f5ebd2;animation:arrive .3s}.feedback.success{background:#e5f1e7;color:#256747}.feedback.error{background:#f9e9e0;color:#914529}.feedback strong{display:block;margin-bottom:3px}.feedback .primary{width:100%;margin-top:13px;font-size:13px;padding:12px}.task-tools{margin-top:auto;padding-top:22px;display:flex;align-items:center;justify-content:space-between;color:#8f805e;font-size:10px}.hint{border:0;background:none;color:#886824;min-height:42px;font-size:12px;text-decoration:underline}.seal-dots{display:flex;gap:8px;margin:0 0 23px}.seal-dot{width:35px;height:35px;border-radius:50%;background:#ece5d5;display:grid;place-items:center;color:#af9d7f}.seal-dot.active{background:#e4f0e5;color:var(--green)}.artifact-stage{position:absolute;left:7%;right:7%;top:32%;display:flex;justify-content:center;gap:12px}.stone{border-radius:65px 65px 8px 8px;min-width:75px;height:124px;background:linear-gradient(135deg,#e6cda5,#a4845c);border:3px solid #d7ba89;box-shadow:inset 0 0 15px #73552f70,0 13px 25px #1e282660;display:grid;place-items:center;color:#664b2d;transition:.8s}.stone svg{width:34px;height:34px}.stone.open{box-shadow:0 0 30px #ffd66e;background:#fbce76;transform:translateY(-8px)}.reward-tag{position:absolute;top:55%;left:50%;transform:translateX(-50%);border-radius:20px;background:#12322de8;color:#f5d087;white-space:nowrap;padding:9px 18px;font-size:12px;animation:arrive .5s}.search-scene{height:255px;position:relative;border:1px solid #c9b891;border-radius:12px;overflow:hidden;background:linear-gradient(#9ed1ce 0 28%,#b2a17a 28% 35%,#e9cfa8 35%);margin-bottom:15px;box-shadow:inset 0 0 50px #594c261a}.search-scene:after{content:'';position:absolute;bottom:0;left:0;right:0;height:42px;background:repeating-linear-gradient(90deg,transparent 0 52px,#b99e7270 53px 55px),linear-gradient(#cbb485,#e5c99d);border-top:1px solid #b09c72;pointer-events:none}.column{position:absolute;top:12%;height:76%;width:28px;background:repeating-linear-gradient(90deg,#c7ae7f 0 5px,#eed7af 6px 9px);box-shadow:5px 2px 8px #30271d30}.column:before,.column:after{content:'';position:absolute;left:-8px;width:44px;height:15px;background:#d7bd8f;border:1px solid #b69968}.column:before{top:0}.column:after{bottom:0}.column.a{left:9%}.column.b{right:12%}.hotspot{position:absolute;z-index:2;background:#cbb382;border:1px solid #9f8557;border-radius:7px;width:49px;height:48px;display:grid;place-items:center;color:#806b45;box-shadow:1px 3px 3px #0002;transition:.2s}.hotspot:hover{background:#f0d9a5;transform:scale(1.08)}.hotspot svg{width:25px;height:25px}.hotspot.found{background:#f4d076;color:#214d3b;box-shadow:0 0 20px #fff8c4}.search-tip{font-size:11px;text-align:center;color:#8b7757}.memory-box{background:#ede4cf;border-radius:12px;padding:22px 12px;text-align:center;margin-bottom:18px}.memory-slots{display:flex;gap:9px;justify-content:center}.memory-slot{width:52px;height:58px;display:grid;place-items:center;background:#fffbec;border:1px solid #c9b78e;border-radius:8px;color:#8a642b}.memory-slot svg{width:30px;height:30px}.memory-slot.filled{background:#f2d893}.countdown{font-size:12px;color:#887349;margin:12px 0 0}.symbols{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.symbol-choice{min-height:52px;background:#fffcf3;border:1px solid #d8caa9;border-radius:8px;color:#806331}.symbol-choice:hover{background:#f4ddb2}.memory-actions{display:flex;justify-content:center;margin:10px 0}.text-button{background:none;border:none;color:#8a6b35;font-size:12px;text-decoration:underline;min-height:42px}.completion{text-align:center;background:var(--paper);border-radius:18px;padding:48px 24px;max-width:850px;margin:10px auto 25px;position:relative;overflow:hidden}.completion:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 24%,#f2cf785c,transparent 50%);pointer-events:none}.completion>*{position:relative}.relic{display:grid;place-items:center;width:138px;height:138px;margin:25px auto 28px;background:linear-gradient(145deg,#ffedac,#d39428);border:7px double #a87b2c;transform:rotate(45deg);border-radius:23px;box-shadow:0 0 65px #e4b54950,9px 9px 0 #b28746}.relic svg{transform:rotate(-45deg);width:74px;height:74px;color:#654923}.completion h1{font:600 51px/1 var(--serif);margin:15px 0}.completion .eyebrow{justify-content:center;color:#9b722b}.completion p{color:var(--muted);font-size:14px;line-height:1.8;max-width:490px;margin:0 auto 22px}.reward-stats{display:flex;justify-content:center;gap:45px;padding:20px 0 25px;margin:20px auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:520px}.reward-stats strong{font:600 34px var(--serif);display:block}.reward-stats small{color:var(--muted);font-size:11px}.fragment-track{display:flex;justify-content:center;gap:10px;margin:20px 0}.fragment-track svg{color:#d7cdb7}.fragment-track svg:first-child{color:#c4963d}.next-card{margin:25px auto;background:#ebe9dd;border:1px solid var(--line);border-radius:12px;max-width:430px;padding:17px;text-align:left;font-size:12px;display:flex;gap:15px;align-items:center}.next-card strong{display:block;margin-bottom:5px;font-size:14px}.next-card span{color:var(--muted);line-height:1.6}.completion .secondary{margin-left:10px}dialog{border:1px solid #d1c5a8;border-radius:17px;background:#fffaee;color:var(--ink);padding:38px;max-width:540px;width:calc(100% - 32px);box-shadow:0 30px 100px #0004}dialog::backdrop{background:#10282bc9;backdrop-filter:blur(5px)}dialog .close{position:absolute;right:12px;top:12px;width:34px;height:34px;font-size:22px}dialog h2{font:600 34px var(--serif);margin:12px 0 18px}dialog p,dialog li{font-size:14px;line-height:1.8;color:#64736a}dialog a{color:#806025}.map-list{list-style:none;padding:0;margin-bottom:0}.map-list li{border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:13px}.map-list li:last-child{border:0}.map-list small{color:#9b8c73;font-size:10px}.map-list .available{color:#317355}.map-list strong{display:flex;gap:12px;align-items:center}.map-list b{width:25px;height:25px;border-radius:50%;background:#e9dfc9;display:grid;place-items:center;font-size:10px}.fading{animation:arrive .45s ease}.finish-light{position:absolute;width:150px;height:150px;background:#ffd271;border-radius:50%;filter:blur(70px);top:30%;left:45%;pointer-events:none}.door-animation{animation:unlock 1s ease}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes unlock{0%{filter:brightness(1)}50%{filter:brightness(1.5)}100%{filter:brightness(1)}}@media(min-width:1500px){.hero{min-height:700px}}@media(max-width:1000px){.game-grid{grid-template-columns:1fr 1fr}.task{padding:27px 23px}.hero h1{font-size:78px}.scene{min-height:560px}.stat{padding-left:13px}.stats{gap:12px}.scene-bottom{left:22px;right:22px}}@media(max-width:720px){.topbar{height:75px;padding:0 5%}.brand{font-size:20px;gap:8px}.brand svg{width:31px;height:31px}.brand small{font-size:6px;letter-spacing:3px}.prototype{display:none}.top-actions{gap:7px}.icon-button{height:37px;width:37px}main{padding:0 4%}.hero{min-height:620px;align-items:flex-end;background-position:60% center;border-radius:14px}.hero:before{background:linear-gradient(0deg,#082d36ef,#0a293973 52%,#102a3310)}.hero-content{padding:35px 25px 48px;width:100%}.hero h1{font-size:69px}.hero h1 em{font-size:43px}.hero p{font-size:14px;margin:18px 0 24px;max-width:320px}.hero .eyebrow{font-size:9px;letter-spacing:2px}.hero .primary{width:100%;font-size:14px}.hero .secondary{width:100%;margin:13px 0 0}.hero-caption{top:18px;bottom:auto;right:20px;font-size:9px}.intro-strip{grid-template-columns:1fr;padding:25px 15px;gap:20px}.intro-strip>div{gap:17px}.intro-strip strong{font-size:13px}.intro-strip span{font-size:11px}footer{padding:18px 5%;gap:15px;align-items:center;font-size:9px}footer button{font-size:9px;min-height:40px}.game-head{padding:8px 0 18px;flex-wrap:wrap}.game-head h1{font-size:29px}.crumb{font-size:9px}.stats{width:100%;justify-content:space-between;margin-top:7px}.stat{border:0;padding:0}.stat strong{font-size:15px}.map-button{font-size:11px;padding:10px 13px;min-height:41px}.map-button svg{width:18px;height:18px}.game-grid{display:flex;flex-direction:column;border-radius:13px;min-height:0}.scene{height:230px;min-height:230px;background-position:center 46%}.scene-top{top:16px;left:18px;right:18px}.scene-label{font-size:9px;padding:7px 11px}.scene-counter{width:30px;height:30px;font-size:10px}.scene-bottom{bottom:18px;left:20px;right:20px}.scene-bottom h2{font-size:27px;margin:6px 0}.scene-bottom p{display:none}.scene-bottom .eyebrow{font-size:8px}.artifact-stage{top:23%;left:45%;right:5%;gap:7px}.stone{height:73px;min-width:40px;border-radius:35px 35px 4px 4px;border-width:2px}.stone svg{width:21px;height:21px}.reward-tag{top:50%;font-size:10px}.task{padding:24px 22px}.steps{margin-bottom:23px}.task h2{font-size:32px;margin-top:12px}.task .description{font-size:12px;margin-bottom:20px}.question{font-size:16px}.answer{padding:12px 14px;min-height:54px;font-size:14px}.task-tools{padding-top:15px}.completion{padding:32px 20px}.completion h1{font-size:40px}.relic{width:110px;height:110px;margin:28px auto 32px}.relic svg{width:60px;height:60px}.reward-stats{gap:26px}.reward-stats strong{font-size:29px}.completion .primary,.completion .secondary{width:100%}.completion .secondary{margin:12px 0 0}.completion p{font-size:12px}.search-scene{height:220px}dialog{padding:34px 25px}.symbols{gap:5px}.memory-slot{width:47px}.next-card{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Carthage punique — immersive world edition */
body{background:#102c33;color:#efe4ca;background-image:radial-gradient(ellipse at 50% 0,#29444a,transparent 65%)}.topbar{height:80px}.brand{color:#f2ddb0}.brand small{color:#c5aa74}.topbar .icon-button{border-color:#d6b77b70;color:#ffe5af;background:#1b2a2290}.topbar .icon-button:hover{background:#2a443a99}.prototype{color:#bda981}footer{color:#9baaa3;border-color:#84948a30}.hero{background-image:url('assets/punic-harbor.webp');min-height:680px}.hero:before{background:linear-gradient(90deg,#09292ef0,#09272c70 50%,#09272c00 80%),linear-gradient(0deg,#09272c80,transparent 40%)}.intro-strip{color:#eee3ca}.intro-strip span{color:#aabbaf}.game-head .crumb{color:#b7bda8}.game-head h1{color:#f5e6c4}.stat{border-color:#9e9e7a40}.stat small{color:#b2bea9}.game-head .secondary{border-color:#b9b99a50;color:#e2d6b5}.game-head .secondary:hover{background:#2e4749}.game-grid{display:block;position:relative;min-height:820px;padding:405px 20px 26px;isolation:isolate;background:#b89d71;box-shadow:0 20px 55px #0003;border:1px solid #ac9b7940}.scene{position:absolute;inset:0;min-height:0;height:100%;z-index:-1;background-size:cover;background-position:center center;animation:worldReveal .8s ease}.world-harbor{background-image:url('assets/punic-harbor.webp');background-position:center center}.world-courtyard{background-image:url('assets/punic-courtyard.webp')}.world-sanctuary{background-image:url('assets/punic-sanctuary.webp')}.scene:before{background:linear-gradient(180deg,#06191e70,transparent 23%,transparent 50%,#061f2970 100%)}.scene-top{top:24px;left:30px;right:30px}.scene-label{backdrop-filter:blur(8px);background:#143735b0}.scene-bottom{bottom:auto;top:78px;left:34px;right:34px;text-shadow:0 2px 14px #122120}.scene-bottom h2{font-size:43px}.scene-bottom .eyebrow{font-size:9px}.task{position:relative;width:min(620px,100%);padding:27px 32px;margin:0 auto;border:1px solid #f9e0a690;border-radius:14px;color:#273b37;background:linear-gradient(115deg,#fff8e7f2,#f8eacbf2);backdrop-filter:blur(16px);box-shadow:0 14px 40px #1526294d,inset 0 0 30px #a2793510;min-height:0}.task h2{font-size:30px;margin:9px 0 8px}.task .description{margin-bottom:14px;color:#6b715e;font-size:12px}.steps{margin-bottom:17px}.task-tools{padding-top:7px}.question{margin-bottom:8px;font-size:18px}.world-instruction{font-size:11px;color:#8c723f;display:flex;align-items:center;gap:8px;min-height:27px}.world-instruction svg{width:18px;height:18px}.feedback{margin-top:12px;padding:12px 15px}.seal-dots{position:absolute;right:24px;top:50px;gap:6px}.seal-dot{width:26px;height:26px;font-size:10px}.world-choices{position:absolute;left:14%;right:14%;top:25%;height:24%;display:grid;grid-template-columns:repeat(3,1fr);gap:5%;z-index:3}.world-choice{position:relative;border:1px solid #f9d88c70;border-radius:4px 4px 13px 13px;background:linear-gradient(0deg,#2f2b19c9,#4e39211a 66%);color:#fff1cc;box-shadow:inset 0 0 40px #1a170830,0 12px 18px #0002;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;min-width:0;padding:15px 12px;transition:box-shadow .25s,background .25s,transform .25s;text-shadow:0 1px 5px #000b}.world-choice:hover:not(:disabled){box-shadow:inset 0 0 30px #ffe8a048,0 0 30px #f9d08070;border-color:#ffd988;transform:translateY(-3px);background:linear-gradient(0deg,#6e4a17da,#7e55221a)}.world-choice .choice-name{position:relative;display:flex;gap:6px;align-items:center;justify-content:center;font-size:16px;font-family:var(--serif);font-weight:700;line-height:1.15;min-height:37px}.choice-letter{display:grid;place-items:center;font-family:var(--sans);font-size:9px;min-width:19px;height:19px;border:1px solid #e4c59080;border-radius:50%;color:#edd5a0}.choice-action{position:relative;margin-top:5px;font-size:9px;letter-spacing:.3px;color:#e4d0a5}.choice-seal{position:relative;margin-bottom:15px;display:grid;place-items:center;border:1px solid #d4b16990;background:#6f4c2290;color:#f6d087;width:42px;height:42px;border-radius:50%;box-shadow:0 3px 8px #0003}.choice-seal svg{width:24px;height:24px}.door-glow{position:absolute;inset:0;opacity:0;background:linear-gradient(0deg,#ffcc4480,#fff0aa50);box-shadow:0 0 50px #ffd66e;transition:opacity 1s}.opened .door-glow{opacity:1}.world-choice.opened{border-color:#ffe5a4;color:#fff6d7;box-shadow:0 0 35px #ffd97380}.world-choice.wrong{animation:shake .35s;background:#8c302b80}.world-choice.route-choice{height:118px;align-self:end;border-radius:16px;background:#0e3538d0;backdrop-filter:blur(6px);border-color:#c3d7bc70}.route-choice .choice-seal{display:none}.world-choices:has(.route-choice){top:26%;height:21%;left:9%;right:9%;gap:18px}.world-search{position:absolute;inset:0;z-index:3}.world-object{position:absolute;width:50px;height:50px;display:grid;place-items:center;border:1px solid #5b472ca8;background:linear-gradient(135deg,#d9bc82,#ad8d56);border-radius:50%;color:#604921;box-shadow:inset 0 2px 10px #725d2870,0 4px 9px #0003;transition:.2s;transform:translate(-50%,-50%)}.world-object:hover{box-shadow:0 0 25px #f5d08b;background:#f5dc9c;transform:translate(-50%,-50%) scale(1.12)}.world-object.found{color:#496745;background:#ffdc81;box-shadow:0 0 40px #ffdc81}.world-object svg{width:27px;height:27px}.hanging-symbols{position:absolute;left:28%;right:28%;top:30%;display:flex;gap:16px;justify-content:center}.hanging-symbols span{border:1px solid #f2d39870;background:#694c2970;border-radius:8px;padding:14px;color:#d8af66;box-shadow:0 6px 20px #0d191e30}.world-unlocked:not(.chapter-world){position:absolute;top:50%;left:50%;transform:translateX(-50%);background:#193a32d0;color:#ffe5a3;font-size:12px;border:1px solid #d6c58c70;border-radius:30px;padding:12px 20px;z-index:4;white-space:nowrap}.world-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}.world-atmosphere span{position:absolute;bottom:15%;left:17%;height:4px;width:4px;background:#ffe2a4;border-radius:50%;opacity:0;animation:motes 7s linear infinite}.world-atmosphere span:nth-child(2){left:72%;animation-delay:2s}.world-atmosphere span:nth-child(3){left:40%;animation-delay:4s}.world-atmosphere span:nth-child(4){left:84%;animation-delay:1s}.world-atmosphere span:nth-child(5){left:29%;animation-delay:5s}.completion{background:linear-gradient(#172d36b5,#0c2535ee),url('assets/punic-sanctuary.webp') center/cover;color:#ffedc6;border:1px solid #d6b26950;max-width:none;min-height:700px}.completion p{color:#d6d4bb}.completion .eyebrow{color:#eac985}.completion .reward-stats{border-color:#d0b57c50}.completion .reward-stats small{color:#d3c5a3}.completion .next-card{background:#1b3736ca;border-color:#c0a86760}.completion .next-card span{color:#b2bdac}.completion .secondary{color:#eed7aa;border-color:#c5ab7060}.reward-stats strong{color:#ffdd8f}.completion .fragment-track svg{color:#96a69470}.completion .fragment-track svg:first-child{color:#f2c772}.memory-box{margin-bottom:10px;padding:16px 12px}.countdown{margin-top:9px}.symbol-choice{min-height:48px}.memory-actions{margin:4px 0}.feedback .primary{min-height:45px}.game-grid:has(.world-search){min-height:710px;padding-top:405px}@keyframes worldReveal{from{filter:brightness(.5);transform:scale(1.025)}to{filter:brightness(1);transform:scale(1)}}@keyframes motes{0%{opacity:0;transform:translate(0,0)}20%{opacity:.6}90%{opacity:.2}100%{opacity:0;transform:translate(30px,-350px)}}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@media(max-width:1000px){.scene-bottom h2{font-size:36px}.world-choices{left:9%;right:9%;gap:4%}.task{max-width:580px}.game-grid{padding-top:405px;min-height:820px}}@media(max-width:720px){.topbar{height:73px}.hero{background-position:52% center;min-height:670px}.hero:before{background:linear-gradient(0deg,#0b2932f5,#12383950 64%,transparent)}.game-grid{padding:350px 12px 16px;min-height:760px;overflow:hidden}.scene{height:100%;min-height:0;background-position:center center}.world-harbor{background-position:47% center}.scene-bottom{top:62px;left:20px;right:20px;bottom:auto}.scene-bottom h2{font-size:30px;line-height:1.1}.scene-top{top:16px;left:17px;right:17px}.scene-label{font-size:8px;max-width:85%;padding:7px 10px}.scene-label svg{height:17px;width:17px}.scene-counter{width:26px;height:26px;font-size:9px}.scene-bottom .eyebrow{font-size:7px;letter-spacing:1.5px}.task{margin:0;padding:22px 18px;width:100%;background:linear-gradient(115deg,#fff8e8f7,#f8eacbf7)}.task h2{font-size:29px}.task .description{font-size:11px}.question{font-size:16px}.world-choices{left:5%;right:5%;top:21%;height:23%;gap:7px}.world-choice{padding:12px 5px;min-height:120px}.world-choice .choice-name{font-size:16px;display:block;min-height:42px}.choice-letter{display:none}.choice-action{font-size:7px;line-height:1.4}.choice-seal{height:32px;width:32px;margin-bottom:12px}.choice-seal svg{height:18px;width:18px}.world-choices:has(.route-choice){top:20%;height:22%;left:5%;right:5%;gap:7px}.world-choice.route-choice{min-height:116px;padding:12px 5px}.world-choice.route-choice .choice-name{font-size:16px}.world-instruction{font-size:10px}.world-object{width:46px;height:46px}.world-search{top:-4%}.hanging-symbols{left:12%;right:12%;top:25%;gap:9px}.hanging-symbols span{padding:10px}.hanging-symbols svg{height:23px;width:23px}.game-grid:has(.world-search){padding-top:350px;min-height:690px}.seal-dots{top:25px;right:17px}.world-unlocked:not(.chapter-world){top:44%;font-size:10px;padding:9px 15px}.completion{min-height:700px}.completion .eyebrow{font-size:9px}.intro-strip{padding-top:28px}.task-tools{font-size:9px}.task-tools .hint{font-size:10px}.hint svg{height:18px;width:18px}.memory-box{padding:13px 8px}.memory-slot{width:45px;height:49px}.memory-slot svg{height:24px;width:24px}}

@media(max-width:720px){.world-courtyard{background-image:url('assets/punic-courtyard-mobile.webp');background-position:center top}}
/* Full-scene gameplay: a discreet question frame along the bottom. */
.playing{background:#10272d}.playing main{max-width:none;padding:0}.playing footer{display:none}.playing .topbar{position:absolute;top:0;left:0;right:0;width:100%;max-width:none;height:74px;padding:0 28px;z-index:12;color:#e5cd9f}.playing .brand{font-size:18px;color:#ffe5b3;text-shadow:0 2px 12px #000}.playing .brand svg{width:30px;height:30px}.playing .brand small{font-size:6px}.playing .topbar .icon-button{background:#1b2a2290;border-color:#d6b77b70;color:#ffe5af;backdrop-filter:blur(8px)}.playing .prototype{font-size:8px;color:#f0d4a0;text-shadow:0 1px 6px #000}.playing .game-head{position:absolute;top:76px;left:30px;right:30px;padding:0;z-index:8;align-items:flex-start;color:#e5cfaa}.playing .game-head .crumb{font-size:8px;color:#e9d7ae;text-shadow:0 1px 6px #000}.playing .game-head h1{font-size:26px;margin:4px 0;text-shadow:0 2px 10px #000}.playing .stats{gap:12px;padding:9px 13px;background:#1730318c;border:1px solid #d2bf9760;border-radius:9px;backdrop-filter:blur(9px)}.playing .stat{padding-left:12px}.playing .stat:first-child{border:0;padding-left:0}.playing .stat strong{font-size:13px;color:#f6dfae}.playing .stat small{font-size:8px;color:#d8c9a8}.playing .stat svg{width:18px;height:18px;color:#ebc778}.playing .map-button{min-height:32px;font-size:10px;padding:6px 9px;border:0;background:none}.playing .map-button svg{width:17px;height:17px}.playing .game-grid,.playing .game-grid:has(.world-search){height:100svh;min-height:700px;padding:0;border:0;border-radius:0;margin:0;overflow:hidden;background:#6f5834}.playing .scene{height:100%;min-height:0;background-position:center center}.playing .scene:before{background:linear-gradient(180deg,#081a2670,transparent 24%,transparent 69%,#101b2040)}.playing .scene-top{display:none}.playing .scene-bottom{top:143px;left:32px;right:32px}.playing .scene-bottom .eyebrow{font-size:8px;letter-spacing:2px}.playing .scene-bottom h2{font-size:33px;margin-top:8px;color:#f9e4bd}.playing .task{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:820px;margin:0;padding:17px 22px 9px;min-height:0;background:linear-gradient(135deg,#262b21e8,#26322bdc);border:1px solid #c9a45d9c;border-radius:11px;backdrop-filter:blur(13px);color:#f5e7c8;box-shadow:0 12px 40px #0005,inset 0 0 28px #e4b45808}.playing .task .steps{position:absolute;top:-1px;left:13px;right:13px;gap:4px;margin:0}.playing .task .step{height:2px;background:#8a855545}.playing .task .step.done{background:#779873}.playing .task .step.current{background:#e5bf73}.playing .task .eyebrow{font-size:8px;letter-spacing:1.4px;color:#ccb580;margin:0 0 8px}.playing .task .eyebrow:before{width:17px}.playing .task h2,.playing .task .description{display:none}.playing .task .question{font-size:16px;line-height:1.5;color:#fff3d7;margin:0 0 13px;font-weight:500}.playing .compact-options{grid-template-columns:repeat(3,1fr);gap:9px}.playing .answer{min-height:46px;padding:10px 12px;gap:9px;border:1px solid #d9b67f70;border-radius:6px;background:linear-gradient(110deg,#695138a0,#5a4d3990);color:#f7e5c0;font-size:12px;text-shadow:0 1px 2px #0003}.playing .answer .letter{width:22px;height:22px;flex-shrink:0;font-size:9px;color:#f0cf8e;border-color:#c5a66570}.playing .answer:hover:not(:disabled){background:#a0783d80;border-color:#edca85;transform:translateY(-2px)}.playing .answer.opened{background:#326447cc;border-color:#b5d9a3;color:#f4ffe6}.playing .answer.opened .letter{border-color:#99c69a;color:#d7f1c8}.playing .answer.wrong{background:#843d309c;border-color:#bd7b64}.playing .task-tools{padding-top:3px;font-size:8px;color:#a9b29b}.playing .task-tools .hint{min-height:31px;font-size:10px;color:#d1b77e}.playing .hint svg{height:15px;width:15px}.playing .feedback{background:#55492ce3;border:1px solid #ad925b40;color:#efe0b9;padding:9px 12px;font-size:11px;margin-top:10px}.playing .feedback.success{background:#254a36e8;color:#e0efcd;border-color:#91ab7850}.playing .feedback.error{background:#5a352ade;color:#f4d6b5;border-color:#af766b50}.playing .feedback strong{display:inline;margin-right:7px}.playing .feedback .primary{width:auto;padding:8px 15px;min-height:34px;font-size:11px;margin:8px 0 0;display:flex}.playing .seal-dots{position:absolute;top:11px;right:15px;gap:5px;margin:0}.playing .seal-dot{width:20px;height:20px;background:#82694380;color:#e8c68c;font-size:9px}.playing .seal-dot.active{background:#4a7351;color:#e4f0ca}.playing .world-instruction{color:#e5cb97;font-size:12px;padding:5px 0 4px}.playing .memory-box{background:#071c2080;border:1px solid #bc985c40;padding:12px;margin-bottom:8px}.playing .memory-slot{width:43px;height:44px;background:#88704f40;border-color:#bda26970;color:#f1cd88}.playing .memory-slot.filled{background:#ae804e80}.playing .memory-slot svg{height:25px;width:25px}.playing .countdown{font-size:10px;color:#c6b68e;margin-top:7px}.playing .symbols{max-width:360px;margin:auto;gap:7px}.playing .symbol-choice{min-height:39px;background:#71573b90;border-color:#b79a6580;color:#f3d99c}.playing .symbol-choice svg{height:21px;width:21px}.playing .memory-actions{margin:0}.playing .text-button{color:#dac08a;min-height:28px;font-size:10px}.playing .hanging-symbols{top:35%}.playing .world-unlocked:not(.chapter-world){top:52%;font-size:11px;background:#1d3e30b0;backdrop-filter:blur(8px)}.playing .gate-effect{position:absolute;top:26%;left:42%;width:16%;height:37%;opacity:0;background:linear-gradient(0deg,#ffd57ba0,#ffdf8b20);filter:blur(18px);transition:opacity 1s;pointer-events:none}.playing .gate-effect.revealed{opacity:1}.playing .world-search{top:0;bottom:0}.playing .world-object{opacity:.85}.playing .world-object:hover,.playing .world-object.found{opacity:1}.playing .world-atmosphere{opacity:.7}@media(max-width:720px){.playing .topbar{padding:0 17px;height:62px}.playing .brand{font-size:16px;gap:6px}.playing .brand svg{width:25px;height:25px}.playing .brand small{letter-spacing:2.4px;font-size:5px}.playing .top-actions{gap:6px}.playing .icon-button{width:32px;height:32px;font-size:18px}.playing .game-head{top:70px;left:18px;right:18px;flex-wrap:nowrap;gap:8px}.playing .game-head .crumb{display:none}.playing .game-head h1{font-size:23px;margin:1px 0}.playing .game-head h1 span{display:none}.playing .stats{width:auto;margin:0;gap:9px;padding:6px 9px}.playing .stat{padding:0;border:0;gap:4px}.playing .stat small{display:none}.playing .stat strong{font-size:11px;white-space:nowrap}.playing .stat svg{width:14px;height:14px}.playing .map-button{font-size:0;padding:0;min-height:23px}.playing .map-button svg{height:16px;width:16px}.playing .game-grid,.playing .game-grid:has(.world-search){height:100svh;min-height:620px}.playing .scene-bottom{top:121px;left:19px;right:19px}.playing .scene-bottom h2{font-size:25px}.playing .scene-bottom .eyebrow{font-size:6px;letter-spacing:1.6px}.playing .task{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:15px 13px 6px;border-radius:9px}.playing .task .question{font-size:14px;margin-bottom:10px;padding-right:0;line-height:1.45}.playing .task .eyebrow{font-size:7px;margin-bottom:9px}.playing .compact-options{gap:6px}.playing .answer{padding:9px 7px;min-height:54px;font-size:11px;text-align:center;justify-content:center;line-height:1.35}.playing .answer .letter{display:none}.playing .task-tools{font-size:7px}.playing .task-tools .hint{font-size:9px}.playing .feedback{font-size:10px}.playing .feedback .primary{font-size:10px;min-height:32px}.playing .seal-dots{right:13px;top:9px}.playing .world-unlocked:not(.chapter-world){top:49%;font-size:9px}.playing .world-search .world-object{height:43px;width:43px}.playing .world-object svg{height:24px;width:24px}.playing .scene.world-courtyard{background-image:url('assets/punic-courtyard-mobile.webp');background-position:center top}.playing .hanging-symbols{top:32%;gap:8px}.playing .hanging-symbols span{padding:10px}.playing .world-instruction{font-size:11px}}@media(max-height:650px) and (min-width:721px){.playing .game-grid,.playing .game-grid:has(.world-search){min-height:540px}.playing .scene-bottom{top:120px}.playing .scene-bottom h2{font-size:25px}.playing .task{bottom:12px}}
.hero{background-image:url('assets/punic-temple.webp')}.world-temple{background-image:url('assets/punic-temple.webp')}.completion{background-image:linear-gradient(#172d3690,#0c2535e8),url('assets/punic-temple.webp')}.playing .world-temple{background-position:center center}.playing .scene-bottom{max-width:600px}.playing .scene-bottom .eyebrow{color:#ddc28e}.playing .scene-bottom h2{font-weight:500}.playing .task .description{display:none}@media(max-width:720px){.hero{background-image:url('assets/punic-temple-mobile.webp');background-position:center center}.playing .scene.world-temple{background-image:url('assets/punic-temple-mobile.webp');background-position:center top}.completion{background-image:linear-gradient(#172d3690,#0c2535e8),url('assets/punic-temple-mobile.webp');background-position:center center}.playing .scene-bottom h2{font-size:24px}}
/* Portrait first on every screen, including the desktop preview. */
:root{--portrait-width:460px}body{background:#0b2026}.topbar{max-width:var(--portrait-width);height:73px;padding:0 18px}.brand{font-size:18px;gap:7px}.brand svg{width:28px;height:28px}.brand small{font-size:6px;letter-spacing:2.6px}.prototype{display:none}.top-actions{gap:6px}.icon-button{height:34px;width:34px;font-size:19px}main{max-width:var(--portrait-width);padding:0 12px}.hero{background-image:url('assets/punic-temple-mobile.webp');background-position:center center;min-height:690px;align-items:flex-end;border-radius:12px}.hero:before{background:linear-gradient(0deg,#0b2932f5,#12383950 64%,transparent)}.hero-content{padding:32px 23px 34px;width:100%}.hero h1{font-size:69px}.hero h1 em{font-size:42px}.hero p{font-size:13px;line-height:1.75;margin:19px 0 24px}.hero .eyebrow{font-size:8px;letter-spacing:2px}.hero .primary,.hero .secondary{width:100%;font-size:13px}.hero .secondary{margin:12px 0 0}.hero-caption{top:16px;bottom:auto;right:16px;font-size:8px}.intro-strip{grid-template-columns:1fr;padding:25px 12px;gap:19px}.intro-strip strong{font-size:13px}.intro-strip span{font-size:11px}footer{max-width:var(--portrait-width);margin:0 auto;padding:16px 23px;gap:15px;font-size:9px}footer button{font-size:9px}.completion{background-image:linear-gradient(#172d3690,#0c2535e8),url('assets/punic-temple-mobile.webp');background-position:center center;min-height:740px;padding:35px 20px}.completion h1{font-size:39px}.completion p{font-size:12px}.completion .eyebrow{font-size:8px;letter-spacing:2px}.completion .relic{width:108px;height:108px}.completion .relic svg{width:59px;height:59px}.reward-stats{gap:24px}.reward-stats strong{font-size:29px}.reward-stats small{font-size:9px}.completion .primary,.completion .secondary{width:100%;font-size:13px}.completion .secondary{margin:12px 0 0}.completion .next-card{font-size:11px}.playing main{max-width:var(--portrait-width);margin:0 auto;padding:0}.playing .topbar{position:absolute;max-width:var(--portrait-width);height:62px;left:50%;right:auto;transform:translateX(-50%);width:100%;padding:0 17px}.playing .brand{font-size:16px;gap:6px}.playing .brand svg{width:25px;height:25px}.playing .brand small{font-size:5px;letter-spacing:2.4px}.playing .icon-button{width:32px;height:32px;font-size:18px}.playing .game-head{position:absolute;top:70px;left:50%;right:auto;transform:translateX(-50%);width:calc(100% - 36px);max-width:calc(var(--portrait-width) - 36px);flex-wrap:nowrap;gap:8px}.playing .game-head .crumb{display:none}.playing .game-head h1{font-size:23px;margin:1px 0}.playing .game-head h1 span{display:none}.playing .stats{width:auto;margin:0;gap:9px;padding:6px 9px}.playing .stat{padding:0;border:0;gap:4px}.playing .stat strong{font-size:11px;white-space:nowrap}.playing .stat small{display:none}.playing .stat svg{height:14px;width:14px}.playing .map-button{font-size:0;padding:0;min-height:23px}.playing .map-button svg{height:16px;width:16px}.playing .game-grid,.playing .game-grid:has(.world-search){width:100%;height:100svh;min-height:640px;max-height:none;border-radius:0}.playing .scene.world-temple{background-image:url('assets/punic-temple-mobile.webp');background-position:center top}.playing .scene.world-courtyard{background-image:url('assets/punic-courtyard-mobile.webp');background-position:center top}.playing .scene-bottom{top:121px;left:19px;right:19px}.playing .scene-bottom h2{font-size:24px}.playing .scene-bottom .eyebrow{font-size:6px;letter-spacing:1.6px}.playing .task{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:15px 13px 6px;border-radius:9px}.playing .task .question{font-size:14px;margin-bottom:10px;line-height:1.45}.playing .task .eyebrow{font-size:7px;margin-bottom:9px}.playing .compact-options{gap:6px}.playing .answer{padding:9px 7px;min-height:54px;font-size:11px;text-align:center;justify-content:center;line-height:1.35}.playing .answer .letter{display:none}.playing .task-tools{font-size:7px}.playing .task-tools .hint{font-size:9px}.playing .feedback{font-size:10px}.playing .feedback .primary{font-size:10px;min-height:32px}.playing .seal-dots{right:13px;top:9px}.playing .world-unlocked:not(.chapter-world){top:49%;font-size:9px}.playing .world-search .world-object{height:43px;width:43px}.playing .world-object svg{height:24px;width:24px}.playing .hanging-symbols{top:32%;gap:8px}.playing .hanging-symbols span{padding:10px}.playing .world-instruction{font-size:11px}@media(min-width:721px){.playing .game-grid,.playing .game-grid:has(.world-search){height:min(100svh,818px);min-height:640px}.playing main{box-shadow:0 0 90px #0008}.hero{min-height:740px}}
.auto-next{display:block;margin-top:4px;font-size:9px;letter-spacing:.3px;opacity:.75}.playing .hint:disabled{opacity:.4;cursor:default;text-decoration:none}
