:root{
  --sand:#fff7ed;--sand-deep:#f1dfcf;--sky:#dcebed;--sea:#5e8c92;--sea-deep:#315b66;
  --rose:#c77f73;--rose-soft:#f2d1c5;--gold:#c69a59;--ink:#3e595b;--muted:#756e68;
  --line:rgba(67,91,91,.15);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;
  color:var(--ink);background:var(--sand)
}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:radial-gradient(circle at 8% -4%,rgba(244,190,173,.44),transparent 28%),radial-gradient(circle at 92% 4%,rgba(174,211,214,.4),transparent 25%),linear-gradient(155deg,#fff9f1,#f2e6d9 55%,#e1eeee)}
a{color:inherit;text-decoration:none}button,select{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-skip{position:fixed;z-index:999;left:16px;top:-70px;padding:10px 15px;border-radius:999px;color:#fff;background:var(--sea-deep);transition:top .2s}.portal-skip:focus{top:10px}
.portal-header{position:relative;z-index:20;min-height:78px;display:grid;grid-template-columns:auto auto minmax(360px,1fr) auto;align-items:center;gap:17px;padding:10px clamp(16px,3vw,42px);border-bottom:1px solid var(--line);background:rgba(255,249,241,.93);box-shadow:0 9px 28px rgba(75,60,49,.09);backdrop-filter:blur(18px)}
.portal-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--rose-soft),var(--gold),#9ec4c7,var(--rose-soft));opacity:.7}.portal-brand{display:flex;align-items:center;gap:10px;min-width:0}.portal-brand img{width:47px;height:47px;border-radius:17px 10px 18px 11px;object-fit:cover;box-shadow:0 6px 15px rgba(54,66,65,.15)}.portal-brand span{display:grid;gap:1px;line-height:1.18;white-space:nowrap}.portal-brand strong{font-family:"Noto Serif TC","Songti TC",serif;font-size:15px;letter-spacing:.08em}.portal-brand small{color:#9a8778;font:700 7px/1.3 Georgia,serif;letter-spacing:.11em}
.portal-identity{display:grid;gap:2px;padding-left:15px;border-left:1px solid var(--line);white-space:nowrap}.portal-identity>span{width:max-content;padding:3px 8px;border-radius:999px;color:#87584a;background:var(--rose-soft);font-size:8px;font-weight:950;letter-spacing:.08em}.portal-identity>strong{font-family:"Noto Serif TC","Songti TC",serif;font-size:16px;letter-spacing:.04em}
.portal-nav{min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;overflow-x:auto;scrollbar-width:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav a,.portal-nav button{flex:0 0 auto;min-height:39px;padding:0 12px;border:1px solid transparent;border-radius:999px;color:#536b69;background:transparent;cursor:pointer;font-size:13px;font-weight:850;white-space:nowrap}.portal-nav a:hover,.portal-nav a:focus-visible,.portal-nav button:hover,.portal-nav button:focus-visible,.portal-nav button[aria-current=true]{border-color:rgba(181,116,92,.23);color:#704d41;background:#f6ded2;outline:2px solid rgba(196,126,105,.16);outline-offset:1px}.portal-tools{display:flex;align-items:center;gap:7px}.portal-tools select{min-height:39px;padding:0 29px 0 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:#fffaf3;cursor:pointer;font-size:12px;font-weight:800}.portal-external{min-height:39px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border-radius:999px;color:#fffaf0;background:var(--sea-deep);box-shadow:0 6px 14px rgba(49,91,102,.2);font-size:12px;font-weight:850;white-space:nowrap}.portal-external:hover,.portal-external:focus-visible{background:#42747c;outline:3px solid rgba(69,112,121,.2);outline-offset:2px}.portal-external b{color:#f3cf91}
.portal-main{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:0 clamp(7px,1.3vw,18px) clamp(7px,1.3vw,18px)}.portal-purpose{min-height:54px;display:flex;align-items:center;gap:11px;padding:8px 12px;color:var(--muted);font-size:11px}.portal-live-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:#689989;box-shadow:0 0 0 6px rgba(104,153,137,.14);animation:portal-pulse 2.2s ease-in-out infinite}.portal-purpose p{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:8px;margin:0}.portal-purpose strong{color:#466a66;font-size:12px}.portal-purpose p span{color:#84766c}.portal-purpose-pair{display:flex;align-items:center;gap:6px;margin-left:auto}.portal-purpose-pair span{padding:5px 8px;border:1px solid rgba(78,105,102,.13);border-radius:999px;background:rgba(255,255,255,.58);color:#637672;font-size:9px;font-weight:900}.portal-purpose-pair i{color:#bd826d;font-style:normal}.portal-purpose>small{color:#917d70}
.portal-frame-shell{position:relative;min-height:0;overflow:hidden;border:1px solid rgba(65,92,89,.18);border-radius:24px 13px 26px 15px;background:linear-gradient(145deg,#fff8ee,#e4eeee);box-shadow:0 18px 48px rgba(52,69,66,.15),inset 0 0 0 4px rgba(255,255,255,.38)}.portal-frame-shell iframe{position:absolute;z-index:2;inset:0;width:100%;height:100%;border:0;background:#f8f2e9}.portal-loader{position:absolute;z-index:5;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;color:#637773;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.8),transparent 16rem),linear-gradient(145deg,#fff8ee,#e5eeee);transition:opacity .35s ease,visibility .35s}.portal-loader.is-complete{opacity:0;visibility:hidden;pointer-events:none}.portal-loader>span{width:61px;height:61px;display:grid;place-items:center;border-radius:22px 12px;color:#fff5e8;background:var(--rose);box-shadow:0 7px 0 #a75f56;font-size:27px;animation:portal-heart 1.5s ease-in-out infinite}.portal-loader strong{font-family:"Noto Serif TC","Songti TC",serif;font-size:16px}.portal-sticky-note{position:absolute;z-index:4;max-width:180px;padding:8px 11px;border:1px solid rgba(115,94,69,.14);border-radius:5px;background:rgba(255,241,183,.9);color:#745e4a;box-shadow:0 7px 18px rgba(56,62,57,.11);font-size:10px;font-weight:850;pointer-events:none;transition:opacity .45s ease,transform .45s ease}.portal-sticky-note.note-one{left:13px;bottom:13px;transform:rotate(-2deg)}.portal-sticky-note.note-two{right:13px;top:13px;transform:rotate(2deg);background:rgba(244,211,205,.9)}body.portal-ready .portal-sticky-note{opacity:0;transform:translateY(7px)}.portal-noscript{position:fixed;z-index:30;inset:auto 12px 12px;padding:12px;border-radius:12px;background:#fff}
@keyframes portal-pulse{50%{opacity:.52;transform:scale(.82)}}@keyframes portal-heart{50%{transform:translateY(-5px) rotate(-2deg)}}
@media(max-width:1180px){.portal-header{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}.portal-identity{display:none}.portal-nav{justify-content:flex-start}.portal-brand small{display:none}.portal-external span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.portal-purpose>small{display:none}}
@media(max-width:760px){.portal-header{min-height:116px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand tools" "nav nav";align-content:center;padding:9px 10px 8px;gap:7px}.portal-brand{grid-area:brand}.portal-brand img{width:40px;height:40px}.portal-brand strong{font-size:14px}.portal-tools{grid-area:tools}.portal-tools select{min-height:36px}.portal-external{width:36px;min-height:36px;padding:0;justify-content:center}.portal-nav{grid-area:nav;justify-content:flex-start;padding:2px 0}.portal-nav a,.portal-nav button{min-height:36px;padding:0 11px;font-size:12px}.portal-main{padding:0 5px 5px}.portal-purpose{min-height:45px;padding:5px 9px}.portal-purpose p{display:grid;grid-template-columns:1fr;gap:0}.portal-purpose p span{font-size:9px}.portal-purpose-pair{display:none}.portal-frame-shell{border-radius:17px 9px 18px 10px}.portal-sticky-note{display:none}}
@media(max-width:390px){.portal-brand strong{font-size:13px}.portal-brand img{width:37px;height:37px}.portal-tools select{max-width:88px;padding-left:8px}.portal-purpose p span{display:none}}
@media(prefers-reduced-motion:reduce){.portal-live-dot,.portal-loader>span{animation:none}.portal-sticky-note{transition:none}}
.portal-regions{display:inline-flex;padding:3px;border:1px solid rgba(49,91,102,.18);border-radius:999px;background:rgba(255,255,255,.7)}.portal-regions button{min-width:50px;min-height:33px;padding:0 10px;border:0;border-radius:999px;color:#526b68;background:transparent;cursor:pointer;font-size:12px;font-weight:900}.portal-regions button[aria-pressed=true]{color:#fff;background:var(--sea-deep);box-shadow:0 3px 9px rgba(49,91,102,.18)}
@media(max-width:760px){.portal-header{position:sticky;top:0;min-height:60px;grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"brand regions language external";align-content:center;padding:6px 8px;gap:5px}.portal-brand{grid-area:brand}.portal-brand span{display:none}.portal-brand img{width:42px;height:42px}.portal-tools{display:contents}.portal-regions{grid-area:regions;width:max-content}.portal-regions button{min-width:44px;min-height:40px;padding:0 8px}.portal-tools select{grid-area:language;min-width:0;width:92px;min-height:44px;padding-left:8px}.portal-external{grid-area:external;width:44px;min-height:44px;padding:0;justify-self:end;justify-content:center}.portal-nav,.portal-purpose{display:none}.portal-main{grid-template-rows:minmax(0,1fr);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.portal-frame-shell{border-radius:14px}}
.portal-regions{display:inline-flex;padding:3px;border:1px solid rgba(49,91,102,.18);border-radius:999px;background:rgba(255,255,255,.7)}.portal-regions button{min-width:50px;min-height:33px;padding:0 10px;border:0;border-radius:999px;color:#526b68;background:transparent;cursor:pointer;font-size:12px;font-weight:900}.portal-regions button[aria-pressed=true]{color:#fff;background:var(--sea-deep);box-shadow:0 3px 9px rgba(49,91,102,.18)}
@media(max-width:360px){.portal-header{padding-inline:5px;gap:3px}.portal-brand img{width:38px;height:38px}.portal-regions button{min-width:40px;padding-inline:6px}.portal-tools select{width:84px}.portal-external{width:42px}}

/* 2026-09-08 — unified Taiwan / Hong Kong portal layout */
.portal-header{isolation:isolate}
.portal-header::before{content:"";position:absolute;z-index:-1;inset:0;opacity:.42;pointer-events:none;background:radial-gradient(circle at 12% 20%,rgba(199,127,115,.13),transparent 24%),radial-gradient(circle at 88% 18%,rgba(94,140,146,.14),transparent 22%)}
.portal-brand,.portal-identity,.portal-nav,.portal-tools{position:relative;z-index:1}
.portal-regions{box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.portal-regions button{transition:color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}
.portal-regions button:hover,.portal-regions button:focus-visible{transform:translateY(-1px);outline:2px solid rgba(49,91,102,.2);outline-offset:2px}
.portal-purpose{width:min(1380px,100%);margin:0 auto}
.portal-frame-shell{width:min(1500px,100%);margin:0 auto;transition:border-radius .25s ease,box-shadow .25s ease}
html[data-wall-region="tw"] .portal-frame-shell{box-shadow:0 18px 48px rgba(52,69,66,.15),0 0 0 1px rgba(199,127,115,.08)}
html[data-wall-region="hk"]{--rose:#b66e73;--rose-soft:#eed7dd;--gold:#b79a63;--sea:#648b91;--sea-deep:#304f61}
html[data-wall-region="hk"] body{background:radial-gradient(circle at 8% -4%,rgba(183,154,99,.28),transparent 28%),radial-gradient(circle at 92% 4%,rgba(100,139,145,.35),transparent 25%),linear-gradient(155deg,#fbf5ed,#eee7de 55%,#e0eaeb)}
html[data-wall-region="hk"] .portal-frame-shell{border-radius:14px 25px 15px 26px;box-shadow:0 18px 48px rgba(42,57,64,.16),0 0 0 1px rgba(183,154,99,.1)}
body.portal-is-navigating{cursor:progress}
body.portal-is-navigating .portal-loader{visibility:visible!important;pointer-events:auto!important}

@media(min-width:1181px){
  .portal-header{grid-template-columns:minmax(220px,auto) auto minmax(440px,1fr) auto;min-height:82px}
  .portal-nav{gap:7px}
  .portal-frame-shell{border-radius:28px 16px 30px 18px}
}
@media(max-width:760px){
  .portal-header::after{height:2px}
  .portal-regions{padding:2px}
  .portal-regions button{font-size:11px}
  .portal-main{background:rgba(255,255,255,.18)}
  .portal-frame-shell{min-height:calc(100dvh - 72px);box-shadow:0 8px 24px rgba(52,69,66,.12)}
}
@media(max-width:420px){
  .portal-header{grid-template-columns:42px minmax(86px,auto) minmax(74px,1fr) 42px}
  .portal-tools select{width:100%;max-width:88px}
  .portal-regions button{min-width:40px;padding-inline:5px}
}
@media(prefers-reduced-motion:reduce){.portal-regions button,.portal-frame-shell{transition:none}}

/* 2026-11-05 — curated guardian wall, refined contemporary ink */
:root{--ink-deep:#153f40;--ink-wash:#dce8e2;--clay:#a66047;--rice:#f5f0e5}
html,body{height:auto;min-height:100%;overflow:auto;scroll-behavior:smooth}
body{display:block;background:linear-gradient(180deg,#f6f1e7 0,#eee9df 44%,#f7f3e9 100%)}
body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 8% 16%,rgba(30,82,76,.13),transparent 32%),radial-gradient(ellipse at 92% 30%,rgba(167,93,63,.11),transparent 28%),repeating-linear-gradient(94deg,rgba(91,73,50,.018) 0 1px,transparent 1px 7px)}
.portal-header{position:sticky;top:0;background:rgba(247,242,232,.93);border-color:rgba(28,71,70,.14)}
.portal-main{display:block;max-width:1500px;margin:auto;padding:0 clamp(16px,4vw,64px) 52px}
.curated-wall-hero{position:relative;min-height:540px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);align-items:center;gap:56px;padding:clamp(66px,9vw,132px) clamp(4px,3vw,38px) 72px;border-bottom:1px solid rgba(25,68,67,.18);overflow:hidden}
.curated-wall-hero:before{content:"";position:absolute;width:460px;height:260px;left:-170px;top:32px;border-radius:50%;background:radial-gradient(ellipse,rgba(30,74,72,.16),transparent 68%);transform:rotate(-15deg)}
.curated-wall-kicker,.curated-messages-heading span,.portal-app-heading>span{display:block;color:#8e583f;font:800 11px/1.4 Georgia,"Noto Serif TC",serif;letter-spacing:.19em}
.curated-wall-copy{position:relative;z-index:1}.curated-wall-copy h1{max-width:820px;margin:17px 0 24px;color:var(--ink-deep);font:700 clamp(40px,5.4vw,76px)/1.18 "Noto Serif TC","Songti TC",serif;letter-spacing:.035em}.curated-wall-copy>p{max-width:720px;margin:0;color:#5f645d;font-size:clamp(16px,1.3vw,20px);line-height:2}
.curated-wall-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.curated-wall-actions button,.curated-wall-actions a,.curated-message-empty button{min-height:48px;padding:0 23px;border:1px solid var(--ink-deep);border-radius:2px;background:var(--ink-deep);color:#fff;cursor:pointer;font-weight:850}.curated-wall-actions a{display:inline-flex;align-items:center;background:transparent;color:var(--ink-deep)}
.curated-wall-art{position:relative;min-height:430px;margin:0;padding:11px;overflow:hidden;border:1px solid rgba(21,63,64,.22);background:rgba(255,252,245,.52);box-shadow:0 25px 70px rgba(25,57,55,.13),inset 0 0 0 1px rgba(255,255,255,.68)}.curated-wall-art:before{content:"";position:absolute;z-index:2;inset:11px;pointer-events:none;background:linear-gradient(180deg,transparent 58%,rgba(18,47,45,.55)),linear-gradient(100deg,rgba(246,241,229,.2),transparent 38%)}.curated-wall-art:after{content:"";position:absolute;z-index:3;width:170px;height:90px;right:-36px;top:-28px;border-radius:50%;background:radial-gradient(ellipse,rgba(161,88,59,.25),transparent 68%);transform:rotate(16deg);pointer-events:none}.curated-wall-art img{position:absolute;z-index:1;inset:11px;width:calc(100% - 22px);height:calc(100% - 22px);object-fit:cover;object-position:center;filter:saturate(.9) contrast(.98)}.curated-wall-art span{position:absolute;z-index:5;right:29px;top:29px;width:62px;height:62px;display:grid;place-items:center;border:1px solid rgba(255,250,238,.75);border-radius:50%;background:rgba(129,57,40,.88);color:#fff8ea;font:700 30px/1 "Noto Serif TC","Songti TC",serif;box-shadow:0 12px 28px rgba(49,39,30,.2)}.curated-wall-art i,.curated-wall-art b{position:absolute;z-index:4;width:37%;height:1px;right:43px;top:61px;background:linear-gradient(90deg,transparent,rgba(222,188,115,.9));transform:rotate(-13deg);transform-origin:right}.curated-wall-art b{transform:rotate(16deg)}.curated-wall-art figcaption{position:absolute;z-index:5;left:27px;bottom:24px;padding:7px 10px;border-left:2px solid #d0a660;background:rgba(18,52,50,.72);color:#fff9ec;font-size:10px;letter-spacing:.08em;backdrop-filter:blur(8px)}
.curated-messages{padding:72px 0 74px}.curated-messages-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,460px);gap:35px;align-items:end;margin-bottom:30px}.curated-messages-heading h2,.portal-app-heading h2{margin:8px 0 0;color:var(--ink-deep);font:700 clamp(30px,4vw,48px)/1.25 "Noto Serif TC","Songti TC",serif}.curated-messages-heading p,.portal-app-heading p{margin:0;color:#686963;line-height:1.8}.curated-message-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.curated-message-card{min-height:285px;display:flex;flex-direction:column;padding:28px;border:1px solid rgba(27,67,65,.2);background:rgba(255,252,245,.68);box-shadow:0 14px 38px rgba(41,60,55,.06)}.curated-message-card>span{color:#9d6247;font:800 11px/1 Georgia,serif}.curated-message-card blockquote{margin:31px 0;color:#243f3f;font:600 20px/1.85 "Noto Serif TC","Songti TC",serif}.curated-message-card footer{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:20px;border-top:1px solid rgba(25,65,63,.13)}.curated-message-card footer small{color:#8c6b59}.curated-message-empty{grid-column:1/-1;padding:42px;border:1px dashed rgba(28,70,68,.32);background:rgba(255,252,245,.56);text-align:center}.curated-message-empty span{color:var(--ink-deep);font:700 24px/1.3 "Noto Serif TC",serif}.curated-message-empty p{color:#6a6b65}.curated-message-empty button{margin-top:10px}
.portal-purpose{width:100%;min-height:62px;border-block:1px solid rgba(25,65,63,.11)}.portal-app-heading{padding:64px 0 24px}.portal-app-heading h2{font-size:clamp(28px,3vw,40px)}.portal-frame-shell{width:100%;min-height:300px;display:grid;place-items:center;border-radius:3px;background:radial-gradient(ellipse at 12% 30%,rgba(30,74,72,.16),transparent 34%),radial-gradient(ellipse at 90% 80%,rgba(166,96,68,.16),transparent 31%),rgba(247,243,233,.9);box-shadow:0 20px 56px rgba(33,53,51,.12)}
.portal-open-panel{width:min(1050px,calc(100% - 42px));display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;padding:34px 38px;border:1px solid rgba(21,63,64,.24);background:rgba(255,252,245,.78);box-shadow:0 13px 40px rgba(33,53,51,.07)}.portal-open-panel>span{width:76px;height:76px;display:grid;place-items:center;border:1px solid rgba(21,63,64,.35);border-radius:50%;color:var(--ink-deep);font:700 36px/1 "Noto Serif TC","Songti TC",serif}.portal-open-panel h3{margin:0 0 8px;color:var(--ink-deep);font:700 25px/1.35 "Noto Serif TC","Songti TC",serif}.portal-open-panel p{max-width:570px;margin:0;color:#666a64;line-height:1.75}.portal-open-panel a{min-height:50px;display:inline-flex;align-items:center;padding:0 22px;border:1px solid var(--ink-deep);background:var(--ink-deep);color:#fff;font-weight:850;white-space:nowrap}.portal-open-panel a:hover,.portal-open-panel a:focus-visible{background:#245556;outline:3px solid rgba(21,63,64,.17);outline-offset:3px}
@media(max-width:900px){.curated-wall-hero{grid-template-columns:1fr;gap:26px}.curated-wall-art{min-height:360px}.curated-message-grid{grid-template-columns:1fr}.curated-messages-heading{grid-template-columns:1fr}.portal-open-panel{grid-template-columns:auto 1fr}.portal-open-panel a{grid-column:1/-1;justify-content:center}}
@media(max-width:760px){.portal-main{padding:0 14px 30px}.curated-wall-hero{min-height:0;padding:52px 0 44px}.curated-wall-copy h1{font-size:39px}.curated-wall-art{min-height:292px;padding:7px}.curated-wall-art:before{inset:7px}.curated-wall-art img{inset:7px;width:calc(100% - 14px);height:calc(100% - 14px)}.curated-wall-art span{right:20px;top:20px;width:50px;height:50px;font-size:24px}.curated-wall-art i,.curated-wall-art b{right:31px;top:45px}.curated-wall-art figcaption{left:18px;bottom:17px;font-size:9px}.curated-messages{padding:48px 0}.portal-purpose{display:flex}.portal-frame-shell{min-height:360px;border-radius:2px}.portal-open-panel{width:calc(100% - 24px);grid-template-columns:1fr;justify-items:start;padding:28px 24px}.portal-open-panel>span{width:62px;height:62px;font-size:30px}.portal-open-panel a{width:100%;grid-column:auto;justify-content:center}.portal-app-heading{padding-top:48px}}



