:root{--sea:#d9f0f2;--sea-deep:#176b76;--paper:#f2e6d3;--ink:#27312b;--olive:#51561d;--coral:#f36f6b;--orange:#f59a42;--blue:#1686a1;--shadow:rgba(37,48,43,.18);--white:#fffdf9}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--sea)}button,input{font:inherit}button{cursor:pointer}.login-page{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.75) 0 1px,transparent 1.5px) 0 0/14px 14px,linear-gradient(180deg,#dff5f6,#cfeaed)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.08fr) minmax(360px,.92fr)}.trip-poster{position:relative;min-height:100vh;overflow:hidden;display:grid;place-items:center;padding:56px}.sky-stripes{position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.92) 0 42px,rgba(195,227,231,.7) 42px 70px);opacity:.65}.poster-paper{position:relative;z-index:2;width:min(560px,88%);padding:clamp(46px,6vw,84px) 36px;text-align:center;background:radial-gradient(circle at 20% 25%,rgba(70,52,32,.06) 0 1px,transparent 1.5px) 0 0/7px 7px,var(--paper);filter:drop-shadow(0 22px 32px rgba(54,64,58,.17));clip-path:polygon(1% 2%,9% 1%,18% 2%,27% 1%,36% 2%,47% 1%,58% 2%,67% 1%,77% 2%,87% 1%,99% 2%,98% 13%,99% 25%,98% 39%,99% 52%,98% 65%,99% 78%,98% 90%,99% 98%,89% 97%,80% 99%,69% 97%,59% 99%,49% 97%,39% 99%,28% 97%,17% 99%,8% 97%,1% 98%,2% 86%,1% 73%,2% 59%,1% 44%,2% 29%,1% 15%)}.poster-paper h1{margin:12px 0 6px;color:var(--olive);font-family:"Cooper Black",Georgia,serif;font-size:clamp(64px,8vw,118px);line-height:.78;letter-spacing:-.055em;text-shadow:0 2px 0 rgba(255,255,255,.45)}.eyebrow{margin:0;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.poster-subtitle{font-weight:700;margin:22px 0 18px}.date-pill{display:inline-block;border:2px solid rgba(245,154,66,.62);padding:8px 22px;border-radius:999px 46% 999px 52%;transform:rotate(-1.5deg);font-weight:700}.poster-sticker{position:absolute;z-index:3;font-size:clamp(46px,5vw,78px);filter:drop-shadow(0 10px 8px rgba(30,50,46,.12))}.poster-sticker-film{top:7%;left:8%;transform:rotate(-8deg)}.poster-sticker-ferry{top:7%;right:8%;transform:rotate(3deg)}.poster-sticker-surf{right:7%;bottom:11%;transform:rotate(7deg)}.poster-sticker-camp{left:7%;bottom:10%;transform:rotate(-3deg)}.wave-stack{position:absolute;z-index:1;bottom:-32px;left:-5%;right:-5%;height:180px}.wave-stack span{position:absolute;left:0;right:0;height:90px;border-radius:50% 50% 0 0;border-top:10px solid var(--blue)}.wave-stack span:nth-child(1){top:0;transform:scaleX(1.08)}.wave-stack span:nth-child(2){top:34px;opacity:.75;transform:scaleX(.95)}.wave-stack span:nth-child(3){top:70px;opacity:.55;transform:scaleX(1.12)}.auth-card{position:relative;z-index:5;align-self:center;width:min(520px,calc(100% - 48px));margin:48px auto;padding:36px;background:rgba(255,253,249,.94);border:1px solid rgba(72,86,78,.12);border-radius:26px;box-shadow:0 28px 70px var(--shadow);backdrop-filter:blur(10px)}.auth-head h2{margin:8px 0;font-family:Georgia,serif;font-size:40px;color:var(--olive)}.auth-head>p:last-child{margin:0 0 24px;color:#5b6760}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;border-radius:14px;background:#e7f3f3;margin-bottom:24px}.auth-tab{border:0;border-radius:10px;padding:11px 14px;background:transparent;color:#547078;font-weight:800}.auth-tab.is-active{background:var(--white);color:var(--olive);box-shadow:0 3px 10px rgba(42,67,63,.10)}.auth-form{display:grid;gap:17px}.auth-form label:not(.remember-row){display:grid;gap:7px;font-size:13px;font-weight:800}.auth-form input[type=email],.auth-form input[type=password],.auth-form input[type=text]{width:100%;border:1px solid #bed4d4;border-radius:12px;padding:13px 14px;background:#fff;color:var(--ink);outline:none}.auth-form input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(22,134,161,.12)}.remember-row{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;cursor:pointer}.remember-row input{margin-top:3px;accent-color:var(--sea-deep);width:18px;height:18px}.remember-row span{display:grid;gap:2px;font-size:13px}.remember-row small{color:#6d7771;line-height:1.4}.primary-button,.secondary-button,.toolbar-button,.round-button{border:0;font-weight:850;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.primary-button{padding:13px 18px;border-radius:13px;background:var(--olive);color:white;box-shadow:0 8px 18px rgba(81,86,29,.18)}.primary-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(81,86,29,.22)}.primary-button:disabled{opacity:.55;cursor:wait;transform:none}.secondary-button{padding:13px 18px;border-radius:13px;background:#e9f3f3;color:var(--sea-deep)}.button-row{display:grid;grid-template-columns:auto 1fr;gap:10px}.notice{border-radius:12px;padding:12px 14px;margin-bottom:16px;background:#eff5ec;color:#405030;font-size:13px;line-height:1.45}.notice[hidden]{display:none}.notice-warn{background:#fff0df;color:#814d1f}.notice-error{background:#fff0f0;color:#8f3535}.notice-success{background:#edf8ee;color:#35633a}.notice-info{background:#e9f4f7;color:#2d626f;margin:0 0 17px}.captcha-wrap{min-height:66px}.form-help{margin:0;color:#6d7771;font-size:12px;line-height:1.45}.auth-footer{margin-top:24px;padding-top:18px;border-top:1px dashed #d3ddd8;color:#7d8780;font-size:12px;text-align:center}.book-page{min-height:100vh;height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:radial-gradient(circle at top,#effbfb 0,var(--sea) 48%,#c8e5e8 100%)}.book-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;background:rgba(255,253,249,.88);border-bottom:1px solid rgba(68,92,87,.10);backdrop-filter:blur(8px);position:relative;z-index:20}.book-brand{display:grid;line-height:1.05}.book-brand strong{font-family:Georgia,serif;color:var(--olive);font-size:24px}.brand-kicker{font-size:9px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:#68766e}.book-actions{display:flex;gap:8px}.toolbar-button{padding:9px 13px;border-radius:10px;background:#edf5f5;color:#315b62}.toolbar-button:hover{background:#dfefef}.book-stage{min-height:0;padding:18px 24px 8px;display:grid;place-items:center}.book-frame{width:min(1480px,100%);height:100%;min-height:0;position:relative;display:grid;place-items:center}#flipbook{width:100%;height:100%;min-height:360px;display:flex;align-items:center;justify-content:center}#flipbook canvas{filter:drop-shadow(0 18px 22px rgba(35,65,61,.20))}.book-loading{position:absolute;inset:0;display:grid;place-items:center;color:#59746f;font-weight:800;pointer-events:none}.book-controls{display:flex;justify-content:center;align-items:center;gap:18px;padding:10px 20px 18px}.round-button{width:44px;height:44px;border-radius:50%;background:var(--olive);color:white;font-size:22px;box-shadow:0 8px 16px rgba(81,86,29,.18)}.round-button:hover{transform:translateY(-1px)}.page-status{min-width:135px;text-align:center;display:grid;line-height:1.25}.page-status span{font-weight:850;color:var(--olive)}.page-status small{color:#6d7a73}.session-warning{position:fixed;z-index:100;left:50%;bottom:28px;transform:translateX(-50%);background:#2b3630;color:white;border-radius:12px;padding:12px 16px;box-shadow:0 12px 30px rgba(0,0,0,.2)}@media(max-width:900px){.login-shell{grid-template-columns:1fr}.trip-poster{min-height:52vh;padding:34px 18px 48px}.auth-card{margin-top:-28px}.poster-paper{width:min(520px,82%);padding:42px 24px}.poster-paper h1{font-size:clamp(62px,16vw,100px)}.poster-sticker{font-size:42px}.book-toolbar{padding:10px 12px}.book-stage{padding:10px 8px 4px}.book-brand strong{font-size:20px}.toolbar-button{padding:8px 10px;font-size:12px}}@media(max-width:520px){.trip-poster{min-height:44vh}.auth-card{width:calc(100% - 24px);padding:24px 20px;border-radius:20px}.auth-head h2{font-size:33px}.button-row{grid-template-columns:1fr}.book-actions #fullscreen-button{display:none}.brand-kicker{display:none}.book-controls{padding-bottom:max(12px,env(safe-area-inset-bottom))}}
