:root{color-scheme:light;--ink:#302d27;--muted:#726e63;--accent:#a46e48;--paper:rgba(250,247,237,.91);--line:rgba(94,77,55,.17);font-family:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:#e8e0d0;color:var(--ink);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}[hidden]{display:none!important}
.activity-background{position:fixed;z-index:-1;inset:-20px;overflow:hidden;background:#e8e0d0;pointer-events:none}.activity-background::before,.activity-background::after{position:absolute;inset:0;content:""}.activity-background::before{background:url("/img/travel-sticker-cover.jpg") center 40%/cover no-repeat;filter:blur(17px) saturate(.78);transform:scale(1.06)}.activity-background::after{background:linear-gradient(180deg,rgba(247,242,230,.84),rgba(245,239,224,.91) 48%,rgba(241,234,218,.95))}
.topbar{position:sticky;z-index:10;top:0;display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:12px;width:min(100%,920px);margin:0 auto;padding:max(9px,env(safe-area-inset-top)) 22px;border-bottom:1px solid rgba(96,76,52,.1);background:rgba(248,245,235,.73);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}html.biwai-native-container .topbar{padding-top:8px}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none}.brand-mark{width:34px;height:34px;overflow:hidden;border-radius:10px}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand-copy strong{font-size:14px;letter-spacing:.08em}.top-actions{display:flex;min-width:0;align-items:center;gap:8px}.token-chip,.login-button,.account-button{min-height:36px;padding:0 12px;border:1px solid rgba(94,77,55,.18);border-radius:999px;background:rgba(255,253,246,.78);color:#665a47;font-size:11px;white-space:nowrap}.login-button,.account-button{cursor:pointer}
.page{width:min(100% - 38px,730px);margin:0 auto;padding:34px 0 64px}.intro{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 18px}.intro h1{margin:0;font-family:"Songti SC","Noto Serif SC",Georgia,serif;font-size:clamp(29px,6vw,42px);font-weight:600;letter-spacing:-.035em}.lead{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.65}.history-jump{flex:0 0 auto;min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,246,.72);color:#655944;font-size:11px;cursor:pointer}
.workshop{padding:clamp(13px,3.5vw,21px);border:1px solid rgba(255,255,255,.66);border-radius:21px;background:var(--paper);box-shadow:0 18px 48px rgba(67,54,36,.13);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.workshop-head{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);align-items:start;column-gap:17px}.photo-upload{position:relative;display:grid;min-height:188px;overflow:hidden;place-items:center;border:1px dashed rgba(130,98,63,.36);border-radius:15px;background:linear-gradient(145deg,rgba(242,236,222,.94),rgba(232,222,203,.9));cursor:pointer;isolation:isolate}.photo-upload input{position:absolute;z-index:3;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-upload:focus-within{outline:3px solid rgba(164,110,72,.42);outline-offset:3px}.photo-upload.is-dragging{border-color:var(--accent)}.photo-upload>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;padding:7px;object-fit:cover;pointer-events:none}.upload-placeholder{position:relative;z-index:1;display:grid;justify-items:center;gap:8px;padding:18px;color:var(--muted);text-align:center;pointer-events:none}.upload-placeholder strong{color:#493d2f;font-family:"Songti SC","Noto Serif SC",serif;font-size:16px;font-weight:600}.upload-placeholder strong::before{display:grid;width:39px;height:39px;margin:0 auto 11px;place-items:center;border:1px solid rgba(164,110,72,.37);border-radius:50%;color:var(--accent);content:"+";font:24px/1 sans-serif}.upload-placeholder small{color:#827a6c;font-size:10px;line-height:1.5}.upload-selection{position:absolute;z-index:4;right:9px;bottom:9px;left:9px;overflow:hidden;padding:8px 10px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(51,45,36,.78);color:#fff;font-size:10px;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.remove-photo{justify-self:end;margin:7px 2px 0 0;padding:4px 0 4px 10px;border:0;background:transparent;color:#867966;font-size:11px;cursor:pointer}.location-field{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:53px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,253,246,.76)}.field-index{color:#8e6a4b;font-size:12px;font-weight:650}.location-field input{width:100%;min-width:0;height:50px;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.location-field input::placeholder{color:#aaa18e}.field-mark{color:var(--accent);font-size:18px}.field-help{grid-column:2;margin:8px 4px 0;color:#888071;font-size:10px;line-height:1.55}
.poster-wrap{margin-top:18px}.poster-stage{display:grid;width:min(100%,440px);min-height:240px;margin:0 auto;overflow:hidden;place-items:center;border:1px solid rgba(125,98,66,.15);border-radius:15px;background:rgba(232,223,207,.78)}.poster-result{display:block;width:100%;height:auto;max-height:78svh;object-fit:contain}.submit-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding-top:15px;border-top:1px solid rgba(94,77,55,.12)}.usage{display:grid;gap:4px}.usage-label{color:#8e6a4b;font-size:10px}.usage strong{font-size:13px;font-weight:650}.usage small{color:var(--muted);font-size:10px;line-height:1.5}.generate{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:11px;padding:0 17px;border:0;border-radius:999px;background:linear-gradient(145deg,#ad7953,#865c3e);color:#fffaf0;font-size:12px;font-weight:650;box-shadow:0 7px 16px rgba(126,84,52,.18);cursor:pointer}.generate:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.generate-icon{font-size:14px}.generate-arrow{font-size:16px}.progress{margin-top:15px}.progress-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.progress-track{height:4px;margin-top:8px;overflow:hidden;border-radius:999px;background:rgba(94,77,55,.14)}.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#bd9869,#8b6443);transition:width .25s ease}.status{min-height:18px;margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.status.error{color:#a64d42}.result{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.result-heading{color:#584734;font-size:12px;font-weight:650}.save-button{min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,246,.8);color:#68543e;font-size:11px;cursor:pointer}.rules{margin:13px 3px 0;color:#716a5c;font-size:11px;line-height:1.8}.rules p{margin:0}
.history-section{margin-top:36px;padding:20px;border:1px solid rgba(255,255,255,.56);border-radius:18px;background:rgba(250,247,237,.84);box-shadow:0 14px 40px rgba(67,54,36,.09);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-heading h2{margin:0;font-family:"Songti SC","Noto Serif SC",serif;font-size:21px;font-weight:600}.history-caption{margin:6px 0 0;color:var(--muted);font-size:10px}.history-refresh,.history-more,.history-save{min-height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,246,.8);color:#68543e;font-size:10px;cursor:pointer}.history-state{margin:16px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.history-state.is-error{color:#a64d42}.history-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:14px}.history-item{min-width:0;overflow:hidden;padding:6px;border:1px solid var(--line);border-radius:12px;background:rgba(255,253,246,.74)}.history-item>img{display:block;width:100%;aspect-ratio:3/4;border-radius:8px;object-fit:cover}.history-item-footer{display:grid;gap:7px;padding:8px 1px 1px}.history-item-footer time{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.history-save{width:100%;min-height:29px}.history-more{display:block;margin:15px auto 0}footer{padding:18px 16px max(22px,env(safe-area-inset-bottom));color:#847b6c;font-size:10px;text-align:center}.toast{position:fixed;z-index:30;right:16px;bottom:max(22px,env(safe-area-inset-bottom));max-width:calc(100vw - 32px);padding:10px 14px;border-radius:999px;background:rgba(43,47,44,.94);color:#fff;font-size:11px;opacity:0;pointer-events:none;transform:translateY(7px);transition:.2s}.toast.visible{opacity:1;transform:none}.login{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(48,42,34,.4);backdrop-filter:blur(9px)}.login-card{position:relative;display:grid;gap:12px;width:min(100%,370px);padding:25px;border:1px solid rgba(255,255,255,.8);border-radius:19px;background:#faf7ed;box-shadow:0 24px 65px rgba(49,39,28,.2)}.login-card h2{margin:0;font-family:"Songti SC","Noto Serif SC",serif;font-size:23px}.login-card>p:not(.login-error){margin:0;color:var(--muted);font-size:11px;line-height:1.6}.login-card label{display:grid;gap:6px;margin-top:4px;color:var(--muted);font-size:10px}.login-card input{min-height:41px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.login-card button[type="submit"]{min-height:42px;margin-top:5px;border:0;border-radius:999px;background:#73563d;color:#fff;font-size:12px;cursor:pointer}.login-close{position:absolute;top:9px;right:11px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:22px;cursor:pointer}.login-error{margin:0;color:#a64d42;font-size:11px}
@media(max-width:620px){.topbar{min-height:58px;gap:6px;padding-right:max(12px,env(safe-area-inset-right));padding-left:max(12px,env(safe-area-inset-left))}.brand-mark{width:30px;height:30px}.top-actions{gap:5px}.token-chip,.login-button,.account-button{min-height:31px;padding:0 8px;font-size:9px}.page{width:calc(100% - 28px);padding-top:24px}.intro{align-items:flex-start;flex-direction:column;gap:12px}.intro h1{font-size:30px}.lead{font-size:11px}.workshop{padding:11px;border-radius:17px}.workshop-head{grid-template-columns:1fr;gap:0}.photo-upload{min-height:190px;aspect-ratio:1.45}.location-field{margin-top:15px}.field-help{grid-column:1;margin-top:7px}.poster-stage{min-height:180px}.submit-row{align-items:flex-start;flex-direction:column;gap:13px}.generate{width:100%}.history-section{margin-top:30px;padding:15px}.history-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
.activity-background{z-index:0}.page,footer{position:relative;z-index:1}
.activity-background::after{background:linear-gradient(180deg,rgba(247,242,230,.62),rgba(245,239,224,.74) 48%,rgba(241,234,218,.82))}

/* Clear, explicit picker controls: the native WebView chooser is opened from a real button tap. */
.photo-upload{display:block;min-height:0;overflow:visible;border:0;background:transparent;cursor:default}
.photo-input{position:fixed!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
.photo-pick-surface{position:relative;display:grid;width:100%;min-height:250px;overflow:hidden;place-items:center;padding:0;border:1px dashed rgba(139,111,76,.4);border-radius:16px;background:linear-gradient(145deg,rgba(251,248,239,.76),rgba(237,229,211,.74));text-align:center;cursor:pointer;isolation:isolate}
.photo-pick-surface:hover,.photo-pick-surface:focus-visible{border-color:#a77b52;background:linear-gradient(145deg,rgba(255,253,247,.9),rgba(239,230,211,.86));outline:3px solid rgba(164,110,72,.22);outline-offset:2px}
.photo-pick-surface>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;padding:8px;object-fit:contain;pointer-events:none}
.upload-placeholder{position:relative;z-index:1;display:grid;justify-items:center;gap:9px;padding:22px;pointer-events:none}
.upload-placeholder strong{font-size:18px;color:#554839}
.upload-placeholder strong::before{width:45px;height:45px;margin-bottom:13px;background:rgba(255,253,247,.66);font-size:28px}
.upload-placeholder small{font-size:11px}
.upload-cta{display:inline-grid;min-width:112px;min-height:38px;place-items:center;margin-top:8px;padding:0 16px;border:1px solid rgba(154,111,69,.25);border-radius:999px;background:rgba(255,253,247,.86);color:#785739;font-size:12px;font-weight:650;box-shadow:0 5px 15px rgba(88,66,42,.08)}
.photo-upload.has-photo .photo-pick-surface{border-style:solid;background:rgba(249,246,236,.64)}
.photo-upload.has-photo .photo-pick-surface>img{object-fit:contain}
.upload-selection{right:12px;bottom:12px;left:12px;padding:9px 12px;border:1px solid rgba(255,255,255,.72);background:rgba(255,253,247,.91);color:#655541;box-shadow:0 5px 16px rgba(70,54,35,.1)}
.upload-change{position:absolute;z-index:4;right:14px;top:14px;padding:8px 12px;border:1px solid rgba(255,255,255,.82);border-radius:999px;background:rgba(255,253,247,.92);color:#72563b;font-size:10px;box-shadow:0 5px 16px rgba(70,54,35,.1);pointer-events:none}
.photo-pick-surface:disabled{cursor:wait;opacity:.75}
.workshop-head{grid-template-columns:minmax(0,1fr);gap:0}
.photo-pick-surface{min-height:280px;aspect-ratio:1.75/1}
.location-field{margin-top:15px}
.field-help{grid-column:1}
@media(max-width:620px){.photo-pick-surface{min-height:220px;aspect-ratio:1.4/1}.upload-placeholder{gap:8px;padding:18px}.upload-placeholder strong{font-size:16px}}

@media(max-width:620px){.photo-upload{min-height:0;aspect-ratio:auto}}
