@charset "UTF-8";
:root{--bg:#000000;--panel:#0f141b;--gold:#d4b77c;--ink:#eee6d6;--muted:#8d9196;--line:#ffffff14;color-scheme:dark;font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,#stage:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{background:none;border:0}header{height:99px;max-width:1460px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);letter-spacing:4px;font-size:16px}.brand small{display:block;font:8px Georgia,serif;letter-spacing:3px;margin-top:7px;color:var(--muted)}.seal{border:1px solid #b69a61;display:grid;place-items:center;width:38px;height:42px;font:27px "KaiTi","STKaiti",serif;color:var(--gold);border-radius:3px;transform:rotate(-5deg)}.edition{font:10px Georgia,serif;letter-spacing:3px;color:var(--muted);display:flex;gap:19px;align-items:center}.edition i{width:26px;height:1px;background:var(--gold)}.top-note{font-size:11px;color:#b6b1a7;letter-spacing:1px}main{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:40% 60%;min-height:690px;position:relative}.story{padding:63px 0 35px 9%;z-index:1}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);display:flex;gap:12px;align-items:center}.eyebrow>span:first-child{width:6px;height:6px;display:inline-block;border:1px solid var(--gold);transform:rotate(45deg)}.subheading{font-family:"KaiTi","STKaiti",serif;color:#bbb19e;font-size:20px;margin:39px 0 4px;letter-spacing:7px}h1{font-family:"KaiTi","STKaiti","Songti SC",serif;font-weight:400;font-size:clamp(50px,5.4vw,82px);letter-spacing:1px;margin:0 0 23px;white-space:nowrap}.description{font-size:13px;line-height:2.2;color:#9e9c99;letter-spacing:2px;max-width:290px}.rule{width:50px;height:1px;background:#aa8e55;margin:29px 0}.technique-label{font-size:11px;color:var(--gold);letter-spacing:2px}h2{font-family:"KaiTi","STKaiti",serif;font-weight:400;letter-spacing:5px;font-size:32px;margin:12px 0}.craft{font-size:11px;line-height:2;color:#757d89;margin-top:19px}.actions{display:flex;gap:13px;margin-top:30px;align-items:center}.actions button{font-size:11px;padding:13px 19px;border:1px solid #ffffff20;transition:background .2s,color .2s}.actions .primary{background:var(--gold);color:#17150f;border-color:var(--gold)}.actions .primary[aria-pressed=true]{background:#8c7443;color:white}.actions button:hover{border-color:var(--gold)}.actions span{margin:0 8px}.collectible{display:flex;align-items:center;gap:12px;margin-top:27px;font-size:10px;color:#999489;letter-spacing:1px}.collectible>span{font-size:25px;color:var(--gold)}.collectible small{display:block;margin-top:6px;color:#616975;font:8px Georgia,serif;letter-spacing:1.8px}.display{position:relative;min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;isolation:isolate;overflow:hidden}.display-label{position:absolute;right:21px;top:39px;font:8px Georgia,serif;letter-spacing:3px;color:#5f626a;writing-mode:vertical-rl}.orbit{display:none}#stage{width:100%;height:625px;position:relative;touch-action:none;cursor:grab}#stage:active{cursor:grabbing}#stage canvas{display:block;width:100%;height:100%}#loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold);font-size:13px;letter-spacing:3px;padding:30px;text-align:center;white-space:pre-wrap}.stage-hint{display:flex;align-items:center;gap:10px;position:absolute;bottom:30px;color:#7d828a;font-size:10px;letter-spacing:1px}.stage-hint>span{font-size:18px;color:var(--gold)}.stage-hint b{font-weight:normal;color:#40454d;margin:0 4px}.stage-hint button{margin-left:16px;font-size:10px;color:#b3a383}.view-label{position:absolute;top:17px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:3px;color:#606773}.controls{max-width:1210px;margin:0 auto 26px;display:flex;gap:30px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.control-heading{min-width:130px;font-size:13px;letter-spacing:2px}.control-heading small{display:block;font:8px Georgia,serif;color:#616975;letter-spacing:2px;margin-top:7px}.controls label{flex:1;min-width:90px;font-size:10px;color:#9198a2;letter-spacing:1px}.controls output{float:right;font:10px Georgia,serif;color:var(--gold)}input[type=range]{display:block;width:100%;margin:14px 0 0;height:2px;accent-color:var(--gold);cursor:pointer}.save{font-size:10px;min-width:94px;color:var(--gold);padding-left:20px;border-left:1px solid var(--line)}footer{max-width:1210px;margin:0 auto;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;color:#555d67;padding-bottom:24px}footer span:nth-child(2){font:8px Georgia,serif;letter-spacing:2px}footer button{font-size:9px;color:#8e8c84}dialog{max-width:470px;border:1px solid #8f76434d;background:#10151d;padding:42px;color:var(--ink);line-height:1.9}dialog::backdrop{background:#000b;backdrop-filter:blur(7px)}dialog h2{font-size:26px;letter-spacing:1px}dialog p{font-size:12px;color:#a5a6a9}dialog .fine{font-size:10px;color:#737b86}.close{position:absolute;right:17px;top:9px;font-size:26px;color:var(--gold)}@media(min-width:1500px){main{min-height:760px}#stage{height:710px}.story{padding-top:86px}}@media(max-width:1100px){.controls,footer{margin-left:5%;margin-right:5%}.controls{gap:20px}main{grid-template-columns:39% 61%}h1{font-size:58px}.story{padding-left:13%;padding-top:65px}.controls .control-heading{min-width:95px}.display-label{right:7px}.actions button{padding:11px 13px}.actions span{margin:0 3px}}@media(max-width:760px){header{height:78px;padding:0 6%}.edition{display:none}.brand{font-size:13px}.brand small{font-size:7px}.top-note{font-size:10px}main{display:flex;flex-direction:column;min-height:auto}.story{padding:35px 7% 0}.subheading{margin:22px 0 4px;font-size:17px}h1{font-size:58px;margin-bottom:12px}.description{font-size:12px;line-height:1.8;margin:0}.story .rule,.story .technique-label,.story h2,.story .craft,.collectible{display:none}.actions{position:relative;margin-top:23px}.display{height:620px;margin-top:5px}#stage{height:570px}.stage-hint{bottom:14px}.view-label{top:8px}.display-label{top:47px;right:18px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:27px;padding:24px 0;margin-top:8px}.control-heading{grid-column:1/-1}.control-heading small{display:inline;margin-left:12px}.save{grid-column:1/-1;text-align:left;padding:10px 0;border-left:0;border-top:1px solid var(--line)}footer span:nth-child(2){display:none}footer{line-height:2}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


/* Unified flat white presentation */
:root{--bg:#fff;--panel:#fff;--gold:#8b6a23;--ink:#17191d;--muted:#737982;--line:#11111112;color-scheme:light}dialog{background:#fff;color:#17191d}dialog::backdrop{background:#ffffffee}.actions .primary{color:#fff}.display{background:#fff}

/* KeptPaw English card names remain readable at all viewports. */
h1{white-space:normal;overflow-wrap:anywhere;font-size:clamp(30px,3.8vw,58px);line-height:1.12;max-width:100%}.story{min-width:0}.subheading{letter-spacing:2px}.description{color:#61666d;letter-spacing:.5px}.top-note{color:#626770}.craft{color:#626770}
@media(max-width:760px){h1{font-size:clamp(32px,9vw,48px)}.story{padding-top:26px}.display{height:560px}#stage{height:520px}}

/* KeptPaw English viewer */
:root{font-family:Arial,Helvetica,sans-serif}
h1,h2,.subheading{font-family:Georgia,serif}
.brand{letter-spacing:2px}.brand small{letter-spacing:2px}
.seal{font:17px Georgia,serif;letter-spacing:0}
.controls label{letter-spacing:.2px}
.stage-hint{letter-spacing:.2px;gap:6px}
.stage-hint button{margin-left:8px}

/* Optional phone tilt control */
.actions{flex-wrap:wrap}.actions button{min-height:44px}
.actions button:disabled{cursor:default;opacity:.55}
#tilt[aria-pressed=true]{border-color:var(--gold)}
.tilt-status{font-size:12px;line-height:1.6;color:#61666d;max-width:340px;margin:12px 0 0}


/* The surrounding artwork page owns the title, story and purchase link. */
html.embed,html.embed body{margin:0;width:100%;min-width:0;overflow-x:clip}
.embed header,.embed .story,.embed .controls,.embed footer,.embed .display-label{display:none}
.embed main{display:block;min-height:0;width:100%;max-width:100%;margin:0}
.embed .display{width:100%;height:auto;min-height:0;margin:0;padding:22px 12px 18px;overflow:hidden}
.embed #stage{height:clamp(400px,68vh,620px);width:100%;max-width:820px;margin:0 auto}
.embed .view-label{position:static;transform:none;margin:0 0 14px;order:-1;color:#626770}
.embed .actions{justify-content:center;max-width:100%;gap:8px;margin:8px 0 0}
.embed .actions button{font-size:12px;padding:10px 14px;min-height:44px}
.embed .actions span{margin:0 3px}
.embed .stage-hint{position:static;flex-wrap:wrap;justify-content:center;max-width:100%;gap:6px;margin:10px 0 0;color:#626770;line-height:1.5}
.embed .stage-hint button{min-height:44px;font-size:12px;color:#65501d}
.embed .tilt-status{max-width:560px;text-align:center;margin:10px 0 0;order:6}
.embed .stage-hint>span{color:#8b6a23}
#stage.has-fallback{display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:12px;padding:10px}
#stage.has-fallback canvas{display:none!important}
#stage .static-fallback{display:none}
#stage.has-fallback .static-fallback{display:block;max-width:100%;width:100%;height:100%;min-height:0;object-fit:contain}
#stage.has-fallback #loading{position:static;display:block;max-width:520px;letter-spacing:0;padding:0;color:#61666d;font:13px/1.5 Arial,Helvetica,sans-serif;white-space:normal}
.viewer-unavailable .actions{display:none}
.viewer-unavailable .stage-hint{display:none}
@media(max-width:480px){
 .embed .display{padding:18px 8px 14px}
 .embed #stage{height:min(118vw,460px);min-height:350px}
 .embed .actions{gap:6px}
 .embed .actions button{padding:10px 9px;font-size:11px}
 .embed .stage-hint{font-size:10px}
 .embed .tilt-status{padding:0 12px}
}
