@font-face{font-family:Editorial;src:url('assets/editorial.ttf') format('truetype');font-weight:300 700;font-display:swap}@font-face{font-family:Manrope;src:url('assets/interface.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{color-scheme:dark;--cream:#f7f3e7;--gold:#deca9e;--muted:#c7d2cd;--ink:#193a3d;--line:#f9f0d72b}*{box-sizing:border-box}body{margin:0;background:#122e34;color:var(--cream);font:13px/1.5 Manrope,system-ui,sans-serif;min-height:100svh}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--line);background:#ffffff05;border-radius:12px;padding:10px 16px;min-height:44px;transition:background .18s,transform .18s}button:hover{background:#ffffff14}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.3;cursor:default}button:disabled:hover{background:inherit}svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}#landscape,.shade,.grain{position:fixed;inset:0;pointer-events:none}#landscape{background:center/cover url('assets/coast.webp');transition:filter 1.5s,background-image 1s;transform:scale(1.01)}body[data-phase="1"] #landscape{filter:sepia(.15) saturate(.85) brightness(.77)}body[data-phase="2"] #landscape{filter:saturate(.55) brightness(.48) hue-rotate(8deg)}.shade{background:linear-gradient(90deg,#0b232d70 0%,#0b252d12 42%,#0b242e4d 100%),linear-gradient(0deg,#0c242deb 0%,#0c242d15 50%,#0c242d50 100%)}.grain{opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}main{position:relative;max-width:1440px;margin:auto;padding:32px 64px 22px;min-height:100svh;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;color:var(--cream);text-decoration:none;font:24px/1 Editorial,Georgia,serif;letter-spacing:5px}.brand-mark{display:grid;place-items:center;width:42px;height:48px;border:1px solid #e5d8b873;border-radius:22px 22px 4px 4px;font:29px Editorial;letter-spacing:0}.brand small{display:block;font:8px/1.5 Manrope,sans-serif;letter-spacing:2.2px;margin-top:7px}.edition{font-size:8px;letter-spacing:2.6px;opacity:.7}nav{display:flex;align-items:center;gap:12px}.nav-button{display:flex;align-items:center;gap:10px;border:0;font-size:11px}.icon{width:44px;padding:10px}.layout{display:grid;grid-template-columns:1fr 440px;gap:60px;align-items:center;flex:1;padding:34px 0}.travel-copy{align-self:stretch;display:flex;flex-direction:column;justify-content:center;position:relative;padding:40px 0;max-width:580px}.eyebrow{font-size:9px;letter-spacing:2.6px;font-weight:500;color:#eadfc7}h1{font:400 clamp(58px,6.4vw,90px)/.95 Editorial,Georgia,serif;letter-spacing:-1.5px;margin:24px 0 24px;text-wrap:balance;text-shadow:0 2px 40px #10292b30}.intro{font:13px/1.9 Manrope,sans-serif;letter-spacing:.15px;color:#f6f0dfd9;margin:0}.travel-note{margin-top:80px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;font:italic 23px Editorial,Georgia,serif}.fine-rule{width:46px;height:1px;background:#e1cfa8;margin-bottom:12px}.travel-note small{font:9px Manrope,sans-serif;letter-spacing:1.5px;color:#e7e2d7bd}.game{width:100%;text-align:center;padding:25px 26px 17px;border:1px solid #f5ead03d;border-radius:22px;background:linear-gradient(145deg,#15363fc9,#102c34db);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 24px 80px #071d2833,inset 0 1px #ffffff12}.game-top{display:flex;justify-content:space-between;align-items:center;text-align:left}.game-top .eyebrow{font-size:7px;letter-spacing:2px;opacity:.7}.game-top h2{font:400 29px/1.1 Editorial,Georgia,serif;margin:5px 0 0;letter-spacing:-.3px}#coins{display:flex;align-items:center;gap:7px;padding:6px 12px;min-height:34px;border-radius:30px;background:#e8d8b212;color:#ecdbb8;font-size:12px}#coins svg{width:14px;height:14px}.puzzle-meta{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#c6d0c6;margin:20px 0 0}#difficulty{color:#dcccab}#board{display:grid;justify-content:center;gap:3px;margin:17px auto 16px;width:100%;min-height:140px;align-content:center}.tile{width:var(--cell);height:var(--cell);background:linear-gradient(135deg,#f5f0e7,#e2e0d3);border:1px solid #fff8e470;border-radius:5px;color:#1b3b3e;display:grid;place-items:center;font-size:min(19px,calc(var(--cell)*.58));font-weight:650;box-shadow:0 2px 4px #061e2922,inset 0 1px #fff9e9}.tile.hidden{color:transparent}.tile.revealed{background:linear-gradient(135deg,#e2cea2,#c8b582);animation:reveal .32s ease}.tile.hinted{background:#b5d3c7}.progress{height:2px;background:#f3e8cd1a;width:100%;border-radius:4px}.progress i{display:block;height:100%;background:#d6c08d;transition:width .4s;border-radius:4px}#message{font-size:10px;min-height:16px;margin:11px -8px 1px;color:#dbe1d6}.selection{height:34px;display:flex;justify-content:center;align-items:center;gap:8px}#selected{font-size:11px;letter-spacing:2px;font-weight:500;color:#f4e8ce}#clear{border:0;background:none;padding:0;min-height:28px;width:28px;display:grid;place-items:center}#clear[hidden]{display:none}#clear svg{width:14px;height:14px}#wheel{position:relative;width:236px;height:236px;margin:2px auto 14px;border:1px solid #ecdcb12b;border-radius:50%;background:radial-gradient(circle at 40% 20%,#fff3cf0d,#091f2822);box-shadow:inset 0 0 0 9px #d0bd8710,0 15px 30px #071e2817;touch-action:none;user-select:none}#wheel:after{content:'';position:absolute;inset:16px;border-radius:50%;border:1px solid #f3e8d115;pointer-events:none}#lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}polyline{stroke:#cbb783;stroke-width:11;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.9}.letter{position:absolute;width:48px;height:48px;border:1px solid #fff9ea70;background:linear-gradient(135deg,#f9f3e9,#deded1);color:#233f41;font-size:25px;font-weight:500;line-height:1;padding:0;transform:translate(-50%,-50%);border-radius:50%;touch-action:none;z-index:2;box-shadow:0 5px 12px #0b252b30,inset 0 1px #fff}.letter:hover{background:#f8e7c3}.letter:active{transform:translate(-50%,-50%) scale(.96)}.letter.active{background:#d7bf8a;color:#18373c;border-color:#e8d2a7;box-shadow:0 0 24px #e2c48230}#shuffle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:0;background:none;color:#c9d0bf;padding:10px;width:44px;z-index:3}#shuffle svg{width:21px;height:21px}#shuffle:active{transform:translate(-50%,-50%) rotate(15deg)}.actions{display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:center;gap:9px}.actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 3px;gap:6px;font-size:10px;min-height:60px;border:0;background:none}.actions button:hover{background:#ffffff08}.actions svg{width:20px;height:20px;color:#dbd0b1}.actions span{font-size:8px;color:#c3cdbf;white-space:nowrap}.actions b{font-size:8px;font-weight:500;color:#e6d5ac;margin-left:3px}.primary,.actions .primary{font-size:11px;font-weight:650;letter-spacing:.2px;border:1px solid #e5d4b0;background:linear-gradient(135deg,#ecdcbb,#ccb681);color:#203c40;padding:12px 18px;flex-direction:row;gap:13px;min-height:44px;border-radius:10px;box-shadow:0 4px 15px #061c2326}.primary svg,.actions .primary svg{color:#294146;width:18px;height:18px}.primary:hover,.actions .primary:hover{background:linear-gradient(135deg,#f6e6c4,#deca98)}.instruction{font-size:8px;color:#aebfb5;margin:10px 0 0;letter-spacing:.15px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.8px;padding-top:6px;color:#d4ddcf}footer button{font-size:10px;letter-spacing:.2px;border:0;background:#102d3433;display:flex;align-items:center;gap:10px;border-radius:30px;min-height:40px}footer button svg{width:17px;height:17px}footer button span{margin-left:16px}dialog{width:min(92vw,590px);max-height:85svh;overflow:auto;border:1px solid #e9d9b04d;border-radius:20px;background:linear-gradient(145deg,#1b3d42,#102c34);color:var(--cream);padding:38px 32px;box-shadow:0 30px 100px #05182099}dialog::backdrop{background:#071d2788;backdrop-filter:blur(12px)}dialog h2{font:400 42px/1.05 Editorial,Georgia,serif;letter-spacing:-.5px;margin:15px 0}dialog p{font-size:12px;line-height:1.8;color:#c6d2c8}dialog .close{position:absolute;right:12px;top:10px;border:0;background:none;padding:10px;width:44px;display:grid;place-items:center}dialog .close svg{width:19px;height:19px}dialog .primary{width:100%;margin-top:16px}.reward{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);border:1px solid var(--line);padding:18px;border-radius:12px;margin:24px 0}.reward strong{font:40px Editorial,Georgia,serif}.reward span{font-size:10px;line-height:1.7}.journey-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin:20px 0}.journey-grid button{padding:5px 0;border-radius:7px;min-width:0;font-size:10px;min-height:40px}.journey-grid button.done{color:var(--gold);background:#dfcf9d10}.journey-grid .current{border-color:var(--gold);background:#e9d6a91f}.journey-grid button:disabled{opacity:.35}.journey-tools{display:flex;align-items:center;justify-content:space-between;gap:8px}.journey-tools button{padding:8px 12px;white-space:nowrap;font-size:10px}.chapter-form{display:flex;align-items:center;gap:6px;font-size:10px}.chapter-form input{background:#0c2830;color:var(--cream);border:1px solid var(--line);border-radius:8px;padding:8px;width:60px;min-height:40px}.chapter-caption{font-size:10px!important;letter-spacing:1px;color:var(--gold)!important}.setting{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:16px 0;gap:16px}.setting input{width:20px;height:20px;accent-color:var(--gold)}.small{font-size:10px!important;opacity:.75}.wordlist{line-height:2;letter-spacing:1px}.no-motion *{animation:none!important;transition:none!important}.completion{padding-top:10px;text-align:center}.completion .emblem{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;border:1px solid #dcc79570;color:var(--gold);margin:0 auto 24px}.completion .emblem svg{width:28px;height:28px}@keyframes reveal{50%{transform:scale(1.08)}}
@media(min-width:1440px){.layout{gap:100px;grid-template-columns:1fr 460px}.game{padding:28px 32px 20px}#wheel{width:250px;height:250px}}
@media(max-width:1050px){main{padding:24px 32px 18px}.layout{gap:32px;grid-template-columns:1fr 410px}.edition{display:none}h1{font-size:64px}.game{padding:22px}.travel-note{margin-top:60px}}
@media(max-width:760px){main{padding:18px 18px 12px;max-width:540px}header{padding-bottom:16px;gap:10px;border-bottom:0}.brand{font-size:20px;gap:10px;letter-spacing:4px}.brand-mark{width:30px;height:36px;font-size:23px}.brand small{font-size:6px;letter-spacing:1.8px;margin-top:5px}nav{gap:4px}.nav-button{padding:9px;font-size:10px}.nav-button span{display:none}.icon{border:0}.layout{display:flex;flex-direction:column;gap:16px;flex:1;padding:8px 0 16px}.travel-copy{align-self:auto;text-align:center;padding:0;display:block;width:100%}.travel-copy .eyebrow{font-size:7px;letter-spacing:2px}h1{font-size:38px;line-height:1.05;letter-spacing:-.5px;margin:8px 0 0}.intro,.travel-note{display:none}.game{padding:18px 20px 14px;border-radius:18px;background:linear-gradient(145deg,#13343ed1,#102d36db);width:100%}.game-top h2{font-size:27px}.game-top .eyebrow{font-size:6px}.puzzle-meta{margin-top:14px}#board{margin:14px auto 12px;min-height:120px}#wheel{width:218px;height:218px;margin-bottom:8px}.letter{width:44px;height:44px;font-size:23px}.selection{height:30px}#message{font-size:9px;margin-top:9px;min-height:15px}.actions button{min-height:53px}.actions .primary{min-height:44px}.instruction{font-size:7px;margin-top:8px}footer{font-size:6px;letter-spacing:1.3px;padding-top:0;gap:8px}footer #offline{display:none}footer button{font-size:9px;min-height:36px;padding:6px 10px}.footer-studio{font-size:6px}.shade{background:linear-gradient(#0a252d20,#0a252d45 20%,#0a252da8 85%,#0a252de8)}#landscape{background-position:42% center}.journey-grid{grid-template-columns:repeat(5,1fr)}dialog{padding:36px 24px}dialog h2{font-size:36px}.journey-tools{flex-wrap:wrap}.chapter-form{order:3;width:100%;justify-content:center;margin-top:8px}}
@media(max-height:740px) and (max-width:760px){main{padding-top:10px}header{padding-bottom:8px}.layout{padding-top:4px;gap:12px}.game{padding:14px 17px 10px}.game-top h2{font-size:24px}.game-top .eyebrow{display:none}h1{font-size:32px;margin-top:5px}#wheel{width:192px;height:192px}.letter{width:42px;height:42px;font-size:21px}#board{min-height:95px;margin:10px auto}#message{margin-top:7px}.puzzle-meta{margin-top:10px}.actions button{min-height:48px}.selection{height:28px}.instruction{margin-top:6px}.layout{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#message{font-size:11px}.actions span{font-size:9px}.instruction{font-size:9px}.puzzle-meta{font-size:9px}dialog a{color:var(--gold)}@media(max-width:760px){#message{font-size:10px}.instruction{font-size:8px}}
.brand-symbol{width:32px;height:40px;object-fit:contain}.brand-wordmark{display:block;width:130px;height:32px;object-fit:contain;object-position:left center}.brand small{font-size:6px;letter-spacing:1.4px;margin-top:4px}.brand{gap:12px}
#intro{position:fixed;inset:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;border-radius:0;overflow:hidden;background:#0e2932;color:var(--cream)}#intro::backdrop{background:#0e2932}.intro-landscape,.intro-shade{position:absolute;inset:0;pointer-events:none}.intro-landscape{background:center/cover url('assets/coast.webp');animation:cinema-drift 16s ease-out both}.intro-shade{background:linear-gradient(#091f2d5c,#0b252d33 25%,#0b252dc9 100%),linear-gradient(90deg,#112a3455,transparent,#112a3440)}.intro-top{position:absolute;top:32px;left:40px;right:32px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:3px;z-index:4}.intro-top button{font-size:10px;letter-spacing:.5px;border-color:#f4ead82b;border-radius:30px;background:#0f2b3430}.intro-act,.intro-final{position:absolute;inset:15% 20px 21%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.intro-act p{font:400 clamp(44px,7vw,90px)/1.03 Editorial,Georgia,serif;letter-spacing:-1px;margin:24px 0;text-shadow:0 3px 30px #15343a33}.intro-act em{font-weight:400}.act-one{animation:first-act 9s both}.act-two{animation:second-act 9s both}.act-two img{width:64px;height:80px}.act-two p{font-size:clamp(36px,5vw,66px);margin-top:18px}.intro-final{animation:final-act 9s both}.intro-final>img{width:min(78vw,660px);height:auto}.intro-final p{font:12px Manrope,sans-serif;letter-spacing:2px;margin-top:18px}.intro-bottom{position:absolute;bottom:max(38px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;flex-direction:column;align-items:center;gap:18px;z-index:4}.intro-bottom .primary{display:flex;align-items:center;gap:30px;min-width:220px;justify-content:space-between;padding:14px 24px}.intro-bottom>span{font-size:7px;letter-spacing:2.5px;color:#e4dfd0b3}#intro.still .intro-act{display:none}#intro.still .intro-final{animation:none;opacity:1}#intro.still .intro-landscape{animation:none}
@keyframes cinema-drift{from{transform:scale(1.02);filter:brightness(.8)}to{transform:scale(1.13);filter:brightness(.95)}}@keyframes first-act{0%{opacity:0;transform:translateY(15px)}12%,28%{opacity:1;transform:translateY(0)}39%,100%{opacity:0;transform:translateY(-12px)}}@keyframes second-act{0%,35%{opacity:0;transform:translateY(12px)}47%,61%{opacity:1;transform:translateY(0)}72%,100%{opacity:0;transform:translateY(-10px)}}@keyframes final-act{0%,67%{opacity:0;transform:translateY(15px)}85%,100%{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.brand-symbol{width:26px;height:34px}.brand-wordmark{width:110px;height:26px}.brand small{font-size:5px;letter-spacing:1.1px}.brand{gap:8px}.intro-top{top:20px;left:22px;right:18px;font-size:6px;letter-spacing:1.6px}.intro-top button{font-size:8px;padding:8px 12px}.intro-final>img{width:min(86vw,420px)}.intro-final p{font-size:9px;letter-spacing:1px}.intro-act p{font-size:53px}.intro-bottom{bottom:40px}}
@media(prefers-reduced-motion:reduce){#intro .intro-act{display:none}#intro .intro-final{opacity:1;transform:none}}
@media(min-width:761px) and (max-height:850px){main{padding-top:20px}header{padding-bottom:16px}.layout{padding:18px 0}.game{padding:18px 22px 14px}#board{min-height:108px;margin:12px auto}#wheel{width:214px;height:214px;margin-bottom:8px}.selection{height:30px}.actions button{min-height:52px}.travel-note{margin-top:44px}.puzzle-meta{margin-top:14px}}

body:has(dialog[open]){overflow:hidden}

.intro-top-actions{display:flex;gap:8px;align-items:center}

/* jpam.studio */
.site-links{text-align:center;font-size:9px;letter-spacing:1.4px;color:#d4ddcf;opacity:.7;margin:10px 0 0}.site-links a{color:inherit;text-decoration:none}.site-links a:hover{color:#f8f3e7}
#intro .intro-bottom .primary{width:min(100%,420px)}
@media(orientation:landscape) and (max-height:520px){main{padding:8px 18px 8px;max-width:none;min-height:auto}header{padding-bottom:6px;border-bottom:0}.edition{display:none}.travel-copy{display:none}.layout{display:block;padding:2px 0 6px}.game{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:20px;align-items:center;padding:10px 16px 8px;max-width:900px;margin:0 auto}.game>*{grid-column:1}.game>.selection,.game>#wheel,.game>.actions{grid-column:2}.game>.game-top{grid-row:1}.game>.puzzle-meta{grid-row:2}.game>#board{grid-row:3;margin:6px auto;min-height:0}.game>.progress{grid-row:4}.game>#message{grid-row:5;margin:4px 0 0}.game>.selection{grid-row:1/3;align-self:end}.game>#wheel{grid-row:3/5;width:min(190px,44vh);height:min(190px,44vh);margin:4px auto}.game>.actions{grid-row:5}.game>.instruction{display:none}footer{display:none}.site-links{margin-top:4px}.brand small{display:none}.brand-symbol{width:24px;height:30px}.brand-wordmark{height:22px;width:auto}nav .icon,nav .nav-button{min-height:36px;padding-top:4px;padding-bottom:4px}.game-top h2{font-size:22px}.puzzle-meta{margin-top:2px}.game>.selection{min-height:0;margin:0}.game>#wheel{width:min(176px,45vh);height:min(176px,45vh)}#wheel .letter{width:38px;height:38px;font-size:19px}.actions button{padding-top:6px;padding-bottom:6px;min-height:40px}}
