@font-face{font-family:Pirata;src:url('assets/pirata.ttf')}@font-face{font-family:Bodoni;src:url('assets/bodoni.ttf')}@font-face{font-family:Pixel;src:url('assets/pixel.ttf')}
:root{--paper:#fff;--ink:#191919;--line:#c4c4bd;--muted:#646460;--dock-height:74px;--card-w:278px;--card-h:404px;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:white;color:var(--ink);font:16px/1.6 Arial,sans-serif;overscroll-behavior:none}body:after{content:'';position:fixed;inset:10px;border:1px solid #34342d;border-radius:0 0 15px 15px;pointer-events:none;z-index:65}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Pirata,Georgia,serif;font-weight:400;line-height:1.05}h2{font-size:clamp(2.7rem,4.8vw,5.3rem)}.eyebrow,.scene-index,.fighter-label,.enemy-stat,.card-hint,footer,.setting-note{font-family:monospace;font-size:12px;letter-spacing:.1em}.eyebrow{margin-bottom:14px}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;top:-80px;left:20px;padding:10px;background:white;z-index:200}.skip:focus{top:20px}header{position:fixed;top:27px;left:40px;right:40px;z-index:60;height:46px;pointer-events:none}header>*{pointer-events:auto}.signature{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:11px;font-weight:bold;letter-spacing:.11em}.signature img{width:42px;height:42px;object-fit:contain;mix-blend-mode:multiply}.signature small{display:block;font-size:9px;letter-spacing:.2em;font-weight:400}.settings-btn{position:absolute;right:0;display:flex;align-items:center;gap:9px;padding:8px;background:#fffffff0;font-size:12px}.progression{position:fixed;left:32px;top:50%;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;gap:20px}.progression:before{content:'';position:absolute;top:13px;bottom:13px;width:1px;background:#888;left:13px}.progression a{position:relative;width:27px;height:27px;display:grid;place-items:center}.progression b{display:block;width:7px;height:7px;background:white;border:1px solid black;border-radius:100%;font-size:0;transition:.25s}.progression .active b{width:11px;height:11px;background:var(--ink);box-shadow:0 0 0 5px #fff9}.progression a span{position:absolute;left:35px;background:white;border:1px solid #ddd;padding:3px 8px;white-space:nowrap;font:12px monospace;opacity:0;pointer-events:none}.progression a:hover span,.progression a:focus-visible span{opacity:1}.game-dock{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);height:var(--dock-height);z-index:60;display:flex;align-items:stretch;border:1px solid #777;background:#f0f0f0ee;border-radius:17px;overflow:hidden;backdrop-filter:blur(15px);box-shadow:0 3px 12px #00000006}.game-dock a{width:119px;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.3;gap:5px;padding:10px;transition:.2s}.game-dock .dock-home{width:75px;background:#ddd}.game-dock img{width:32px;height:32px;object-fit:contain;mix-blend-mode:multiply}.game-dock b{font:14px Pixel,monospace}.game-dock span{font:13px Pixel,monospace;white-space:nowrap}.game-dock a.active,.game-dock a:hover{background:#d5d5d0}.scene-stepper{position:fixed;right:37px;bottom:43px;display:flex;align-items:center;gap:10px;z-index:60;background:#ffffffde;padding:2px 5px}.scene-stepper span{font:11px monospace}.scene-stepper button{font-size:20px;width:28px;height:32px}#main{position:fixed;inset:0;outline:none}.scene{position:absolute;inset:0;overflow:hidden;background:white;isolation:isolate;opacity:1;outline:none}.scene[hidden]{display:none!important}.scene-index{position:absolute;left:93px;top:101px;color:var(--muted);font-size:11px;z-index:8}.chapter-next{position:absolute;bottom:132px;right:5%;font:15px Bodoni,serif;border-bottom:1px solid;padding-bottom:5px;z-index:12}.text-button{border-bottom:1px solid;padding:0 0 5px;font-size:14px}.game-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;border:1px solid;padding:12px 22px;background:white;font-size:15px;box-shadow:3px 3px 0 -1px white,3px 3px 0 0 #333;transition:background .15s}.game-button:hover{background:#eaeae5}.game-button span{font:12px monospace}.resting-actor{opacity:0;transition:opacity .22s}.settled .resting-actor{opacity:1}.actor-mount{position:absolute}.sprite{width:100%;height:100%;background-image:url('assets/character-sheet.png');background-size:400% 300%;background-repeat:no-repeat;mix-blend-mode:multiply}.pose-0{background-position:0 0}.pose-1{background-position:33.333333% 0}.pose-2{background-position:66.666667% 0}.pose-3{background-position:100% 0}.pose-4{background-position:0 50%}.pose-5{background-position:33.333333% 50%}.pose-6{background-position:66.666667% 50%}.pose-7{background-position:100% 50%}.pose-8{background-position:0 100%}.pose-9{background-position:33.333333% 100%}.pose-10{background-position:66.666667% 100%}.pose-11{background-position:100% 100%}.walking{animation:walkFrames .42s steps(1,end) infinite}.traveller{position:fixed;left:0;top:0;pointer-events:none;z-index:48;display:none;transform-origin:50% 100%}.traveller.visible{display:block}.chapter-transition{position:fixed;inset:0;z-index:45;pointer-events:none;background:#fff;opacity:0}.transitioning .scene-stepper,.transitioning .game-dock{pointer-events:none}.hero-heading{position:absolute;left:50%;top:16%;transform:translateX(-50%);text-align:center;z-index:3;white-space:nowrap}.hero-heading h1{font-size:clamp(4rem,7.4vw,8.2rem)}.hero-heading .eyebrow{font-size:11px;margin-bottom:10px}.hero blockquote{position:absolute;left:50%;top:36%;transform:translateX(-50%);width:430px;text-align:center;margin:0;font:clamp(1.2rem,1.9vw,2.05rem)/1.5 Bodoni,Georgia,serif;z-index:3}.hero blockquote em{font-style:normal}.hero cite{display:block;font:10px monospace;letter-spacing:.12em;margin-top:17px}.grid-ground{position:absolute;left:0;bottom:90px;width:100%;height:40%;object-fit:cover;mix-blend-mode:multiply;opacity:.35;mask-image:linear-gradient(transparent,black)}.home-actor{left:11%;bottom:22%;width:min(20vw,235px);height:min(20vw,235px);z-index:5}.fighter-label{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);font-size:9px;white-space:nowrap}.goliath-wrap{position:absolute;right:4%;bottom:19%;width:33%;height:64%;z-index:2;transform-origin:bottom}.goliath{width:100%;height:100%;object-fit:contain;object-position:bottom;mix-blend-mode:multiply}.enemy-stat{position:absolute;top:2%;right:5%;width:145px;font-size:11px;line-height:1.3;transform:rotate(3deg)}.enemy-stat small{display:block;font-size:9px;margin:4px 0}.enemy-stat meter{height:9px;width:100%;display:block;accent-color:#222}.enemy-stat meter::-webkit-meter-bar{background:#fff;border:1px solid black;border-radius:0}.enemy-stat meter::-webkit-meter-optimum-value{background:#222}.hit-word{position:absolute;left:0;top:50%;font:26px Pirata;opacity:0;transform:rotate(-12deg);background:white;padding:2px 10px}.goliath-wrap.hurt{animation:recoil .55s}.hurt .hit-word{animation:hitWord .7s both}.goliath-wrap.defeated{transform:translate(20%,15%) rotate(15deg);opacity:.25;transition:1s}.battle-controls{position:absolute;left:50%;bottom:22%;transform:translateX(-50%);text-align:center;z-index:12;max-width:36%}.battle-controls p{font:italic 14px/1.4 Bodoni;margin-top:17px}.battle-controls .text-button{margin:10px}.opening-link{position:absolute;left:93px;bottom:132px;z-index:12}.house-grid{position:absolute;left:50%;top:12%;transform:translateX(-50%);width:min(920px,76vw);height:71%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1.6fr) minmax(0,1fr);gap:28px 38px}.crest-frame{justify-self:center;border:1.5px solid #111;border-radius:15px;aspect-ratio:.91;height:100%;max-width:100%;overflow:hidden}.crest-frame img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}.house-figure{position:relative;align-self:center;width:100%;height:100%;grid-column:2;grid-row:1}.house-figure video{width:115%;height:100%;object-fit:contain;mix-blend-mode:multiply;margin-left:-7.5%}.house-title h2{font-size:clamp(2.5rem,3.8vw,4.8rem);line-height:1.15}.house-title>p{font:13px Pixel,monospace;letter-spacing:.07em;margin-top:12px}.house-title .text-button{font-size:12px;margin-top:17px}.house-copy{font:italic 16px/1.6 Bodoni,Georgia,serif;overflow:auto;padding-right:8px;scrollbar-width:thin}.house-copy p+p{margin-top:12px}.room{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-3;pointer-events:none}.room-haze{position:absolute;inset:0;pointer-events:none;z-index:-2;background:linear-gradient(#ffffff80,transparent 20%,transparent 80%,#ffffff80)}.shop-title{position:absolute;top:14%;left:38%;right:10%;text-align:center;z-index:3}.shop-title h2{font-size:clamp(2.5rem,4.2vw,4.8rem)}.shop-title .eyebrow{font-size:10px;margin-bottom:8px}.shop-actor{left:9%;bottom:14%;width:33vw;height:33vw;max-width:470px;max-height:470px;z-index:2}.speech{position:absolute;left:15%;top:-2%;transform:rotate(-3deg);font:26px Pirata;background:#fffef9;padding:8px 18px;border:1px solid #777;white-space:nowrap;opacity:0;transition:.3s}.settled .speech{opacity:1}.shop-counter{position:absolute;left:-2%;bottom:-4%;width:104%;height:31%;object-fit:fill;z-index:5;pointer-events:none}.card-stage{position:absolute;left:38%;right:4%;top:28%;height:47%;perspective:1400px;perspective-origin:50% 50%;z-index:4;touch-action:none}.carousel{position:absolute;left:50%;top:50%;transform-style:preserve-3d;width:0;height:0;will-change:transform}.ware{position:absolute;width:var(--card-w);height:var(--card-h);left:calc(var(--card-w) / -2);top:calc(var(--card-h) / -2);transform-style:preserve-3d;backface-visibility:hidden;border:1px solid #292923;border-radius:9px;padding:10px;background:#e6e6df;box-shadow:4px 7px 20px #0002;text-align:left;display:flex;flex-direction:column;cursor:pointer;transition:opacity .3s}.ware:before{content:'';position:absolute;inset:5px;border:1px solid #5c5c56;border-radius:6px;pointer-events:none}.ware:not(.selected){opacity:.35}.ware.selected{z-index:5}.card-top{font:12px monospace;display:flex;justify-content:space-between;border-bottom:1px solid;padding:4px 5px 9px;letter-spacing:.05em}.card-image{display:block;width:100%;height:51%;object-fit:contain;border:1px solid #777;background:#f5f5f5;margin-top:9px;filter:grayscale(1);transition:filter .4s}.ware:hover .card-image,.ware:focus-visible .card-image{filter:grayscale(0)}.card-name{font:29px/.97 Pirata,serif;margin:13px 5px 9px;min-height:52px;display:flex;align-items:center}.card-stats{display:flex;justify-content:space-between;border-top:1px solid #96968f;padding:8px 5px 0;font:12px monospace}.card-stats span:last-child{font-family:Arial;font-size:12px}.card-bottom{font:11px monospace;text-align:center;letter-spacing:.1em;margin-top:auto;padding-top:9px}.inventory-footer{position:absolute;left:42%;right:10%;bottom:17.5%;z-index:7;display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px 20px;background:#fffffff2;padding:12px 18px;border:1px solid #777;box-shadow:2px 3px 0 #0001}.project-roll{overflow:hidden}.project-roll .eyebrow{margin:0 0 3px;font-size:10px}.project-roll h3{font-size:clamp(1.4rem,2.4vw,2.4rem);line-height:1.1}.roll-in{animation:rollIn .5s}.card-controls{display:flex;align-items:center;gap:13px}.card-controls button,.guild-controls button{width:35px;height:35px;border:1px solid;background:white;font-size:18px}.card-controls>span{font:12px monospace}.card-hint{font-size:9px;letter-spacing:.07em;grid-column:1/-1}.wares .chapter-next,.tavern .chapter-next{bottom:113px;background:#ffffffdc;padding:4px 8px;border:1px solid #999;font-size:13px}.tavern-title{position:absolute;top:17%;left:15%;right:15%;text-align:center}.tavern-title h2{font-size:clamp(2.5rem,5vw,5.8rem)}.tavern-title .eyebrow{font-size:10px}.tavern-title>p:last-child{font:italic 21px Bodoni;margin-top:15px}.tavern-actor{width:34vw;height:34vw;max-width:430px;max-height:430px;left:17%;bottom:7%;z-index:3}.guest-position{position:absolute;width:32vw;height:32vw;max-width:420px;max-height:420px;left:54%;bottom:5%;z-index:4}.tavern-guest{width:100%;height:100%;position:relative;transform-origin:bottom;transition:opacity .5s,transform .65s}.guest-sprite{width:100%;height:100%;background-image:url('assets/guest-sheet.png');background-size:300% 100%;background-position:0 0;background-repeat:no-repeat}.tavern-guest img{position:absolute;left:34%;top:43%;width:31%;height:19%;object-fit:contain;mix-blend-mode:multiply;transform:rotate(2deg)}.tavern-guest[data-variant="1"] .guest-sprite{background-position:50% 0}.tavern-guest[data-variant="1"] img{top:37%;left:32%;width:36%;height:24%;transform:rotate(-2deg)}.tavern-guest[data-variant="2"] .guest-sprite{background-position:100% 0}.tavern-guest[data-variant="2"] img{top:37%;left:27%;width:30%;height:23%;transform:rotate(2deg)}.guest-leaving{opacity:0;transform:translateX(90px) translateY(-30px)}.guest-arriving{opacity:0;transform:translateX(180px) translateY(-30px)}.guild-controls{position:absolute;left:50%;transform:translateX(-50%);bottom:43%;display:flex;align-items:center;gap:20px;background:white;padding:8px 15px;border:1px solid #aaa;z-index:6;box-shadow:2px 3px #0001}.guild-controls .eyebrow{font-size:9px;margin-bottom:4px}.guild-controls #guest-name{font:24px Pirata;min-width:125px;text-align:center}.guild-controls div{text-align:center}.guild-controls #pause-guests{border:0;width:25px}.guild-roster{position:absolute;left:50%;transform:translateX(-50%);top:38%;max-width:65%;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;z-index:6}.guild-roster button{background:#fff;border:1px solid #aaa;padding:3px 8px;font:12px Pixel;white-space:nowrap}.guild-roster button.active{background:#e8e8e3;border-color:#222}.tavern-room{object-fit:fill;opacity:.8}.contact .ravens{position:absolute;left:13%;top:12%;width:27%;height:71%;object-fit:contain;mix-blend-mode:multiply}.contact-copy{position:absolute;left:45%;top:31%}.contact-copy h2{font-size:clamp(4rem,6.5vw,7rem)}.contact-copy .lead{font:27px/1.4 Bodoni;margin:25px 0}.email{display:block;font-size:14px;margin-top:24px}.contact-actor{width:130px;height:130px;left:20%;bottom:13%;opacity:.75}.contact footer{position:absolute;left:93px;bottom:115px;font-size:10px}#sword-cursor{position:fixed;top:0;left:0;width:22px;height:22px;pointer-events:none;z-index:10000;display:none}body.sword.cursor-visible #sword-cursor{display:block}@media(pointer:fine){body.sword.cursor-visible,body.sword.cursor-visible a,body.sword.cursor-visible button{cursor:none!important}}
dialog{background:white;color:var(--ink);border:1px solid;padding:45px;max-height:88svh;width:min(1000px,90vw);overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#7775;backdrop-filter:blur(9px)}dialog h2{font-size:60px;margin-bottom:30px}dialog .close{position:absolute;right:15px;top:12px;font-size:32px;z-index:5;width:40px;height:40px;background:white}.settings-panel{width:min(470px,90vw)}.settings-panel label{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:20px 0}.settings-panel select{background:transparent;border:1px solid;padding:6px;font-size:14px}.settings-panel input{accent-color:var(--ink);width:20px;height:20px}.settings-panel .game-button{margin-top:25px}.setting-note{font-size:12px;letter-spacing:0;line-height:1.7;margin-top:35px}.intro-screen{inset:0;width:100vw;height:100svh;max-width:none;max-height:none;background:white;padding:0;border:0;overflow:hidden}.intro-screen video{width:100%;height:100%;object-fit:contain}.intro-top,.intro-bottom{position:absolute;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:center;font:12px monospace;letter-spacing:.1em}.intro-top{top:30px}.intro-bottom{bottom:35px}.intro-top button,.intro-bottom button,#intro-play{border:1px solid #777;padding:10px 15px;background:#fffd;font:14px Arial}#intro-play{position:absolute;top:45%;left:45%}.lore-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.lore-portrait{align-self:center;aspect-ratio:1}.lore-info h3{font:36px Pirata}dl{margin:20px 0 28px}dl>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:10px 0}dt{font:12px monospace;text-transform:uppercase;color:#666}dd{margin:0;font-size:14px}.skills{list-style:none;padding:0;display:flex;gap:9px;flex-wrap:wrap;margin-bottom:25px}.skills li{border:1px solid;padding:5px 10px;font-size:13px}.pose-reference{border-top:1px solid #999;margin:25px 0;padding-top:15px}.pose-reference summary{cursor:pointer;font-size:14px}.pose-reference img{width:100%;margin-top:20px}.project-panel{width:min(1080px,92vw)}.project-header{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;margin-bottom:40px}.project-header h2{margin-top:10px;font-size:64px}.project-header p{line-height:1.75}.project-gallery{display:grid;gap:20px}.project-gallery img{display:block;width:100%;height:auto;background:#eee}.project-gallery img:first-child{max-height:600px;object-fit:contain}.project-headnote{font:12px monospace;margin-bottom:15px}.reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduced-motion .traveller,.reduced-motion .chapter-transition{display:none!important}
@keyframes walkFrames{0%,100%{background-position:33.333333% 0}33%{background-position:66.666667% 100%}66%{background-position:66.666667% 0}}@keyframes recoil{0%,100%{transform:none}20%{transform:translateX(18px) rotate(3deg)}40%{transform:translateX(-5px) rotate(-1deg)}60%{transform:translateX(10px) rotate(2deg)}}@keyframes hitWord{0%{opacity:0;translate:0 10px}30%{opacity:1}100%{opacity:0;translate:0 -60px}}@keyframes rollIn{from{opacity:0;transform:translateY(-90%)}to{opacity:1;transform:none}}
@media(min-width:1600px){:root{--card-w:320px;--card-h:460px}.card-name{font-size:34px}.house-grid{width:1000px}.house-title h2{font-size:61px}.house-copy{font-size:18px}}
@media(max-height:760px) and (min-width:701px){:root{--card-w:235px;--card-h:346px;--dock-height:60px}header{top:18px}.scene-index{top:85px}.house-grid{top:13%;height:67%;gap:16px 30px}.house-copy{font-size:15px}.house-title h2{font-size:40px}.house-title>p{font-size:12px}.hero-heading{top:16%}.hero-heading h1{font-size:68px}.hero blockquote{top:35%;font-size:20px}.hero cite{margin-top:10px}.battle-controls{bottom:23%}.shop-title{top:14%}.shop-title h2{font-size:40px}.card-name{font-size:24px;min-height:45px;margin:9px 5px}.card-top,.card-stats{font-size:11px}.card-bottom{font-size:10px}.inventory-footer{bottom:17%;padding:8px 14px}.card-hint{display:none}.shop-actor{bottom:10%;width:30vw;height:30vw}.tavern-title{top:16%}.guild-controls{bottom:41%}.contact-copy{top:26%}.contact-copy .lead{font-size:22px;margin:20px 0}}
@media(max-width:1000px) and (min-width:701px){:root{--card-w:230px;--card-h:350px}.house-grid{width:79vw;left:53%;gap:25px}.house-title h2{font-size:40px}.house-copy{font-size:15px}.house-figure video{width:125%;margin-left:-12.5%}.home-actor{left:8%;width:23vw;height:23vw}.goliath-wrap{right:0;width:38%}.hero blockquote{left:48%;width:330px;font-size:23px}.hero-heading{left:48%}.shop-title h2{font-size:40px}.card-stage{left:39%;right:0}.card-name{font-size:24px}.inventory-footer{left:39%;right:6%;gap:8px;padding:9px}.speech{font-size:22px}.scene-stepper{right:24px;bottom:112px}.guild-controls{bottom:42%}.tavern-title h2{font-size:48px}.contact-copy{left:43%}.contact-copy h2{font-size:65px}}
@media(max-width:700px){:root{--dock-height:64px;--card-w:215px;--card-h:330px}body:after{inset:6px}header{top:19px;left:20px;right:20px}.signature{left:0;transform:none;gap:7px;font-size:9px;letter-spacing:.06em}.signature img{width:32px;height:32px}.signature small{font-size:8px}.settings-btn{padding:3px;gap:4px}.settings-btn span{display:none}.progression{left:12px;gap:12px}.progression a{width:18px;height:18px}.progression:before{left:9px;top:8px;bottom:8px}.progression b{width:5px;height:5px}.progression .active b{width:8px;height:8px}.progression a span{left:23px}.game-dock{bottom:18px;width:calc(100% - 44px);max-width:410px;border-radius:13px}.game-dock .dock-home{width:54px;flex:0 0 54px}.game-dock a{width:auto;flex:1;padding:6px;gap:5px}.game-dock b{font-size:12px}.game-dock span{font-size:11px}.game-dock img{width:26px;height:26px}.scene-stepper{right:19px;bottom:91px;gap:7px;padding:0}.scene-stepper button{font-size:18px;width:24px;height:26px}.scene-stepper span{font-size:9px}.scene-index{top:80px;left:38px;font-size:9px}.hero-heading{top:17%;left:50%}.hero-heading h1{font-size:58px}.hero-heading .eyebrow{font-size:10px}.hero blockquote{top:31%;left:47%;width:280px;font-size:17px;line-height:1.45}.hero cite{font-size:8px;margin-top:12px}.home-actor{left:9%;bottom:27%;width:34vw;height:34vw}.fighter-label{font-size:7px;bottom:-13px}.goliath-wrap{width:49%;height:39%;right:-1%;bottom:26%}.enemy-stat{width:94px;right:12%;top:-6%;font-size:9px}.enemy-stat small{font-size:7px}.battle-controls{left:48%;bottom:18%;max-width:80%;width:80%}.battle-controls .game-button{padding:9px 15px;font-size:14px}.battle-controls p{font-size:12px;margin-top:10px}.opening-link{left:38px;bottom:103px;font-size:11px}.hero .chapter-next{display:none}.grid-ground{bottom:100px;height:35%}.house-grid{left:54%;top:13%;width:82%;height:72%;grid-template-rows:42% minmax(0,1fr);gap:18px 13px;overflow:auto;padding-right:3px;align-content:start;scrollbar-width:thin}.crest-frame{width:100%;height:auto;align-self:center;aspect-ratio:.91;max-height:100%}.house-figure video{width:145%;margin-left:-22.5%}.house-title h2{font-size:30px;line-height:1.1}.house-title>p{font-size:10px;line-height:1.3;letter-spacing:0}.house-title .text-button{font-size:11px;margin-top:14px}.house-copy{font-size:14px;line-height:1.6;overflow:auto;padding-right:3px}.house-copy p+p{margin-top:8px}.room{object-fit:cover;object-position:center}.room-haze{background:#ffffff60}.shop-title{left:12%;right:7%;top:14%}.shop-title h2{font-size:34px}.shop-title .eyebrow{font-size:9px}.card-stage{left:7%;right:0;top:30%;height:41%;perspective:1100px}.card-image{height:49%}.card-name{font-size:24px;min-height:45px;margin:9px 5px}.card-top{font-size:10px}.card-stats,.card-stats span:last-child{font-size:10px}.card-bottom{font-size:10px;padding-top:5px}.shop-actor{left:-6%;bottom:16%;width:48vw;height:48vw;max-width:none;max-height:none;z-index:3}.speech{display:none}.shop-counter{bottom:0;height:23%}.inventory-footer{left:9%;right:5%;bottom:15%;padding:9px 10px;gap:7px;grid-template-columns:1fr auto}.project-roll .eyebrow{font-size:8px}.project-roll h3{font-size:20px}.card-controls{gap:7px}.card-controls button{width:29px;height:29px}.card-controls>span{font-size:10px}.card-hint{font-size:8px}.wares .chapter-next,.tavern .chapter-next{display:none}.tavern-title{top:17%;left:13%;right:8%}.tavern-title .eyebrow{font-size:8px;letter-spacing:.08em}.tavern-title h2{font-size:40px}.tavern-title>p:last-child{font-size:19px;margin-top:10px}.tavern-room{object-fit:fill;opacity:.6}.guild-roster{top:36%;max-width:83%;width:83%;gap:6px}.guild-roster button{font-size:11px}.guild-controls{bottom:38%;gap:10px;padding:7px 9px;left:53%}.guild-controls #guest-name{min-width:108px;font-size:21px}.guild-controls button{width:27px;height:27px;font-size:14px}.guild-controls #pause-guests{width:18px}.tavern-actor{left:5%;bottom:10%;width:52vw;height:52vw}.guest-position{left:48%;bottom:9%;width:49vw;height:49vw}.contact .ravens{left:7%;top:14%;height:68%;width:31%;opacity:.65}.contact-copy{left:27%;right:7%;top:29%}.contact-copy h2{font-size:53px}.contact-copy .eyebrow{font-size:9px}.contact-copy .lead{font-size:23px;margin:23px 0}.contact-copy .game-button{font-size:13px;padding:10px 12px;gap:10px}.email{font-size:12px;margin-top:20px;overflow-wrap:anywhere}.contact-actor{left:3%;bottom:14%;width:110px;height:110px}.contact footer{left:38px;bottom:111px;font-size:8px}.lore-grid,.project-header{grid-template-columns:1fr;gap:20px}.lore-portrait{max-width:270px;justify-self:center;width:100%}.lore-panel,.project-panel,.settings-panel{padding:35px 22px;width:94vw;max-height:92svh}dialog h2{font-size:44px}.project-header h2{font-size:48px}.intro-top,.intro-bottom{font-size:9px}.intro-top>span{max-width:50%}.intro-screen video{height:80%;margin-top:10svh}.intro-bottom{bottom:40px}}
@media(max-width:700px) and (max-height:740px){:root{--card-w:180px;--card-h:280px}.hero-heading h1{font-size:50px}.hero blockquote{font-size:15px}.battle-controls{bottom:20%}.battle-controls p{display:none}.shop-title{top:15%}.shop-title h2{font-size:29px}.card-stage{top:31%;height:36%}.card-name{font-size:20px;min-height:37px;margin:8px 5px}.card-top{font-size:9px;padding-bottom:6px}.card-stats{padding-top:5px}.card-bottom{font-size:8px}.inventory-footer{bottom:19%;padding:7px}.card-hint{display:none}.shop-actor{bottom:19%;width:44vw;height:44vw}.house-grid{top:15%;height:67%;gap:12px}.house-title h2{font-size:25px}.house-copy{font-size:13px}.guild-controls{bottom:39%}.guild-roster{top:38%}.tavern-title h2{font-size:34px}.contact-copy .lead{font-size:20px}.contact-copy h2{font-size:44px}}

/* The foreground is the matching bottom slice of the new shop illustration. */
.shop-counter{left:0;bottom:0;width:100%;height:23%;background:url('assets/shop-room.png') center bottom / 100% 435% no-repeat}
@media(max-width:700px){.shop-counter{background-size:auto 435%}}
.signature{background:#ffffffdf;border-radius:6px;padding:3px 8px}
.scene-index{background:#ffffffd9;padding:2px 5px;left:88px}
.speech{top:-16%}
@media(min-width:1001px){.house-grid{grid-template-rows:minmax(0,1.4fr) minmax(0,1fr);gap:22px 38px}.crest-frame{justify-self:start}.house-copy{font-size:15px;line-height:1.5}.card-stage{top:27%;height:40%}.guild-controls{top:42%;bottom:auto}}
@media(min-width:1001px) and (min-height:761px) and (max-width:1599px){:root{--card-h:380px}}
dialog,dialog *{cursor:auto!important}dialog button,dialog a,dialog summary{cursor:pointer!important}
@media(max-width:700px){.scene-index{left:33px}.signature{padding:0;background:#ffffffdf}}
@media(max-width:700px){.enemy-stat{top:25%}.house-copy{overscroll-behavior:contain}.house-copy:focus-visible{outline:1px solid}}
/* Minimal hand-inked navigation. White paper, original mark, black lines. */
.game-dock{width:510px;height:76px;bottom:25px;padding:9px 15px 10px 11px;gap:10px;border:0;border-radius:0;overflow:visible;background:none;backdrop-filter:none;box-shadow:none;filter:none;isolation:isolate}
.game-dock:before,.game-dock:after{content:none}
.game-dock .dock-outline{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible}
.dock-outline path{stroke:#171717;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.dock-outline .dock-paper{fill:#fff}.dock-outline .dock-pencil{fill:none;stroke-width:.55;opacity:.55}
.game-dock a{position:relative;display:flex;flex:1;width:auto;min-width:0;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:4px 6px;color:#171717;background:none!important;transition:transform .18s ease}
.game-dock .dock-label{display:flex;flex-direction:column;align-items:flex-start;gap:5px;white-space:nowrap}
.game-dock b{font:20px/1.1 Pirata,Georgia,serif;font-weight:400;letter-spacing:.01em}
.game-dock .dock-label>span{font:italic 12px/1.1 Bodoni,Georgia,serif;letter-spacing:0}
.game-dock .dock-icon{width:22px;height:27px;flex:0 0 22px;fill:none;stroke:#171717;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;transform:rotate(-3deg)}
.game-dock .dock-command:nth-of-type(3) .dock-icon{transform:rotate(3deg)}
.game-dock .dock-selection{position:absolute;width:66%;height:7px;left:20%;bottom:-4px;fill:none;stroke:#171717;stroke-width:.85;stroke-linecap:round;opacity:0;transform:scaleX(.65);transform-origin:left;transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.game-dock .dock-selection path{vector-effect:non-scaling-stroke}
.game-dock .dock-command.active .dock-selection,.game-dock .dock-command:hover .dock-selection,.game-dock .dock-command:focus-visible .dock-selection{opacity:1;transform:scaleX(1)}
.game-dock .dock-command:hover{transform:translateY(-1px)}
.game-dock .dock-command:active{transform:translateY(1px)}
.game-dock a:focus-visible{outline:1px dashed #171717;outline-offset:2px;border-radius:3px}
.game-dock .dock-home{flex:0 0 53px;width:53px;height:56px;padding:0;align-self:center}
.game-dock .dock-seal{position:relative;display:grid;place-items:center;width:55px;height:55px;background:#fff;transform:rotate(-8deg);transition:transform .2s ease;border:0;box-shadow:none}
.game-dock .dock-seal>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke:#171717;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.game-dock .dock-seal .seal-trace{stroke-width:.65;opacity:.65}
.game-dock .dock-seal img{width:31px;height:31px;object-fit:contain;mix-blend-mode:multiply;filter:none}
.game-dock .dock-home:hover .dock-seal,.game-dock .dock-home:focus-visible .dock-seal{transform:rotate(-2deg)}
@media(max-width:700px){.game-dock{width:calc(100% - 30px);max-width:430px;height:71px;bottom:18px;padding:8px 9px 9px 6px;gap:5px}.game-dock a{flex-direction:column;padding:3px 2px;gap:2px}.game-dock .dock-home{flex:0 0 43px;width:43px;height:52px}.game-dock .dock-seal{width:46px;height:46px}.game-dock .dock-seal img{width:27px;height:27px}.game-dock .dock-icon{width:18px;height:19px;flex:0 0 19px;stroke-width:1.1}.game-dock .dock-label{align-items:center;gap:2px}.game-dock b{font-size:17px;line-height:1}.game-dock .dock-label>span{font-size:11px;line-height:1}.game-dock .dock-selection{left:15%;width:70%;height:5px;bottom:-5px}}
@media(max-width:360px){.game-dock{width:calc(100% - 24px);gap:3px}.game-dock .dock-home{flex-basis:40px}.game-dock b{font-size:16px}.game-dock .dock-label>span{font-size:10px}}

/* Fine stepped corners and a second ink line, following the supplied button reference. */
.dock-outline .dock-paper{stroke-width:1.1}.dock-outline .dock-inset{fill:none;stroke-width:.7;opacity:.85}.dock-outline .dock-pencil{stroke-width:.45;opacity:.35}
.game-dock .dock-selection{bottom:0}

/* Outline treatment for the three navigation titles. */
.game-dock .dock-label b{color:#fff;-webkit-text-stroke:.85px #171717;paint-order:fill stroke}

/* Title-aligned symbols, unbracketed captions, and a pencil-circle selection. */
.game-dock{padding-left:17px;gap:8px}
.game-dock .dock-command{display:grid;grid-template-columns:22px max-content;grid-template-rows:auto;align-content:center;align-items:start;justify-content:center;column-gap:7px;padding:5px 4px}
.game-dock .dock-icon{grid-column:1;grid-row:1;width:22px;height:22px;margin:0;align-self:start}
.game-dock .dock-label{grid-column:2;grid-row:1;gap:6px}
.game-dock .dock-label b{line-height:22px}
.game-dock .dock-label>span{line-height:14px}
.game-dock .dock-selection{inset:-2px -5px;width:calc(100% + 10px);height:calc(100% + 4px);stroke-width:.8;transform:rotate(-2deg);transform-origin:center;transition:opacity .2s ease}
.game-dock .dock-command.active .dock-selection,.game-dock .dock-command:hover .dock-selection,.game-dock .dock-command:focus-visible .dock-selection{transform:rotate(-2deg)}
.game-dock .dock-home{flex-basis:65px;width:65px;transform:translateX(3px)}
.game-dock .dock-seal{width:65px;height:65px;flex-shrink:0}
.game-dock .dock-seal img{width:38px;height:38px}
@media(max-width:700px){.game-dock{padding-left:11px;gap:4px}.game-dock .dock-home{flex-basis:52px;width:52px;transform:translateX(2px)}.game-dock .dock-seal{width:57px;height:57px}.game-dock .dock-seal img{width:33px;height:33px}.game-dock .dock-command{grid-template-columns:14px max-content;column-gap:3px;padding:6px 0;align-content:center}.game-dock .dock-icon{width:14px;height:17px}.game-dock .dock-label{align-items:flex-start;gap:5px}.game-dock .dock-label b{font-size:16px;line-height:17px}.game-dock .dock-label>span{font-size:11px;line-height:13px}.game-dock .dock-selection{inset:0 -3px;width:calc(100% + 6px);height:100%}}
@media(max-width:360px){.game-dock{padding-left:8px;gap:2px}.game-dock .dock-home{flex-basis:45px;width:45px}.game-dock .dock-seal{width:51px;height:51px}.game-dock .dock-seal img{width:30px;height:30px}.game-dock .dock-command{grid-template-columns:12px max-content;column-gap:2px}.game-dock .dock-icon{width:12px}.game-dock .dock-label b{font-size:14px}}
.game-dock .dock-seal{background:transparent}

/* Readable old-style titles with a handwritten script beneath. */
@font-face{font-family:IMFellEnglish;src:url('assets/im-fell-english.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:MarckScript;src:url('assets/marck-script.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:HomemadeApple;src:url('assets/homemade-apple.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:PermanentMarker;src:url('assets/permanent-marker.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.game-dock .dock-label{gap:2px}
.game-dock .dock-label b{font-family:IMFellEnglish,Georgia,serif;font-size:20px;font-weight:400;font-style:normal;line-height:23px;letter-spacing:0;color:#171717;-webkit-text-stroke:0;paint-order:normal}
.game-dock .dock-label>span{font-family:PermanentMarker,cursive;font-size:14px;line-height:23px;font-weight:400;font-style:normal;color:#777}
.game-dock .dock-icon{margin-top:1px}
@media(max-width:700px){.game-dock .dock-command{grid-template-columns:13px max-content;column-gap:3px}.game-dock .dock-label{gap:2px}.game-dock .dock-label b{font-size:15.5px;line-height:18px}.game-dock .dock-label>span{font-size:12px;line-height:21px}.game-dock .dock-icon{width:13px;height:17px}}
@media(max-width:360px){.game-dock .dock-command{grid-template-columns:11px max-content;column-gap:2px}.game-dock .dock-label b{font-size:14px}.game-dock .dock-label>span{font-size:11px}.game-dock .dock-icon{width:11px}}
/* Return to the original blackletter titles, now solid ink. */
.game-dock .dock-label b{font-family:Pirata,Georgia,serif;color:#171717;-webkit-text-stroke:0}
/* Living illustrated stages: camera, actors, and atmosphere move independently. */
.scene{--look-x:0px;--look-y:0px}
.scene-world{position:absolute;inset:0;z-index:-3;pointer-events:none;overflow:hidden;transform-origin:50% 48%;will-change:transform}
.scene-world .room{inset:-2%;width:104%;height:104%;object-fit:fill;object-position:center;transform:translate(calc(var(--look-x)*-.65),calc(var(--look-y)*-.65)) scale(1.015);transform-origin:50% 55%}
.active-scene.settled .scene-world .room{animation:roomBreath 16s ease-in-out infinite alternate}
.scene-atmosphere{position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none}
.hero .grid-ground{display:none}
.hero .goliath-wrap{transform-origin:50% 95%}
.hero.settled .goliath{animation:giantBreath 4.5s ease-in-out infinite}
.actor-mount{translate:calc(var(--look-x)*.28) calc(var(--look-y)*.18)}
.settled .sprite.resting-actor{animation:actorBreath 4s ease-in-out infinite;transform-origin:50% 92%}
.shop-actor .sprite{animation-delay:-1.1s!important}
.tavern-actor .sprite{animation-duration:5.3s!important}
.shop-counter{translate:calc(var(--look-x)*.5) 0;left:-1%;width:102%}
.settled .speech{animation:signSway 6s ease-in-out infinite;transform-origin:50% -15%}
.tavern-guest .guest-sprite{animation:guestBreath 5.5s ease-in-out infinite;transform-origin:50% 90%}
.house-figure:after{content:'';position:absolute;left:76%;top:39%;width:14px;height:1px;background:#fff;box-shadow:0 0 2px #fff;rotate:-38deg;opacity:0;pointer-events:none}
.house.settled .house-figure:after{animation:swordGlint 9s ease-in-out infinite}
.contact .ravens{opacity:.55;mix-blend-mode:multiply;translate:calc(var(--look-x)*.2) 0}
.contact footer{background:#ffffffda;padding:2px 5px}
.hero .battle-controls p,.hero .fighter-label{background:#ffffffd9;padding:2px 5px}
.arriving .scene-copy{animation:sceneCopyIn .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(150ms + var(--entry-delay,0ms))}
.landing-ring{position:fixed;height:11px;pointer-events:none;z-index:47;border:1px solid #24242455;border-radius:50%;opacity:0;transform:translate(-50%,-50%)}
.landing-ring.landed{animation:landingPuff .6s ease-out both}
.traveller{filter:drop-shadow(0 2px 0 #ffffffaa)}
.traveller .sprite{background-color:transparent}
.reduced-motion .scene-world .room{transform:scale(1.015)!important}
.reduced-motion .actor-mount,.reduced-motion .shop-counter,.reduced-motion .ravens{translate:0 0!important}
.reduced-motion .scene-atmosphere,.reduced-motion .landing-ring{display:none}
@keyframes roomBreath{from{transform:translate(calc(var(--look-x)*-.65 - 2px),calc(var(--look-y)*-.65)) scale(1.015)}to{transform:translate(calc(var(--look-x)*-.65 + 3px),calc(var(--look-y)*-.65 - 2px)) scale(1.035)}}
@keyframes actorBreath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.003,1.009)}}
@keyframes guestBreath{0%,100%{transform:rotate(-.2deg)}50%{transform:rotate(.4deg) translateY(-2px)}}
@keyframes giantBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.009,1.016) translateY(-2px)}}
@keyframes signSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(-1.1deg)}}
@keyframes swordGlint{0%,78%,88%,100%{opacity:0;scale:.3}82%{opacity:.9;scale:1.5}}
@keyframes sceneCopyIn{from{opacity:0;filter:blur(2px);translate:0 12px}to{opacity:1;filter:blur(0);translate:0 0}}
@keyframes landingPuff{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}20%{opacity:.65}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}
@media(max-width:700px){.scene-world .room{object-fit:cover}.house .scene-world .room,.tavern .scene-world .room{object-fit:fill}.hero .scene-world .room{object-position:48% center;opacity:.72}.contact .scene-world .room{object-position:35% center;opacity:.8}.house-copy{background:#ffffffd9}.scene-atmosphere{opacity:.7}}
/* Stage blocking follows each room's perspective. */
@media(min-width:701px){
 .house-grid{display:block;top:16%;height:69%;width:min(980px,78vw)}
 .house-grid .crest-frame{position:absolute;left:1%;top:0;height:59%;max-width:42%;background:#ffffffde}
 .house-title{position:absolute;left:1%;bottom:0;width:48%;background:#ffffffdb;padding:7px 10px}
 .house-grid .house-figure{position:absolute;right:-3%;bottom:-3%;width:49%;height:60%}
 .house-copy{position:absolute;right:0;top:0;width:49%;max-height:39%;background:#ffffffe8;padding:12px 16px}
 .tavern-actor{left:13%;bottom:-3%;width:42vw;height:42vw;max-width:490px;max-height:490px}
 .guest-position{left:61%;bottom:6%;width:28vw;height:28vw;max-width:340px;max-height:340px}
 .tavern-title{left:17%;right:26%;top:16%}
 .tavern-title h2{font-size:clamp(2.7rem,4.4vw,5rem)}
 .guild-roster{left:47%;max-width:61%}
 .guild-controls{left:47%}
}
.house-figure{mix-blend-mode:multiply}
.goliath-wrap{mix-blend-mode:multiply}
.house-grid{mix-blend-mode:multiply}
@media(max-width:700px){.house .scene-world .room{opacity:.22}.house-copy{background:#fff}.house-title{background:#ffffffdf}}
/* Keep the video blended with the room without blending the text panels. */
.house-grid{mix-blend-mode:normal;transform:none;left:0;right:0;margin-inline:auto}
@media(max-width:700px){.house-grid{left:auto;right:5%;margin-inline:0}}
/* White paper pools behind the original, non-alpha character artwork. */
.hero .scene-world:after,.house .scene-world:after{content:'';position:absolute;inset:0;pointer-events:none}
.hero .scene-world:after{background:radial-gradient(ellipse 20% 29% at 81% 62%,white 65%,#ffffffed 84%,#ffffff00 112%)}
.house .scene-world:after{background:radial-gradient(ellipse 15% 17% at 71% 68%,#fffffff5 65%,#ffffff00 115%)}
@media(max-width:700px){.house .scene-world:after{display:none}.hero .scene-world:after{background:radial-gradient(ellipse 34% 22% at 78% 60%,#fffffff5 60%,#ffffff00 112%)}}
/* A closer shopkeeper rests his forearm on the foreground counter. */
.shop-actor{--keeper-size:min(43vw,570px,61vh);left:3%;bottom:15%;width:var(--keeper-size);height:var(--keeper-size);max-width:none;max-height:none;z-index:6;pointer-events:none}
.shopkeeper-lean{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transform-origin:42% 91%}
.shop-actor{mix-blend-mode:multiply}
.settled .shopkeeper-lean{animation:keeperBreath 5s ease-in-out infinite}
.shop-actor .speech{left:18%;top:-7%;font-size:clamp(21px,2.2vw,28px);background:white}
@keyframes keeperBreath{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(-.25deg) scale(1.003,1.006)}}
@media(max-width:700px){.shop-actor{--keeper-size:49vw;left:-5%;bottom:19%;z-index:3}.shop-actor .speech{display:none}}
@media(max-width:700px) and (max-height:740px){.shop-actor{bottom:23%;--keeper-size:43vw}}
/* Preserve opaque white clothing while trimming the paper around the silhouette. */
.shop-actor,.shopkeeper-lean{mix-blend-mode:normal}
.shopkeeper-lean{clip-path:polygon(2% 72%,4% 63%,6% 54%,10% 46%,16% 41%,22% 37%,21% 33%,22% 25%,25% 16%,27% 10%,31% 7%,36% 5%,36% 2%,41% 1%,47% 4%,54% 6%,59% 11%,63% 17%,64% 24%,63% 31%,61% 38%,60% 40%,67% 44%,74% 51%,77% 47%,76% 42%,76% 38%,79% 34%,84% 33%,90% 37%,94% 35%,98% 35%,99% 38%,95% 40%,93% 44%,91% 49%,92% 58%,93% 70%,93% 81%,90% 87%,86% 89%,81% 88%,76% 83%,72% 77%,69% 70%,65% 76%,63% 80%,66% 84%,69% 88%,67% 89%,67% 93%,64% 98%,60% 99%,53% 97%,48% 94%,37% 94%,27% 93%,17% 90%,10% 85%,7% 78%)}
@media(max-width:700px){
 .wares .card-stage{left:40%;right:2%}
 .shop-actor{--keeper-size:45vw;left:-5%;bottom:21%;z-index:6}
}
/* The viewport carries the same stepped, double-ink treatment as the dock. */
body:after{display:none}
.page-outline{position:fixed;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);z-index:65;pointer-events:none;overflow:visible}
.page-outline path{fill:none;stroke:#171717;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.page-outline .page-outline-backing{stroke:white;stroke-width:3.5;opacity:.85}
.page-outline .page-outline-inner{stroke-width:.7;opacity:.85}
.page-outline .page-outline-pencil{stroke-width:.45;opacity:.35}
@media(max-width:700px){.page-outline{inset:3px;width:calc(100% - 6px);height:calc(100% - 6px)}}

.page-outline .page-outline-outside{fill:#fff;stroke:none;fill-rule:evenodd}
/* Battle camera: close rear silhouette, distant full-body giant. */
.rpg-frame{border:14px solid transparent;border-image:url('assets/game-panel.svg') 18 fill / 14px / 0 stretch;background:none;box-shadow:none}
.battle-hero .scene-world:after{display:none}
.battle-hero .arena-room{object-fit:fill;opacity:1}
.battle-hero .home-actor{left:-9%;bottom:-22%;width:min(79vw,104vh);height:min(79vw,104vh);max-width:none;max-height:none;z-index:5;pointer-events:none}
.battle-jordain{display:block;width:100%;height:100%;object-fit:contain;transform-origin:30% 95%;clip-path:polygon(0% 100%,0% 74%,7% 68%,2% 69%,1% 64%,3% 59%,3% 52%,6% 46%,6% 42%,12% 35%,15% 30%,23% 23%,21% 19%,23% 9%,26% 4%,34% 3%,39% 1%,44% 4%,49% 7%,52% 13%,51% 18%,51% 22%,49% 23%,54% 26%,58% 32%,60% 36%,59% 39%,62% 43%,65% 51%,67% 55%,68% 53%,71% 56%,99.5% 35%,99.5% 38%,73% 60%,76% 64%,73% 66%,71% 64%,69% 66%,63% 67%,61% 69%,58% 68%,68% 74%,71% 79%,76% 85%,78% 93%,81% 100%)}
.battle-hero.settled:not(.combat) .battle-jordain{animation:battleReady 5s ease-in-out infinite}
.battle-hero .goliath-wrap{left:55%;right:auto;bottom:24%;width:min(39vw,49vh);height:61vh;z-index:2;mix-blend-mode:normal;transform-origin:50% 95%}
.battle-hero .goliath{object-fit:fill;mix-blend-mode:normal;clip-path:polygon(1% 95%,3% 92%,15% 86%,19% 83%,18% 75%,20% 67%,19% 59%,22% 53%,23% 48%,22% 46%,20% 49%,20% 55%,17% 58%,10% 58%,7% 56%,8% 51%,11% 47%,10% 45%,15% 38%,20% 34%,19% 30%,21% 29%,23% 23%,28% 19%,33% 17%,27% 17%,23% 16%,20% 13%,20% 8%,23% 9%,24% 13%,29% 14%,31% 12%,29% 10%,30% 7%,33% 4%,39% 4%,42% 7%,45% 7%,46% 4%,42% 1%,45% 1%,49% 3%,49% 7%,46% 10%,53% 10%,60% 9%,65% 11%,69% 16%,74% 18%,76% 23%,82% 22%,86% 28%,90% 34%,89% 38%,92% 42%,90% 45%,84% 49%,80% 49%,73% 45%,70% 42%,74% 36%,74% 33%,68% 29%,64% 26%,62% 28%,62% 33%,69% 40%,73% 48%,79% 55%,80% 58%,77% 58%,82% 66%,87% 72%,86% 80%,88% 86%,96% 94%,98% 98%,89% 100%,67% 99%,64% 96%,67% 90%,68% 84%,61% 78%,60% 72%,52% 66%,50% 70%,41% 69%,40% 75%,36% 81%,35% 87%,37% 92%,36% 97%,18% 97%,6% 97%)}
.battle-hero .enemy-stat{top:-12%;right:-12%;width:172px;transform:rotate(2deg);padding:4px 9px 7px;line-height:1.1;z-index:4;font:24px/1 Pirata,serif;letter-spacing:0}
.battle-hero .enemy-stat small{font:9px/1.5 monospace;letter-spacing:.1em;margin:5px 0 8px}
.battle-hero .enemy-stat meter{height:7px}
.battle-hero .goliath-wrap.hurt{animation:none}
.battle-hero .goliath-wrap.hurt .goliath{animation:battleRecoil .5s ease-out}
.battle-hero .goliath-wrap.defeated{transform:translateY(3%) rotate(7deg);opacity:.2;transition:transform .8s,opacity .8s}
.battle-hero .hit-word{left:28%;top:36%;font-size:32px;z-index:6}
.battle-hero .battle-controls{left:auto;right:6%;bottom:16%;transform:none;max-width:none;width:300px;text-align:left;z-index:25}
.battle-toggle{width:100%;display:flex;align-items:center;gap:15px;padding:4px 14px;font:30px/1.2 Pirata,serif;text-align:left;min-height:69px}
.battle-toggle svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.1}
.battle-toggle small{font:11px monospace;margin-left:auto;white-space:nowrap}
.battle-toggle .battle-fold{font:24px MarckScript,serif}
.battle-toggle[aria-expanded=true] .battle-fold{rotate:45deg}
.battle-toggle:hover{color:#555}
.battle-actions{position:absolute;bottom:calc(100% + 7px);width:100%;padding:9px 12px}
.battle-actions[hidden]{display:none}
.battle-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font:20px MarckScript,serif;margin-bottom:4px}
.battle-menu-heading button{font:27px/1 MarckScript,serif;width:30px;height:32px}
.battle-move{display:block;width:100%;padding:11px 6px;text-align:left;border-top:1px solid #aaa;position:relative}
.battle-move[hidden]{display:none}
.battle-move b{display:block;font:24px/1.1 Pirata,serif;font-weight:400}
.battle-move span{display:block;font:16px/1.3 MarckScript,serif;margin:4px 0}
.battle-move small{font:9px/1.3 monospace;letter-spacing:.05em}
.battle-move:hover:after,.battle-move:focus-visible:after{content:'';position:absolute;inset:5px -5px;border:1px solid #222;border-radius:49% 51% 48% 52%;rotate:-2deg;pointer-events:none}
.battle-strike{position:absolute;left:57%;top:23%;width:26%;height:39%;z-index:9;pointer-events:none;opacity:0;transform:rotate(var(--strike-angle,-8deg))}
.battle-strike path{fill:none;stroke:#111;stroke-width:3;stroke-linecap:round;stroke-dasharray:360;stroke-dashoffset:360;filter:drop-shadow(2px 1px 0 white)}
.battle-strike.striking{opacity:1}
.battle-strike.striking path{animation:bladeArc .45s ease-out both}
@keyframes bladeArc{0%{stroke-dashoffset:360;opacity:0}30%{opacity:1}65%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-360;opacity:0}}
@keyframes battleReady{0%,100%{transform:rotate(0) translateY(0)}50%{transform:rotate(-.35deg) translateY(-3px)}}
@keyframes battleRecoil{0%{transform:rotate(0)}25%{transform:translate(9px,-3px) rotate(3deg)}60%{transform:translate(-3px,1px) rotate(-1deg)}100%{transform:none}}
/* Settings belongs to the same paper-and-ink game interface. */
.settings-btn.rpg-frame{padding:2px 10px;border-width:10px;border-image-width:10px;gap:8px;font:22px/1.2 Pirata,serif;top:-5px;min-height:48px}
.settings-btn svg{width:21px;height:21px}
.settings-btn span{display:inline}
.settings-panel.rpg-frame{padding:27px 30px 30px;width:min(470px,92vw);border-width:16px;border-image-width:16px}
.settings-panel h2{font-size:43px}.settings-panel .eyebrow{font-size:10px;margin-bottom:8px}
.settings-panel label{font:24px/1.2 Pirata,serif;border-bottom:1px solid #bcbcbc;padding:20px 0}
.settings-panel select{font:17px MarckScript,serif;background:white;border-radius:2px;padding:7px;max-width:58%}
.settings-panel input{width:19px;height:19px}
.settings-panel .game-button{font:24px Pirata,serif;width:100%;padding:10px;background:white;border:1px solid #444;box-shadow:none}
.settings-panel .setting-note{font:16px/1.4 MarckScript,serif;letter-spacing:0;margin-top:20px}
.settings-panel::backdrop{background:#ffffffaa;backdrop-filter:blur(4px)}
.settings-panel .close{font:34px MarckScript,serif;right:3px;top:3px;width:34px;height:34px}
@media(max-width:700px){
 .battle-hero .home-actor{left:-33%;bottom:-7%;width:110vw;height:110vw}
 .battle-hero .goliath-wrap{left:45%;bottom:42%;width:50vw;height:44vh;max-height:410px}
 .battle-hero .enemy-stat{top:-13%;right:0;width:140px;font-size:21px;border-width:11px;border-image-width:11px;padding:3px 6px}
 .battle-hero .battle-controls{right:6%;bottom:17%;width:210px}
 .battle-toggle{font-size:25px;min-height:59px;gap:9px;padding:2px 7px}
 .battle-toggle svg{width:22px;height:22px}.battle-toggle small{font-size:9px}
 .battle-actions{width:min(290px,84vw);right:0;padding:6px 8px}.battle-move{padding:9px 5px}.battle-move b{font-size:22px}
 .battle-hero .arena-room{object-fit:fill;opacity:1}
 .battle-strike{left:44%;top:19%;width:46%;height:39%}
 .settings-btn.rpg-frame{right:0;top:-3px;font-size:18px;padding:1px 4px;gap:5px;min-height:39px;border-width:8px;border-image-width:8px}
 .settings-btn svg{width:17px;height:17px}.settings-panel.rpg-frame{padding:23px 18px}
}
@media(max-height:680px) and (min-width:701px){.battle-hero .battle-controls{bottom:20%;width:260px}.battle-move{padding:6px 4px}.battle-actions{padding:5px 9px}.battle-menu-heading{margin:0}.battle-hero .goliath-wrap{bottom:24%;height:58vh}.battle-hero .enemy-stat{top:-14%}}
.reduced-motion .battle-jordain,.reduced-motion .battle-strike path{animation:none!important}
@media(min-width:701px){.battle-hero .goliath-wrap{bottom:18%;height:64vh}.battle-hero .enemy-stat{top:-11%;right:0}}
/* A battle is a fixed camera; focusing a move must never scroll the stage. */
.battle-hero{overflow:clip}
@media(max-width:700px){
 .battle-hero .goliath-wrap{left:35%;bottom:25%;width:min(62vw,33vh);height:min(82.67vw,44vh);max-height:none}
 .battle-hero .enemy-stat{top:-30%;right:0}
}

/* Minimal battle HUD; the original Webflow slider gesture, scaled to this icon. */
.settings-btn{width:44px;height:44px;top:-5px;padding:8px;justify-content:center;background:transparent;border:0;box-shadow:none;color:#171717}
.settings-btn svg{width:28px;height:28px;flex:none}
.settings-btn circle{transition:transform .4s ease}
.settings-btn:is(:hover,:focus-visible) .settings-dot{transform:translateX(12px)}
.settings-btn:is(:hover,:focus-visible) .settings-dot-middle{transform:translateX(-12px)}
.settings-btn .settings-tooltip{display:block;position:absolute;right:0;top:calc(100% + 4px);padding:3px 7px;background:#fff;font:16px/1.2 MarckScript,serif;opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease;pointer-events:none;white-space:nowrap}
.settings-btn:is(:hover,:focus-visible) .settings-tooltip{opacity:1;transform:translateY(0)}
.battle-hero .hero-quote{top:8.5%;left:50%;width:min(550px,58vw);font:clamp(20px,1.8vw,28px)/1.4 Bodoni,Georgia,serif;z-index:12;pointer-events:none;text-wrap:balance}
.hero-quote p{margin:0}.hero-quote cite{display:block;margin-top:9px;font:17px/1.2 MarckScript,serif;letter-spacing:0;text-transform:none}
.battle-hero .enemy-stat{width:172px;font-size:24px}
.battle-hero .enemy-stat meter{margin-top:9px}
.battle-hero .battle-controls{width:64px}
.battle-toggle{width:64px;height:64px;min-height:0;padding:3px;gap:0;justify-content:center}
.battle-toggle svg{width:30px;height:30px;flex:none}
.battle-actions{right:0;width:300px;max-width:84vw;max-height:calc(78vh - 90px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:700px){
 .settings-btn{top:-5px;right:-4px}
 .battle-hero .hero-quote{top:11%;width:80%;font-size:18px;line-height:1.4}
 .hero-quote cite{font-size:15px;margin-top:7px}
 .battle-hero .enemy-stat{width:145px;font-size:21px}
 .battle-hero .battle-controls{width:58px}.battle-toggle{width:58px;height:58px}.battle-toggle svg{width:27px;height:27px}
 .battle-actions{width:290px}
}
.reduced-motion .settings-btn circle,.reduced-motion .settings-tooltip{transition:none}


/* Consistent centered title/caption pairs across the navigation. */
.game-dock .dock-command .dock-label{gap:0;align-items:center;text-align:center}
.game-dock .dock-command .dock-label>span{font-size:12px;line-height:18px}
@media(max-width:700px){.game-dock .dock-command .dock-label>span{font-size:11px;line-height:16px}}

/* The home chapter leaves a dark ink impression in the drawn seal. */
.game-dock .dock-seal>svg>path:first-child{transition:fill .2s ease}
.game-dock .dock-home[aria-current="page"] .dock-seal>svg>path:first-child{fill:#171717}
.game-dock .dock-home[aria-current="page"] .seal-trace{stroke:#fff;opacity:.65}
.game-dock .dock-home[aria-current="page"] .dock-seal img{position:relative;filter:none;mix-blend-mode:normal;background:#fff;border-radius:50%}

/* Black sealing wax: pooled edges and an inset stamp, without reversing the J. */
.game-dock .dock-seal .wax-details{opacity:0;transition:opacity .2s ease}
.game-dock .dock-home[aria-current="page"] .dock-seal>svg{filter:drop-shadow(0 1.5px 1px #0005)}
.game-dock .dock-home[aria-current="page"] .dock-seal>svg>path:first-child{fill:url(#home-wax-body);stroke:#191919;stroke-width:.7}
.game-dock .dock-home[aria-current="page"] .seal-trace{opacity:0}
.game-dock .dock-home[aria-current="page"] .wax-details{opacity:1}
.game-dock .dock-home[aria-current="page"] .dock-seal img{box-shadow:0 -1px 1px #0009,0 1px 1px #aaa5}

/* The wax pools out from the stamp, then recedes when leaving Home. */
.game-dock .dock-seal .wax-pool{clip-path:circle(0% at 50% 50%);transition:clip-path .75s cubic-bezier(.22,.7,.25,1);transform-box:view-box}
.game-dock .dock-home[aria-current="page"] .wax-pool{clip-path:circle(72% at 50% 50%)}
.game-dock .dock-seal .wax-pool .wax-details{opacity:1;transition:none}
.game-dock .dock-home[aria-current="page"] .dock-seal>svg>path:first-child{fill:none}
.game-dock .dock-seal img{position:relative}
.reduced-motion .game-dock .wax-pool{transition:none}

